검색 결과에 따르면 ETL(추출, 변환, 로드)은 RAG(검색 증강 생성) 시스템의 데이터 수집 파이프라인에서 중요한 역할을 합니다.
1. 추출: RAG 데이터 수집 파이프라인의 첫 번째 단계는 데이터베이스, 서버, 데이터 센터, 온라인 소스 등 다양한 소스에서 데이터를 추출하는 것입니다. 여기에는 텍스트 파일, CSV 파일, PDF 문서와 같은 구조화된 데이터와 구조화되지 않은 데이터가 포함됩니다. LangChain은 다양한 소스에서 데이터를 로드할 수 있는 다양한 문서 로더를 제공합니다.
2. 변환: 추출된 데이터는 다음과 같은 전처리 단계를 거칩니다.
- 텍스트 분할: 임베딩 모델의 최대 토큰 길이에 맞게 긴 텍스트를 더 작은 세그먼트로 분할합니다.
- 토큰화: 텍스트를 단어나 구문과 같은 개별 토큰으로 분해하여 보다 효율적이고 정확한 표현을 만듭니다.
3. 로드: 전처리된 데이터는 텍스트를 숫자 형식으로 나타내는 고차원 벡터로 변환됩니다. 이러한 임베딩은 신속한 검색 및 검색 작업에 최적화된 Milvus와 같은 특수 벡터 데이터베이스에 저장됩니다.
ETL 프로세스는 효율적인 검색 및 언어 모델과의 통합을 가능하게 하는 방식으로 데이터가 수집, 변환 및 시스템에 로드되도록 보장하므로 RAG 데이터 수집 파이프라인에 매우 중요합니다. 이러한 구조화된 접근 방식을 따르면 RAG 시스템은 외부 데이터 소스를 효과적으로 활용하여 언어 모델에 대한 지식을 강화하고 사용자 쿼리에 대해 보다 정확하고 상황에 맞는 응답을 제공할 수 있습니다.
요약하면, ETL 프로세스는 RAG 데이터 수집 파이프라인의 기본 구성 요소입니다. 이를 통해 시스템은 검색 증강 생성 프로세스에 사용할 대량의 다양한 데이터를 수집하고 준비할 수 있습니다.
인용:[1] https://www.crossml.com/build-a-rag-data-ingestion-pipeline/
[2] https://aws.amazon.com/blogs/big-data/build-a-rag-data-ingestion-pipeline-for-large-scale-ml-workloads/
[3] https://docs.zenml.io/user-guide/llmops-guide/rag-with-zenml/data-ingestion
[4] https://developer.nvidia.com/blog/rag-101-demystifying-retrieval-augmented- Generation-pipelines/
[5] https://mallahyari.github.io/rag-ebook/03_prepare_data.html