목표 : PDF의 내용을 이용해 rag 시스템 제작
환경 : window 내 powershell
실습(시스템 구성)
- poetry를 이용해 새 프로젝트 제작
PS C:\Users\weare\pro-ollama > poetry new pdf-rag - 만들어진 프로젝트 폴더로 이동
PS C:\Users\weare\pro-ollama> cd pdf-rag - poetry 이용해서 프로젝트에 필요한 모듈들을 설치
필요 모듈들 : langchain, rapidocr-onnxruntime, pypdf, chromadb, sentence-transformers
PS C:\Users\weare\pro-ollama> poetry add langchain(이런식으로 하나씩 설치) - 프로젝트 폴더에 노트북 파일 생성 test.ipynb, 커널 선택 후 , (만들었던) poery 가상환경 선택
-> 이후 과정은 다음편에서
발생한 오류
- chromadb 설치 중 chroma-hnswlib 패키지 미설치 오류
원인 : chromadb의 특정 기능이나 성능 요구 사항을 충족하기 위해 C++로 작성된 컴포넌트 필요
해결 : Microsoft Visual C++ 빌드 도구 설치후 재설치
왜 그게 필요했나요?
- langchain
역할: Langchain은 언어 모델을 이용한 자연어 처리(NLP) 작업을 쉽게 구현할 수 있게 돕는 라이브러리입니다. PDF-RAG 제작에서는 문서의 텍스트를 분석하고 이해하는 과정에서 언어 모델을 활용할 수 있습니다. 예를 들어, 텍스트에서 정보를 추출하거나, 문서 내용을 요약하는 등의 작업을 위해 사용될 수 있습니다. - rapidocr-onnxruntime
역할: RapidOCR는 오픈 소스 OCR(광학 문자 인식) 도구로, ONNX Runtime을 사용하여 이미지나 PDF 파일 내의 텍스트를 인식합니다. PDF 파일을 처리할 때 이미지 형태로 포함된 텍스트를 추출하는 데 필요합니다. 이렇게 추출된 텍스트는 PDF-RAG에서 데이터로서 활용되거나 추가 분석을 위해 처리될 수 있습니다. - pypdf
역할: PyPDF는 Python으로 작성된 PDF 처리 라이브러리로, PDF 파일을 읽고, 분할하고, 합치고, 변환하는 등의 작업을 수행할 수 있습니다. PDF-RAG 제작 과정에서 PyPDF는 주로 PDF 문서를 파싱하여 필요한 데이터를 추출하는 데 사용됩니다. 예를 들어, 특정 페이지를 읽거나 문서 내 특정 요소를 추출하는 등의 기능을 제공합니다. - chromadb
역할: ChromaDB는 데이터베이스 관리 시스템(DBMS)으로, 대용량 데이터 처리와 관리를 위해 설계된 것으로 추정됩니다. PDF-RAG에서는 추출된 데이터를 저장하고, 효율적으로 접근하며, 관리하는 데 필요합니다. 이는 PDF 문서의 데이터를 구조화하고 색인화하여 빠른 검색과 접근을 가능하게 하여, 대규모 PDF 파일에서 필요한 정보를 신속하게 찾을 수 있게 도와줍니다. - sentence-transformers
역할: Sentence Transformers는 문장 또는 문단 단위의 텍스트를 수치적 벡터로 변환하는 데 사용되는 라이브러리입니다. 이러한 변환은 자연어 이해(NLU) 작업에서 중요한 부분으로, PDF-RAG 제작에서는 문서의 내용을 특성화하고, 비슷한 주제나 내용을 가진 문서를 연관시키는 데 사용될 수 있습니다. 이를 통해 문서의 의미적 유사성을 기반으로 데이터를 그룹화하거나 검색 기능을 개선할 수 있습니다.
'로컬 LLM으로 공고 요약 전송 봇 만들기' 카테고리의 다른 글
로컬 llm으로 좋은 결과를 뽑아내기 위한 사투 (0) | 2024.08.15 |
---|---|
poetry 환경에서 GPU(CUDA) 사용 가능하게 하기 (0) | 2024.06.30 |
도커에서 ollama GPU 기반으로 실행하기 (1) | 2024.06.16 |
(window) HuggingFace의 모델(gguf) Ollama에서 쓰기 (0) | 2024.06.08 |