
RAG프로세스의 이해

RAG 프로세스에 대한 이해를 위해 글을 작성함.
우선 RAG란 무엇인가?
RAG(Retrieval-Augmented Generation)는 자연어 처리(NLP) 분야에서 혁신 적인 기술로, 기존의 언어 모델의 한계를 넘어서 정보 검색과 생성을 통합하는 방법론
기본적으로, RAG는 풍부한 정보를 담고 있는 대규모 문서 데이터베이스에서 관련 정보를 검색하고, 이를 통해 언어 모델이 더 정확하고 상세한 답변을 생성할 수 있게 함..
예를 들어, 최신 뉴스 이벤트나 특정 분야의 전문 지식과 같은 주제에 대해 물어보면, RAG는 관련 문서를 찾아 그 내용을 바탕으로 답변을 구성함.

1.도큐먼트 로더(Document Loader): 이 단계에서는 외부 데이터 소스에서 필요한 문서를 로드하고 초기 처리를 합니다. 이것은 마치 책을 여러 권 챙겨 도서관에서 공부하는 것과 비슷함. 학생이 공부하기 전에 필요한 책들을 책장에서 골라오는 과정
2.텍스트 분할(Text Splitter): 로드된 문서를 처리 가능한 작은 단위로 분할. 큰 책을 챕터별로 나누는 것과 유사.
3.임베딩(Embdding): 각 문서 또는 문서의 일부를 벡터 형태로 변환하여, 문서의 의미를 수치화함. 이는 책의 내용을 요약하여 핵심 키워드로 표현하는 것과 비슷함.
4.벡터스토어(Vector Store) 저장: 임베딩된 벡터들을 데이터베이스에 저장함. 이는 요약된 키워드를 색인화하여 나중에 빠르게 찾을 수 있도록 하는 과정.
5.검색기(Retriever): 질문이 주어지면, 이와 관련된 벡터를 벡터 데이터베이스에서 검색. 질문에 가장 잘 맞느 책의 챕터를 찾는 것과 유사.
6.프롬프트(Prompt): 검색된 정보를 바탕으로 언어 모델을 위한 질문을 구성함.
7.LLM(Large Language Model): 구성된 프롬프트를 사용하여 언어 모델이 답변을 생성함. 즉, 수집된 정보를 바탕으로 과제나 보고서를 작성하는 학생과 같음
8.체인(Chain) 생성: 이전의 모든 과정의 하나의 파이프라인으로 묶어주는 체인(Chain)을 생성
도큐먼트 로드 단계는 RAG 시스템의 첫 번째 단계로, 전체 프로세스에서 매우 중요한 기초 작업을 수행함. 이 단계의 주된 목적은 RAG 시스템이 필요로 하는 데이터를 외부 소스로부터 효율적으로 수집하고 준비하는 것이다.
1. 데이터 소스의 선택
도큐먼트 로더는 먼저 어떤 종류의 데이터가 필요한지, 그리고 그 데이터를 어디서 어떻게 수집할지 결정해야 함. 데이터 소스는 웹사이트, 데이터 베이스, API, 공개 데이터 세트 등 다양할 수 있음. 예를 들어, 최신 뉴스 데이터가 필요하다면 실시간 뉴스 API나 크롤링(WebBaseLoader)를 사용할 수 있고, 과학적 논문이나 전문 지식이 필요하다면 학술 데이터베이스(ArxivLoader)를 사용할 수 있다.
2. 데이터 수집
선택된 데이터 소스에서 필요한 데이터를 수집하는 작업을 진행. 이 과정은 API 호출, 웹 스크래핑, 데이터베이스 쿼리 등을 포함할 수 있으며, 때로는 인증이나 접근 권한 설정이 필요할 수도 있다.
- PDF 문서를 로드
- word, 한글 문서 로드
- Excel, CSV, SQL Table 로드
- 마크다운(.md) 파일 로드
- HTML 문서 로드