RAG 고도화 전략
현장에서 ai 프로덕트를 도입할 때 가장 큰 허들이 바로 RAG의 품질이다.
통제된 테스트 환경에서 텍스트 파일을 몇 개로는 잘 작동하던 시스템이 실제 고객사의 거대하고 파편화된 데이터를 만나는순간 할루시네이션을 일으키거나 엉뚱한 문서를 참조하기 시작한다.
이 간극을 메우는 견고한 데이터 파이프라인을 설계해야한다.
Chunking을 넘어선 Advanced RAG #
초기 RAG 모델 (Native RAG)은 문서를 단순히 일정한 글자 수로 자르고 chunking, 임베딩하여 vector db에 넣은뒤 코사인 유사도로 검색하는 방식이다.
하지만 엔터프라이즈 환경에서는 이것만으로는 한계가 명확하다.
Hybrid Search #
Vector 검색 Semantic Search는 의미론적으로 유사도는 기가막히게 찾지만, 고객사의 고유한 모델링 ex(ALF-2024-X), 특정 에러 코드, 고유 명사등 정확한 키워드 매칭 Exact Match에는 매우 취약하다. 이를 보완하기 위해 전통적인 키워드 기반 검색 BM25 같은 Lexical Search과 Vector 검색을 결합하여 결과를 병합하는 하이브리드 검색이 필수적이다.
Re-ranking #
1차 검색으로 수십 개의 관련 문서 청크를 빠르게 가져온 뒤, 정확도가 더 높은 모델 cross-encoder 등을 사용하여 문맥적으로 연관성을 다시 평가하고 순위를 매기는 작업이다 .검색속도 recall와 정확도 precision 사이의 트레이드오프를 해결하는 기술이다.
Query Expansion 및 라우팅 #
사용자의 짧고 모호한 질문을 바로 검색에 넣지 않고 LLM을 한 번 거쳐 여러 개의 구체적인 동의어 쿼리로 확장하거나 query rewrite, 이 질문이 db를 조회해야할지 사내 문서를 조회해야할지 판단하는 routing 레이어를 두는 기법이다.
고객사 도메인 특화 데이터를 처리하기 위한 파이프라인 설계 #
고객사 데이터는 PDF, Concluence 문서, Jira 티켓, 사내 DB등 형태가 제각가이며 테이블이나 이미지 등 비정형 데이터가 혼재되어있다.
데이터 추출 및 전처리 ETL for RAG #
PDF내의 복잡한 table이나 다단 레이앗울 정확히 파싱하는 것이 매우 중요하다. 표 안의 데이터가 깨져서 들어가면 ai는 절대 올바른 답변을할 수 없다. 최근에는 문서의 구조 헤딩 문단 표등을 인식해 마크다운 형태로 변환하는 파서를 전처리에 도입하거나 표 데이터를 json 형태로 변환하여 청킹하는 전략을 쓴다.
메타데이터 필터링 #
단순 텍스트만 아니라 문서를 카테고리 작성일자 부서명 문서 상태등 메타데이터와 함께 vector db에 저장한다. 검색시 메타데이터로 먼저 필터링 pre-filtering을 걸면 검색 범위 search space를 획기적으로 줄여 정확도를 높이고 비용젊감이 가능하다.
- 권한 및 접근 제어 RBAC in RAG: B2B SaaS 특히 기업용 메신저를 다루는 채널톡 환경에서 가장 민감한 부분인데, 임원만 볼 수 있는 재무 데이터 문서가 일반 사원의 질문에 대한 답변 소스로 활용되어서는 안된다. 문서 청크를 저장할 때 접근 권한 메타데이터를 강제하고, 검색 시 쿼리를 요청한 사용자의 권한과 일치하는 문서만 봔한하도록 테넌트 격리를 시스템 아키텍처 레벨에서 보장해아한다.
- 데이터 최신화 및 동기화 (Freshness, CDC/Webhook): 고객사의 환불 규정이나 메뉴얼이 감지되었을 때, vector db의 내용도 지연없이 동기화 되어야한다. 데이터 소스의 변경사항을 감지하고 기존 임베딩 데이터를 무효화한 뒤 재학습 시키는 이벤트기반 파이프라인 설계가 요구된다. 과거 데이터를 참조하여 오안내하는 것은 치명적인 장애로 이어지니까.