TL;DR
이 게시물은 Haystack 2.x 기반 RAG 파이프라인에서 빈번히 발생하는 검색 실패의 원인을 체계적으로 추적하기 위해 Haystack Diagnostics Engine을 공개했다. 이 엔진은 문서 저장소 검증, 파이프라인 직렬화 검사, 6클래스 진단 분류, 쿼리 상태를 통째로 캡처해 번들 간 차이를 비교하는 기능을 제공하여 원인 추적을 자동화한다.
진단 흐름은 먼저 문서 저장소의 중복·메타데이터 누락·비정형 문서를 포착하고, 파이프라인 직렬화 정보를 분석해 설정 오류를 식별하며, include_outputs_from을 활용한 단일 패스 진단으로 빈 결과·낮은 점수·메타데이터 불일치·reranker 붕괴·점수 역전·타임아웃을 분류한다. 이후 collect_debug_bundle로 retriever top-k의 pre/post reranker 상태, 프롬프트 스냅샷, 답변 텍스트까지 JSON으로 저장하고 diff_debug_bundles로 두 실행의 점수 델타와 문서 출현 변화를 비교한다.
실제 Weaviate 배포(총 823개 청크)를 대상으로 실행한 결과 195개의 중복 청크(23.7%), 14건의 메타데이터 누락, 8건의 비정상적으로 짧은 청크를 발견했고 15 동시 그래프 검사 요청에서 약 0.95초의 벤치마크 성능을 기록했다. 해당 도구와 코드는 GitHub 저장소에 공개되어 있으며, 특정 실패 모드에 대한 추가 질의에 응답 가능하다고 표기되어 있다.
실용적 조언
- 먼저 validate_document_store를 실행해 청크 중복률과 메타데이터 누락 항목을 식별한 다음, 발견된 이슈를 정리해 인덱스 재처리 또는 메타데이터 보강 작업을 수행해야 한다.
- diagnose_retrieval_failure로 실패 유형을 분류한 뒤 include_outputs_from이 캡처한 retriever와 reranker 출력을 비교해 reranker 붕괴나 점수 역전이 의심되면 reranker 구성과 cross-encoder 모델을 점검해야 한다.
- 문제 재현 시점의 collect_debug_bundle을 저장하고 변경 전후 번들을 diff_debug_bundles로 비교하여 어떤 설정 변경이나 데이터 변경이 점수·문서 출현에 영향을 주었는지를 우선적으로 확인해야 한다.
섹션별 상세
언급된 도구
Haystack 2.x 기반 RAG 파이프라인의 문서 저장소 검증, 파이프라인 직렬화 검사, 검색 실패 분류, 쿼리 상태 캡처 및 번들 간 diff 기능을 제공하는 진단 도구 모음
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.