RAG 쿼리 확장: 합성 표현으로 정확한 용어를 넘어 근거를 찾는 방법

에바 왕 는 기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

합성 쿼리 확장은 질문과 저장된 근거 사이의 어휘 차이를 연결하는 그럴듯한 바꿔 말하기와 도메인 용어를 추가하여 RAG 검색 재현율을 높이는 데 도움이 되는 경우가 많습니다.

가족 구성원이 “보일러 점검”을 요청할 수 있지만, 스캔된 청구서에는 “연례 수배관 난방 서비스”라고 적혀 있고 가족이 사용하는 표현은 전혀 없을 수 있습니다. 정확한 어휘 검색으로는 이 연결을 놓칩니다. 쿼리 확장은 다른 표현이나 가상의 답변을 생성하고, 각 표현으로 검색한 다음, 재순위화를 수행하기 전에 후보를 통합합니다. 따라서 관련 근거가 컨텍스트 창에 들어갈 수 있는 경로가 하나 더 생깁니다.

하나의 질문이 여러 검색 의도를 나타낼 수 있습니다

짧은 가정용 쿼리에는 출처에서 사용한 공식 제품명, 날짜, 위치 또는 용어가 생략될 수 있습니다. 확장은 관련 문구, 하위 쿼리 또는 합성 구절을 생성하여 이러한 잠재적 해석을 명시적으로 드러냅니다. 희소 검색은 새로운 일치 용어를 얻고, 밀집 검색은 추가적인 의미 관점을 제공받습니다.

Query2doc 방법은 언어 모델에 의사 문서를 생성하도록 요청하고 이를 원래 쿼리에 덧붙입니다. 실험 결과, 검색기를 재훈련하지 않아도 추가된 텍스트가 희소 검색과 밀집 검색 모두를 개선할 수 있는 것으로 나타났습니다.

이 메커니즘이 쿼리를 더 진실하게 만드는 것은 아닙니다. 후보 생성의 범위를 넓힐 뿐이며, 이후의 융합과 재순위화에서 어떤 후보가 생성된 부연 설명이 아니라 원래 질문에 여전히 답하는지 판단해야 합니다. 이러한 차이는 이후 가정용 테스트에서도 확인할 수 있습니다.

합성 구절은 쿼리와 문서의 어휘 차이를 연결합니다

가상의 문서는 사실이 허구로 만들어졌더라도 예상되는 근거의 문체와 어휘를 닮을 수 있습니다. 시스템은 이 합성 구절을 임베딩하고, 그 주변에 있는 실제 문서를 검색합니다. 이때 생성은 사용자에게 제시할 근거가 아니라 의미적 연결 고리로 사용됩니다.

가상 문서 임베딩은 제로샷 밀집 검색을 위해 임베딩하기 전에 가상 문서를 생성합니다. 중요한 점은 생성된 텍스트가 검색을 안내할 뿐이며, 최종 답변에 허용되는 근거는 검색된 말뭉치 문서뿐이라는 분리 원칙입니다.

여러 확장은 약어, 별칭, 번역 및 서로 다른 수준의 기술적 세부 정보를 포괄할 수 있습니다. 후보를 합치면 재현율이 높아지지만, 10개의 재작성 문장이 서로 거의 같거나 관련성이 약한 청크로 목록을 채우지 않도록 중복 제거와 재순위화가 필요합니다.

확장이 그럴듯하지만 잘못된 주제로 흐를 수 있습니다

생성기는 모호한 이름을 잘못 해석하거나, 가정에서 보유하지 않은 제품을 끌어들이거나, 날짜를 지어낼 수 있습니다. 이러한 용어는 잘못된 대상에 관한 내부적으로 일관된 문서를 검색할 수 있어, 원래의 희소 쿼리보다 더 확신에 찬 잡음을 만들어 냅니다.

상호보완적 쿼리 재작성에 관한 통제 연구에서는 일부 데이터세트에서 조합을 통해 검색 범위를 넓힐 수 있지만, 모호한 질문 벤치마크에서는 성능이 저하될 수 있음을 보여 줍니다. 이는 확장을 쿼리 유형에 따라 제한하고 강력한 기준선과 비교해 평가해야 하는 이유를 보여 줍니다.

실패가 발생하는 경계는 핵심 대상이나 의도가 불확실한 모든 쿼리입니다. 원래 쿼리를 보존하고, 합성 텍스트를 검색 보조 자료로 표시하며, 융합 과정에서 그 영향력을 제한하고, 확장 결과가 근거 집합에서 서로 일치하지 않으면 답변을 유보해야 합니다.

확장의 기여도를 테스트하세요

약어, 비공식 명칭, 번역어 및 쿼리에는 없지만 공식 문서에 사용되는 용어가 포함된 실제 가정용 질문 30개를 만드세요. 검증된 지원 청크를 기록한 다음, 동일한 인덱스, 상위 k 예산 및 재순위화기를 사용하여 원본만 검색하는 방식과 제안된 확장 방식을 실행하세요.

약어 검색에 사용된 평가 방법으로 재현율과 인용 범위를 추적하세요. 새로 추가된 각 관련 청크에 대해 어떤 재작성 문장이 이를 찾았는지 기록하고, 새로 발생한 각 방해 문서에 대해서는 흐름을 잘못 유도한 용어와 재순위화에서 이를 제거했는지를 기록하세요.

허용할 수 없는 정밀도 저하나 지연 시간 증가 없이 보류 데이터의 재현율을 높이는 경우에만 확장을 활성화하세요. 성능 향상이 단순히 더 큰 후보 예산에서 비롯된 것이라면, 개선을 합성 표현의 효과로 판단하기 전에 동일한 예산으로 원래 쿼리를 실행한 결과와 비교하세요.

기술 및 AI 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.