AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

벡터 DB 없이 RAG 정확도 높이는 두 가지 방법, Vercel과 PageIndex

벡터 DB를 골랐고, 청킹 파이프라인도 만들었고, 임베딩 모델도 튜닝했습니다. 그런데 몇 주 뒤 에이전트가 엉뚱한 답을 내놓았습니다. 어떤 청크가 검색됐는지, 왜 그 청크가 0.82점을 받았는지 알 방법이 없었습니다.

사진 출처: PageIndex 공식 블로그

Vercel과 VectifyAI가 각각 전통적인 RAG의 구조적 한계를 해결하는 새로운 접근법을 공개했습니다. 공교롭게도 두 팀은 서로 다른 방식으로 같은 결론에 도달했습니다. 벡터 유사도 검색 대신 LLM 자체의 추론 능력을 활용한다는 것입니다.

출처:

전통적 RAG의 진짜 문제

RAG의 기본 구조는 단순합니다. 문서를 청크로 자르고, 임베딩으로 변환해 벡터 DB에 저장한 다음, 질문과 가장 유사한 청크를 꺼내 LLM에 전달하는 방식입니다.

문제는 “유사한 텍스트”와 “정답이 있는 텍스트”가 같지 않다는 데 있습니다. “계약 해지 조건이 뭐냐”고 물어봐도 실제 계약서에는 “제14.3조 — 협약의 해소”라고 적혀 있을 수 있습니다. 코사인 유사도가 낮으면 그냥 놓칩니다. 또 512토큰 단위로 문서를 자르면 하나의 표가 세 청크로 쪼개지거나, 본문 이해에 필수적인 각주가 완전히 다른 청크에 들어가는 일도 생깁니다.

PageIndex 팀은 이 문제를 정확하게 짚습니다. “similarity ≠ relevance”, 즉 유사도는 관련성이 아니라는 것입니다. Vercel도 같은 경험을 했습니다. 에이전트가 틀린 답을 낼 때 어떤 청크가 검색됐는지, 왜 점수가 0.82였는지 거슬러 올라갈 방법이 없었습니다.

Vercel의 접근: 파일시스템과 bash

Vercel이 선택한 방법은 벡터 DB를 파일시스템으로 교체하는 것이었습니다. LLM에게 grep, find, cat 명령어를 주고 직접 파일을 탐색하게 한 것입니다.

작동 방식은 이렇습니다.

  1. 관리자 인터페이스에서 소스(GitHub 저장소, YouTube 트랜스크립트 등)를 추가하면 Postgres에 저장
  2. Vercel Workflow로 스냅샷 저장소에 콘텐츠를 동기화
  3. 질문이 들어오면 Vercel Sandbox가 로드되고 에이전트가 bash 명령으로 파일 탐색
  4. 결과와 함께 출처 참조 반환

핵심은 LLM이 이미 파일시스템 탐색에 능숙하다는 점입니다. 방대한 코드로 훈련됐기 때문에 디렉토리 탐색이나 grep 검색은 새로 가르칠 필요가 없습니다. 이미 잘 아는 것을 활용하는 셈입니다.

실제로 Vercel의 영업 전화 요약 에이전트는 이 방식으로 전환한 후 비용이 호출당 약 $1.00에서 약 $0.25로 줄었고 출력 품질도 개선됐습니다. 디버깅도 달라졌습니다. 에이전트가 틀린 답을 냈을 때 트레이스를 열면 “grep -r ‘pricing’ docs/ 실행 → docs/plans/enterprise.md 읽음 → 해당 섹션 참조”처럼 경로가 그대로 보입니다.

PageIndex의 접근: 추론 트리로 목차를 만들다

PageIndex는 문서를 자르는 대신 구조를 이해합니다. 처음 문서를 제출하면 레이아웃 분석과 LLM 추론을 통해 섹션과 하위 섹션의 계층 구조를 파악하고, 각 노드에 제목과 AI 생성 요약을 붙인 “추론 트리(Reasoning Tree)”를 만듭니다. 이 트리가 인덱스가 됩니다.

질문이 들어오면 두 단계로 처리합니다.

  1. 트리 탐색: LLM에게 질문과 트리(본문 없이 제목과 요약만)를 전달합니다. LLM은 목차를 읽는 사람처럼 “이 질문의 답은 어느 섹션에 있을까”를 추론해 관련 노드 ID 목록과 그 이유를 반환합니다.
  2. 답변 생성: 선택된 노드의 본문만 가져와 LLM에 전달하고 최종 답변을 생성합니다.

임베딩도, 벡터 DB도 없이 LLM 호출 두 번으로 끝납니다. “연간 보고서에 공시된 주요 위험 요인이 뭐냐”고 물으면 코사인 거리를 계산하는 게 아니라, LLM이 트리를 보고 “Risk Factors 섹션이 여기 있구나”라고 판단합니다.

이 방식은 벡터 검색이 취약한 구조적 문서에서 특히 강점을 발휘합니다. VectifyAI의 금융 RAG 시스템 Mafin 2.5는 금융 문서 QA 벤치마크인 FinanceBench에서 98.7%의 정확도를 달성했습니다.

같은 통찰, 다른 설계

두 접근법의 공통점은 하나입니다. “어떤 텍스트가 질문과 비슷한가” 대신 “어디를 읽어야 답이 있는가”를 LLM이 직접 판단하게 한다는 것입니다.

Vercel의 파일시스템 방식은 에이전트 개발자에게 실용적인 선택지입니다. 벡터 파이프라인 없이 바로 시작할 수 있고, 디버깅이 투명하며, 여러 플랫폼(Slack, Discord, GitHub)에 같은 에이전트를 배포하는 Chat SDK까지 함께 제공합니다. PageIndex는 긴 구조적 문서, 특히 금융 보고서, 법률 계약서, 기술 매뉴얼처럼 청킹으로 맥락이 손상되기 쉬운 문서에 더 적합합니다. 답변마다 어느 페이지, 어느 섹션에서 왔는지 추적이 가능해 감사 추적이 필요한 환경에서도 활용할 수 있습니다.

두 시스템 모두 오픈소스로 공개되어 있습니다. 각 접근법의 기술 세부사항과 실제 구현 예시는 원문에서 확인할 수 있습니다.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다