RAG 고도화 전략

1,214 단어·3 분·원문(.md)

현장에서 ai 프로덕트를 도입할 때 가장 큰 허들이 바로 RAG의 품질이다.

통제된 테스트 환경에서 텍스트 파일을 몇 개로는 잘 작동하던 시스템이 실제 고객사의 거대하고 파편화된 데이터를 만나는순간 할루시네이션을 일으키거나 엉뚱한 문서를 참조하기 시작한다.

이 간극을 메우는 견고한 데이터 파이프라인을 설계해야한다.

Chunking을 넘어선 Advanced RAG #

초기 RAG 모델 (Native RAG)은 문서를 단순히 일정한 글자 수로 자르고 chunking, 임베딩하여 vector db에 넣은뒤 코사인 유사도로 검색하는 방식이다.

하지만 엔터프라이즈 환경에서는 이것만으로는 한계가 명확하다.

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의 내용도 지연없이 동기화 되어야한다. 데이터 소스의 변경사항을 감지하고 기존 임베딩 데이터를 무효화한 뒤 재학습 시키는 이벤트기반 파이프라인 설계가 요구된다. 과거 데이터를 참조하여 오안내하는 것은 치명적인 장애로 이어지니까.
AI/rag.md