피드로 돌아가기
Dev.toAI/ML
원문 읽기
정적 Wikipedia 데이터에 Batch Embedding 적용으로 RAG 비용과 지연시간을 대폭 절감함
I Built a RAG System to Chat With Newton's Entire Wikipedia
AI 요약
Context
대부분의 RAG 튜토리얼은 PDF를 chunk하고 OpenAI를 호출하는 단순한 패턴만 다루며, 데이터 갱신, 정제, 배포와 같은 실제 운용 이슈를 무시함. 원본 Wikipedia 스크래핑 데이터는 메뉴, 참조, 잘못된 HTML 등 정제되지 않은 상태로 포함됨.
Technical Solution
- Airflow DAG: Wikipedia 데이터 가져오기, 정제, 변환 파이프라인을 워크플로우로 구성하여 재시도 및 스케줄링을 자동화함
- MongoDB 스테이징: 원본 Wikipedia를 정제 없이 Qdrant에 바로 임베딩하지 않고 중간 저장소로 활용하여 깨끗한 문서를 확보함
- Batch Embedding: 정적 데이터 특성상 실시간 임베딩 대신 배치 처리로 비용과 시간을 절감함
- FastAPI RAG Serving: 사용자 질문 → 임베딩 → Qdrant 유사 문서 검색 → LLM 컨텍스트 제공 → 출처 포함 답변 파이프라인 구축함
- Ingestion과 Serving 분리: 스크래핑/정제 파이프라인이 장애 발생하거나 업데이트되어도 실시간 RAG 시스템에 영향을 주지 않음
Impact
배치 임베딩 방식으로 매일 실시간 임베딩하는 것 대비 반복 비용 제거함
Key Takeaway
좋은 검색(Retrieval)이 강력한 LLM보다 중요함. 파이프라인이 견고하면 작은 모델도 좋은 답변을 생성함. RAG 구축 시 화려한 프롬프트보다 데이터 파이프라인 품질에 집중해야 함.
실천 포인트
정적 데이터 소스(Wikipedia, 문서 등)에서 RAGを構築할 때 실시간 임베딩 대신 배치 임베딩을 적용하여 비용을 절감할 수 있음. 스크래핑 데이터는 벡터 저장소에 저장하기 전 MongoDB 등에서 정제 단계를 거치는 것이 품질 향상에 필수적이며, Ingestion과 Serving 레이어를 분리하여 각 파이프라인을 독립적으로 운영해야 함.