지난주 금요일 Gencon: GENCON 2024 AI Conference for DEV 에 다녀왔습니다. 테디노트님의 “효과적인 흐름 제어를 위한 고도의 Modular RAG 기법” 강연이 매우 인상 깊어 간략히 정리해 소개하고자 합니다. 발표 자료는 테디노트님 유튜브에서 다운로드하실 수 있습니다. 테디노트님은 실제 프로젝트에서 RAG(Retrieval-Augmented Generation)를 적용하면서 겪은 어려움과 이를 해결하기 위한 Modular RAG 기법을 자세히 설명했습니다. Naive RAG에서 Advanced RAG, 그리고 Modular RAG로의 패러다임 변화를 설명하며 각 단계에서의 한계점과 개선 방안을 소개했습니다. 발표 내용을 간략하게 정리하여 공유합니다. 1. RAG의 필요성 기존 LLM의 문제점: 할루시네이션(hallucination) 현상 발생 최신 정보 반영 어려움 도메인 특화 내용 부족 지식의 불분명한 출처 RAG의 해결책: 사용자 질문에 대해 관련 문서를 검색하여 LLM에 제공 최신 정보 반영과 도메인 특화 가능 답변의 근거를 명확히 제시 RAG 패러다임의 변화: Naive RAG에서 Advanced RAG, 그리고 Modular RAG로 발전 2. Naive RAG의 한계 의미적 유사성 문제: 질문과 저장된 문서 사이의 의미적 유사성이 항상 일치하지 않음 노이즈 문제: 관련성 없는 정보가 검색되어 환각 현상 증가 3. Advanced RAG의 개선점 검색 전/후 단계의 개선: 인덱싱 전략: 메타데이터 추가, 요약 정보 저장, 계층적 구조 도입 Pre-Retrieval 단계: 쿼리 재작성(Rewrite), 확장(Expansion), 변환(Transformation) Post-Retrieval 단계: 리랭커(Rerank) 사용, 컨텍스트 재배열(Reorder), 컴프레서(Compressor)로 노이즈 감소 Advanced RAG도 여전히 한계점이 존재: 복잡한 요구사항에 대한 대응 어려움 유지 보수의 복잡성 증가 단방향 구조로 흐름 제어의 유연성 부족 4. Modular RAG의 도입 개념 및 장점: 레고 블록처럼 모듈을 조립하여 유연한 흐름 구성 독립적인 기능 모듈로 유연성과 확장성, 그리고 유지 보수성 향상 조건부 흐름 제어와 동적 처리 가능 시스템의 성능과 AI의 답변 정확도 향상 새로운 기능이나 모델의 쉬운 통합 기존 RAG와의 차이점: 일반적인 RAG는 선형적인 구조로, 한 번 흐름이 시작되면 되돌리기 어려움 Modular RAG는 다양한 흐름과 조건부 실행이 가능하여 더 복잡한 시나리오를 처리할 수 있음 모듈러 RAG 구현 도구 - LangGraph: LangGraph: 흐름을 시각적으로 구성하고 제어할 수 있는 도구 노드와 엣지로 구성된 그래프로 모듈 간의 관계 정의 사이클, 브랜칭, 조건부 엣지 등을 통한 복잡한 흐름 제어랭그래프 관련 영상: https://youtu.be/4JdzuB702wI 패턴 및 사례: Linear 패턴: 순차적 실행 흐름 Routing 패턴: 조건에 따른 분기 처리 Branching 패턴: 병렬 처리 및 결과 종합 Loop 패턴: 필요에 따른 반복 처리 Adaptive Retrieval: 상황에 따라 리트리벌 단계 생략 또는 실행 실제 적용 사례: 복잡한 문서 전처리 과정에서 Modular RAG 적용으로 효율성 향상. 복잡한 PDF 전처리 관련 영상: https://youtu.be/O3qFWRObAXw 5. 결론 모듈화의 중요성: 작은 단위로 작업을 나누어 디버깅과 성능 개선 용이 창의적인 접근의 필요성: 다양한 방법론을 활용하여 자체적인 솔루션 개발 역량 강화: 연구자는 소프트웨어 기술 역량을, 엔지니어는 연구 역량을 강화해야 함 지식 공유의 가치: 활발한 지식 교환을 통해 동반 성장 기대