랭체인(LangChain) 리트리벌 (Retrieval) 및 다큐먼트 로더 (Document Loaders)
RAG (Retrieval Augmented Generation)
- 정의: 외부 데이터를 참조하여 LLM(Large Language Model)이 답변할 수 있도록 해주는 프레임워크입니다.
- 핵심: LLM이 기존에 가지고 있지 않은 지식을 활용하여 답변할 수 있도록 합니다.
- 파인튜닝(Fine-tuning)과의 비교:
- 파인튜닝: LLM 자체를 학습시켜 지식을 주입하는 방식이며, 고급 장비(GPU 등)가 필요합니다.
- RAG: 외부 데이터 소스를 활용하여 답변을 생성하므로, 파인튜닝보다 일반 사용자가 접근하기 쉽습니다.
- RAG 작동 방식:
- 사용자 질문 입력
- QA 시스템이 외부 데이터 저장소에서 유사한 문장 검색
- 검색된 문장과 질문을 조합하여 LLM에 프롬프트 전달
- LLM이 해당 정보를 바탕으로 답변 생성
랭체인 (LangChain) 리트리벌 (Retrieval) 구조
- 핵심 구성 요소:
- QA 시스템
- 외부 데이터 저장소
- LLM
- 역할: 위의 세 가지 요소를 연결하여 외부 데이터를 기반으로 답변을 생성하는 중요한 역할을 담당합니다.
다큐먼트 로더 (Document Loaders)
- 역할: 다양한 형식의 문서(PDF, 워드, 웹 페이지, CSV 등)를 불러와 랭체인에서 활용할 수 있는 형태로 변환합니다.
- 출력 구조:
- 페이지 컨텐츠 (page_content): 문서의 실제 내용
- 메타데이터 (metadata): 문서의 출처, 제목, 페이지 정보 등
주요 다큐먼트 로더 종류
1. URL 다큐먼트 로더
- 웹베이스 로더 (WebBaseLoader): 특정 URL의 텍스트를 불러옵니다.
- 언스트럭쳐드 URL 로더 (UnstructuredURLLoader): 여러 URL의 텍스트를 리스트 형태로 불러옵니다.
- 특징: 웹 페이지의 모든 텍스트(제목, 탭 텍스트 등)를 불러올 수 있어 불필요한 정보가 포함될 수 있습니다.
2. PDF 다큐먼트 로더
- 파이 PDF 로더 (PyPDFLoader): PDF 파일을 불러옵니다.
load_and_split메서드: PDF 페이지별로 문서를 분할하여 로딩합니다.- 출력: 페이지별로 분할된 텍스트와 각 페이지에 대한 메타데이터를 반환합니다.
3. 워드 (Word) 다큐먼트 로더
- 닥스 to 텍스트 로더 (Docx2txtLoader): 워드 파일을 불러옵니다.
- 출력: 메타데이터와 워드 파일 내용
4. CSV 다큐먼트 로더
- CSV 로더 (CSVLoader): CSV 파일을 불러옵니다.
- 필수 매개변수:
file_path: 파일 경로csv_args:delimiter: 데이터 구분자 (일반적으로 쉼표 ’,’)fieldnames: 열 이름 리스트
- 활용: 로딩된 데이터를 SQL과 연동하여 활용할 수 있습니다.
다음 학습 내용
다음 시간에는 불러온 문서들을 여러 청크로 분할하는 텍스트 스플리터 (Text Splitters)에 대해 알아보겠습니다.