TL;DR
이 글은 복잡한 병합 셀과 교차 개정이 많은 인도 정부 PDF를 신뢰성 있게 처리하기 위해 구성한 8노드 RAG 파이프라인을 제시한다. 핵심은 세 가지 재구성 쿼리를 병렬로 실행해 후보를 병합한 뒤 Cohere 신경 재랭커로 의미적 관련도를 재평가하는 검색 흐름과, 페이지 사전 필터링(PyMuPDF)과 VLM 기반 LlamaParse로 레이아웃을 보존하는 추출 방식, 그리고 MarkdownHeaderTextSplitter와 RecursiveCharacterTextSplitter를 결합한 부모-자식 청킹으로 문맥을 보강하는 검색 구현이다. 추가로 Jina v3 MRL의 256-dim 사용과 무료 등급 인프라 조합으로 비용 최적화와 무결성 확보를 동시에 추구했다. 이러한 설계는 법률·재무 도메인에서의 환각을 줄이고 근거 기반 응답 비율을 높이는 방향으로 작동했다.
합의점 vs 논쟁점
합의점
- 시각 기반 추출(VLM)과 부모-자식 청킹을 결합하면 표 구조와 교차 참조를 가진 정부 문서에서 환각을 크게 줄일 수 있다.
- 검색 단계에서 병렬 쿼리로 다양성을 확보한 뒤 신경 재랭커로 다시 점수를 매기는 방식이 정밀도를 개선한다.
- 노드별 역할 분리를 통해 비용 절감과 안전성 검증 기능을 동시에 확보할 수 있다.
논쟁점
- Jina v3 MRL의 256-dim 사용이 저장 공간을 줄였다는 주장은 제시되었으나 재현 가능한 성능 비교 데이터 전체가 원문에 포함되어 있지 않다.
- LLM을 '판사'로 쓰는 HallucinationGuard의 구체적 판단 기준과 임계값에 관한 상세한 수치가 본문에 부족하다.
실용적 조언
- 우선 전체 문서에 대해 경량 사전 필터링을 적용해 임베딩·검색 대상이 되는 페이지를 줄이면 즉시 비용 절감이 가능하다. 본 글에서는 PyMuPDF로 실제 개정이 있는 페이지만 선별해 임베딩 비용을 약 60% 낮추었다고 보고되었다. 이 접근은 긴 법률 문서에서 필수적이다.
- 표와 병합 셀 같은 레이아웃 문제가 잦은 문서는 이미지 기반 VLM 추출을 우선 적용해야 한다. LlamaParse의 VLM 모드는 페이지 스크린샷을 해석해 병합 셀과 중첩 헤더를 보존한 마크다운을 생성하였고, 전통적 텍스트 파싱보다 구조 복구율이 높았다. 시각적 레이아웃 인식은 정규식·휴리스틱 유지보수 비용을 회피한다.
- 검색 정확도를 위해 병렬 팬아웃으로 쿼리 다양성을 확보하고 합쳐진 후보에 대해 교차형 재랭커를 적용해야 한다. 본 사례에서는 세 가지 쿼리 변형을 병렬 조회한 뒤 Cohere 재랭커로 의미적 관련도를 재평가해 누락률을 낮추었다. 재랭킹은 특히 밀집 법률 텍스트에서 코사인 유사도 한계를 보완한다.
섹션별 상세


용어 해설
- 검색 증강 생성(RAG)
- — 검색 증강 생성(RAG)은 외부 문서 검색 결과를 모델 입력으로 주입해 응답을 생성하는 방식이다. 이 글에서는 검색 단계에서 여러 쿼리 변형을 병렬로 실행하고 후보 청크를 병합한 뒤 재랭크하여 LLM 입력으로 전달하는 흐름으로 구현되었다. RAG은 긴 참조 문서에서 근거 기반 응답을 얻기 위해 중요하다.
- 재랭킹(Reranking)
- — 재랭킹은 초기 검색 결과를 추가 신경망 혹은 교차 인코더로 재평가해 실제 의미적 관련도를 기준으로 재정렬하는 과정이다. 본문에서는 벡터 코사인 유사도와 달리 Cohere의 신경 재랭커가 밀집 법률 텍스트에서 의미적 적합도를 잡아냈다. 재랭킹은 검색의 정밀도를 높여 LLM의 환각을 줄이는 데 기여한다.
- 시각 레이아웃 모델(VLM)
- — VLM은 페이지 이미지를 입력으로 받아 시각적 레이아웃과 텍스트를 함께 해석하는 모델 계열을 말한다. 본문에서는 LlamaParse의 VLM 모드가 페이지 스크린샷을 분석해 병합 셀과 중첩 헤더를 보존한 마크다운을 생성했다. VLM은 표 구조 복구와 레이아웃 기반 추출에서 휴리스틱을 대체할 수 있다.
- 부모-자식 검색 아키텍처(Parent-Child Retrieval)
- — 부모-자식 검색은 작은 단위(자식)로 정밀 검색을 수행하고, 일치가 발견되면 해당 자식의 상위 문단(부모)을 함께 가져와 문맥을 보강하는 방식이다. 이 글에서는 MarkdownHeaderTextSplitter와 RecursiveCharacterTextSplitter의 조합으로 자식-부모 관계를 생성해 LLM에 충분한 맥락을 제공했다. 이 구조는 교차 참조된 개정 조항 등에서 단편적 정보로 인한 환각을 줄였다.
- 병렬 팬아웃(Parallel Fan-out)
- — 병렬 팬아웃은 하나의 사용자 질의를 여러 쿼리 변형으로 동시에 실행해 서로 다른 검색 결과 집합을 얻는 전략이다. 본문에서는 세 가지 재구성된 쿼리를 Pinecone에 병렬로 보내고 후보를 병합한 뒤 재랭크함으로써 '정확히 물어봤는데 놓친' 문제를 축소했다. 이 방식은 검색 다양성을 늘려 누락률을 낮추는 데 유효하다.
언급된 도구
벡터 검색 및 저장을 담당하는 서버리스 벡터 DB
검색 후보의 의미적 관련도를 재평가하는 신경 재랭커 서비스
VLM 모드로 페이지 스크린샷을 시각적으로 해석해 구조화된 마크다운을 생성하는 추출 도구
문서 페이지를 빠르게 스캔해 사전 필터링용 메타데이터를 추출하는 라이브러리
저차원 임베딩 포맷으로 저장 공간을 절감하는 임베딩 처리 옵션
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
