골드 패스지를 넘어선 맥락적 임베딩
답변과 지원 맥락을 검색하기 위한 새로운 학습 방법, 모델 및 벤치마크.
소개
맥락적 임베딩은 전체 문서의 맥락 속에서 각 패스 또는 청크의 의미를 포착합니다. 이들의 학습과 평가는 일반적으로 쿼리당 하나의 관련 청크를 가정하며, 이는 "골드 패스지"로 알려져 있습니다. 그러나 실제로는 골드 패스지만으로는 충분하지 않은 경우가 많습니다. 답변을 포함하고 있으나 이해하거나 검증하는 데 필요한 지원 맥락이 부족하여 고립된 상태에서는 모호해질 수 있습니다.
당사는 새로운 맥락적 임베딩 모델인 pplx-embed-v2-context-9b-preview를 소개합니다. 이 모델은 Perplexity의 맥락 압축 모델을 교사로 사용하는 새로운 접근 방식으로 학습됩니다. 당사는 토큰 수준 예측을 청크 수준 관련성 점수로 집계하여, 임베딩 모델이 단일 골드 청크 대신 답변 청크와 지원 맥락을 모두 검색하도록 가르칩니다. 이 모델은 추가 추론 비용 없이 청크당 하나의 임베딩을 생성하며 1024차원 및 int8 임베딩을 지원합니다.
이 모델은 turbopuffer가 생성하고 비공개로 보유한 맥락 인식 검색을 위한 새로운 벤치마크인 context-bench와 널리 사용되는 공개 벤치마크인 ConTEB에서 최첨단 결과를 달성합니다. 당사 모델은 context-bench와 독립적으로 개발되었으며 블라인드 제출로 평가되었습니다.
Context-bench는 21개 도메인의 38,894개 긴 문서에 걸쳐 2,099개의 쿼리로 구성되며, 맥락적 임베딩의 세 가지 기능을 평가합니다: 거의 중복되는 문서 간의 문서 중의성 해소, 의미가 먼 맥락에 의존하는 골드 청크 검색, 그리고 답변 검증에 필요한 지원 증거 리콜.
모델의 미리보기 버전은 Hugging Face에서 공개적으로 이용 가능합니다. 학습 오염 위험을 줄이고 진행 상황 측정 가치를 보존하기 위해 벤치마크는 turbopuffer가 비공개로 유지하고 있습니다. 평가를 요청하려면 contextbench@turbopuffer.com으로 turbopuffer에 문의해 주시기 바랍니다.
검색에서 맥락이 중요한 이유
검색 시스템은 일반적으로 긴 문서를 독립적으로 인덱싱하고 검색할 수 있는 더 작은 청크로 나눕니다. 청크 분할은 실제로 편리하지만, 각 청크가 원래 나타났던 맥락을 제거하여 정보 압축의 세밀성과 인코딩 중에 사용되는 맥락 간의 트레이드오프를 생성합니다. 청크는 이전에 도입된 엔티티를 참조하거나, 섹션 제목에서 의미를 상속하거나, 문서 다른 곳에 위치한 정의에 의존할 수 있습니다. 일단 추출되면, 쿼리에 안정적으로 매칭되기에 충분한 정보를 더 이상 포함하지 않을 수 있습니다. 전체 문서를 단일 벡터로 인코딩하는 것은 단일 풀링된 표현이 긴 문서의 모든 측면을 충실히 포착할 수 없기 때문에 이를 해결하지 못합니다.
맥락적 임베딩 모델은 주변 콘텐츠의 맥락 속에서 각 청크를 표현함으로써 이 한계를 해결하며, 가장 흔하게는 레이트 청킹(late chunking)을 통해 이루어집니다. 문서는 단일 패스로 인코딩되고 청크 표현은 나중에 풀링되므로, 모든 청크 벡터는 전체 문서가 시야에 있는 상태에서 계산됩니다. ConTEB 및 자체 pplx-embed-context-v1과 같은 이전 연구는 맥락화된 청크 표현이 독립적으로 인코딩된 청크에 비해 특히 긴 문서에서 검색 성능을 대폭 향상시킨다는 점을 보여주었습니다.
골드 청크 슈퍼비전의 한계
맥락적 임베딩 모델을 학습하려면 문서의 어떤 부분이 주어진 쿼리와 관련이 있는지 식별하는 슈퍼비전이 필요합니다. 일반적인 접근 방식은 골드 청크 주석입니다. 각 쿼리에 대해 주석 작성자, 일반적으로 대형 언어 모델(LLM)이 답변을 제공하는 문서의 청크를 식별합니다.
학습은 일반적으로 두 개의 대조 손실을 결합합니다. 즉, 다른 문서의 청크들과 골드 청크를 대조하는 문서 간 손실과, 같은 문서의 다른 청크들과 대조하는 문서 내 손실입니다.
이 접근 방식에는 몇 가지 한계가 있습니다:
- 하나의 청크만 관련됨. 유용한 지원 정보가 포함된 청크를 포함하여 문서의 다른 모든 청크를 네거티브로 취급합니다. 문서 수준 슈퍼비전은 다른 극단에서 작동합니다. 문서 내에서 어떤 청크가 중요한지 지정하지 않고 문서가 관련이 있는 것으로 식별합니다. 실제로 관련성은 이러한 극단 사이에 있는 경우가 많습니다. 답변을 포함하는 청크는 엔티티를 도입하고, 참조를 해결하며, 보완적인 사실을 제공하는 몇 개의 지원 청크에 의존할 수 있는 반면, 문서의 나머지는 관련이 없습니다. 따라서 모델은 단일 골드 청크보다는 넓고 문서 전체보다는 집중된 올바른 수준의 선택성을 학습해야 합니다.
- 조잡한 슈퍼비전. 각 주석은 문서 전체에 걸쳐 관련성 정도를 포착하는 대신 단일 골드 청크를 식별하므로, 이를 생성하는 데 소모된 연산량에 대해 제한된 학습 신호를 제공합니다.
- 확장 비용이 높음. 모든 학습 쌍에는 LLM이 문서를 읽고 관련 청크를 선택해야 하므로 주석 비용이 학습 세트의 크기에 비례하여 선형적으로 증가하며 학습 데이터의 양과 다양성이 얼마나 될 수 있는지를 제한합니다.
- 청크 경계에 민감함. 라벨은 또한 주석 작성 중에 사용된 청크 경계에 묶여 있습니다. 고정된 토큰 크기 창에 할당된 골드 라벨은 어떤 더 짧은 문장이나 더 긴 단락이 관련이 있는지 지정하지 않습니다. 따라서 인덱싱 시점에 문서가 분할되는 방식에 대한 견고성을 개선하기 위해 청크 분할 전략을 변경하거나 여러 청크 분할에 걸쳐 학습하는 경우 코퍼스에 다시 주석을 달아야 할 수 있습니다.
맥락적 학습을 위한 새로운 접근 방식
당사는 쿼리 인식 맥락 압축 모델로부터 관련성 판단을 증류하여 골드 청크 슈퍼비전의 한계를 해결합니다. 이 모델은 교사 역할을 합니다. 쿼리와 문서를 결합하여 읽고 각 문서 토큰에 관련성 점수를 할당합니다. 이 모델의 예측은 맥락적 임베딩을 학습하는 데 몇 가지 이점을 제공합니다:
- 유연한 청크 경계. 토큰 수준 관련성 점수는 선택한 청크 경계에 걸쳐 집계될 수 있으므로, 동일한 교사 예측이 재주석 없이도 다양한 청킹을 감독할 수 있습니다.
- 연속적인 관련성. 이진 골드 청크 라벨과 달리, 교사는 답변 포함 청크, 지원 청크, 관련 없는 콘텐츠를 자연스럽게 구별하는 관련성 정도를 포착하는 연속적인 점수를 제공합니다.
- 낮은 주석 비용. 교사는 컴팩트하고 관련성 채점에 특화되어 있으므로 범용 LLM보다 대규모로 감독하는 데 드는 비용이 훨씬 저렴합니다.
당사는 쿼리-문서 쌍의 배치에 대해 문서 수준 대조 손실과 청크 수준 증류 손실의 가중 합으로 모델을 학습합니다. 각 쿼리에 대해 쌍을 이룬 문서는 포지티브로 작용하고, 동일한 배치 내의 나머지 문들은 네거티브로 작용합니다.
각 배치에 대해 청크 분할 전략을 무작위로 선택하고, 그에 따라 문서를 분할하며, 청크 사이에 구분자 토큰을 삽입합니다. 그런 다음 단일 순방향 패스로 각 문서를 처리하고 각 청크 내의 토큰 표현을 평균 풀링하여 맥락적 청크 임베딩을 얻습니다. 쿼리는 토큰 표현에 대한 평균 풀링과 함께 별도로 인코딩됩니다. 마지막으로 배치 내 모든 쿼리 임베딩과 모든 청크 임베딩 간의 코사인 유사도를 계산합니다.
손실 함수
문서 수준 대조 손실
임베딩 모델은 청크 수준 유사도만 생성하지만, 이로부터 문서 수준 유사도를 자연스럽게 도출할 수 있습니다. 당사는 문서 d가 쿼리 q에 대해 가장 관련성이 높은 청크만큼 관련이 있다고 간주합니다. 이 채점 규칙은 ColBERT의 MaxSim 연산에서 영감을 받았으며, 여기서는 토큰 대신 청크에 적용됩니다.
구체적으로, 임베딩 q를 가진 쿼리 q와 임베딩 c를 가진 청크 c의 순서가 지정된 목록으로서의 문서 d가 주어질 때, 문서 수준 유사도를 다음과 같이 정의합니다:
이러한 문서 수준 유사도가 주어지면, 배치 내 네거티브에 대해 문서 수준 InfoNCE 목적 함수를 공식화할 수 있습니다.
쿼리 q에 대해, 관련 문서를 d⁺라 하고 배치 내 문서를 𝒟라 합시다. 가독성을 위해 온도를 생략한 대조 손실은 다음과 같습니다:
청크 수준 증류 손실
대조 손실은 모델에게 어떤 문서가 쿼리와 관련이 있는지 가르쳐 줍니다. 증류 손실은 문서 내 어디에 관련성이 있는지 가르쳐 주며, 이는 맥락적 모델에 필수적입니다.
학습 동안 당사는 각 포지티브 쿼리-문서 쌍을 맥락 압축 모델에 전달하며, 이 모델은 문서의 모든 토큰에 관련성 점수를 할당합니다. 문서 수준 채점과 마찬가지로, 각 청크의 관련성은 가장 관련성 높은 콘텐츠로부터 도출됩니다. 청크 경계의 토큰을 포함하여 이상치 토큰에 대한 민감도를 줄이기 위해, 청크 수준 관련성을 청크 내 상위 n개 토큰 점수의 평균으로 정의합니다.
각 쿼리에 대해, 포지티브 문서 내 교사의 청크 수준 관련성 점수에 온도 스케일링된 소프트맥스를 적용하여 타겟 분포를 얻습니다. 배치 내 다른 문서의 청크는 0의 타겟 확률을 받습니다. 배치 내 모든 청크에 대해 타겟과 예측 분포 사이의 전방 KL 발산(forward KL divergence)을 최소화하여 임베딩 모델이 이 타겟에 맞추도록 학습시킵니다:
여기서 위스마트 T와 S는 각각 교사와 학생을 나타내고, rⱼ는 포지티브 문서 d⁺에서 청크 cⱼ에 대한 교사의 관련성 점수입니다. 교사의 타겟 분포는 배치 내의 다른 모든 문서에 있는 청크에 대해 0의 확률을 할당합니다.
단일 골드 청크 라벨과 달리, 이 타겟은 관련성 정도를 포착합니다. 지원 청크는 네거티브로 취급되는 대신 교사의 점수에 따라 가중치를 부여받아, 모델이 답변뿐만 아니라 지원 맥락도 검색하도록 가르칩니다.
결합 손실
당사의 결합된 학습 목적 함수는 문서 수준 대조 손실과 청크 수준 증류 손실의 가중 합입니다. 당사는 이 가중 손실을 쿼리-문서 쌍의 배치에 걸쳐 평균합니다.
그림 2는 당사의 학습 접근 방식을 보여줍니다. 맥락 압축기는 학습 중에만 교사 역할을 합니다. 추론 시점에 임베딩 모델은 추가 압축이나 리랭킹 단계 없이 청크당 하나의 맥락적 임베딩을 생성합니다. 이 접근 방식은 검색 시점에 인덱스 저장소를 늘리거나 교사 모델 레이턴시를 추가하지 않고도 맥락적 임베딩이 학습되는 방식을 개선합니다.
학습 데이터
학습 데이터는 50개 이상의 언어를 다루는 약 430개의 공개 및 사내 쿼리-문서 데이터셋으로 구성됩니다.
당사는 PII 필터링된 프로덕션 데이터와 긴 문서에 걸쳐 관련 쿼리를 합성하는 방식을 통해 사내 쌍 데이터셋을 구축합니다. 각 순방향 패스마다 하나의 데이터셋을 선택하고 그곳에서 전체 배치(batch)를 샘플링하여 배치 내 네거티브의 난이도를 높이고 숏컷 학습을 방지합니다. 학습 데이터셋 중 청크 수준의 주석이 포함된 것은 없습니다. 문서 내 모든 슈퍼비전은 압축 모델에서 비롯되며, 학습에 ConTEB 데이터는 사용되지 않습니다. 또한 모델 개발 과정에서 어떠한 context-bench 데이터도 사용되지 않았습니다.
학습 설정
모델은 사내의 9B 파라미터 ColBERT 검색 모델에서 시작하여 선형 투영 레이어를 통해 2048차원 임베딩을 생성합니다. 학습된 <|chunk_sep|> 토큰으로 청크 경계를 표시하고, 각 청크 토큰 임베딩을 평균하여 청크 임베딩을 구성합니다. 쿼리는 동일한 모델에 의해 인코딩되며, 토큰 임베딩이 단일 벡터로 평균화됩니다.
당사는 1024차원 및 2048차원 임베딩을 모두 지원하기 위해 마트료시카 학습(Matryoshka training)을 사용하며, 네이티브 int8 임베딩을 지원하기 위해 양자화 인식 학습을 사용합니다. 학습 중에는 학습률을 점진적으로 높이고, 일정하게 유지한 후 줄입니다.
공개된 모델은 동일한 학습 실행에서 여러 체크포인트의 가중치를 평균한 모델 수프(model soup)입니다.
청크 수준 검색을 위한 새로운 벤치마크
ConTEB와 같은 공개 맥락 검색 벤치마크는 골드 청크 슈퍼비전의 이면 가정을 공유합니다. 즉, 각 쿼리에는 하나의 관련 청크가 존재하고 모델은 해당 청크의 순위를 1위로 매긴 경우에만 보상을 받습니다. 또한 이러한 벤치마크는 그 한계도 그대로 물려받습니다.
첫째, ConTEB은 주변 맥락이 없으면 청크가 모호해지는 태스크에 대한 검색을 테스트합니다. 이러한 태스크에서는 맥락적 모델이 각 청크를 독립적으로 인코딩하는 모델보다 뛰어난 성능을 보였습니다. 그러나 이 벤치마크는 모델이 청크를 이해할 수 있게 만드는 문서의 다른 부분들도 함께 표면에 드러내는지 여부는 묻지 않습니다.
둘째, 동일한 코퍼스 내의 거의 동일한 문서들이 동일한 문장을 둘러싼 맥락에서만 차이가 날 때, 올바른 문서를 찾을 수 있는지 체계적으로 테스트하지 않습니다.
검색 에이전트나 사용자가 전체 문서가 아닌 몇 가지 검색된 문장으로부터 답변을 이해하고 검증해야 할 때 두 기능 모두 중요합니다. 따라서 당사는 문서 맥락의 활용을 일반 검색 품질과 구별하도록 설계된, 긴 문서 검색을 위한 통제된 벤치마크인 context-bench를 구축했습니다. 이 벤치마크는 맥락적 임베딩이 문서 내 다른 곳의 정보를 사용하여 세 가지 기능을 지원하는지 테스트합니다:
- 문서 중의성 해소: 거의 동일한 대안들 중에서 올바른 문서를 식별합니다.
- 답변 검색: 의미가 문서 내 다른 곳의 세부 정보에 의존하는 답변 포함 청크를 검색합니다.
- 증거 검색: 답변을 명확히 하거나 입증하는 지원 청크를 검색합니다.
Context-bench에는 2,099개의 쿼리와 38,894개의 문서가 포함되어 있습니다. 문장 길이 청크가 사용되어 총 2,458,072개의 청크가 생성됩니다. 쿼리는 기업 공시, 임상 리서치, 여행, 엔터테인먼트, 교육, 정부, 법률 계약, 소프트웨어 문서를 포함한 21개 도메인을 다룹니다.
각 쿼리는 12가지 맥락 기능 중 하나를 테스트하도록 설계되었습니다. 기본 타겟 문서는 의도적으로 깁니다. 서로 다른 1,197개의 기본 타겟 문서 중 1,061개가 최소 200개의 문장을 가지고 있으며, 중앙값 길이는 약 6,100 토큰입니다. 모든 쿼리에는 코퍼스 내에 정확히 하나의 정답이 있습니다. 동일한 사실이 골드 문서에 요약 문장과 테이블 행 등 두 번 이상 명시된 경우, 그 문장 중 어떤 것이든 답변으로 허용됩니다.
답변 경로는 답변 청크와 이를 해석하거나 검증하는 데 필요한 지원 증거의 유효한 조합 중 하나입니다. 2,099개의 쿼리에 걸쳐, 기본 타겟 문서 답변 경로는 964개의 쿼리에 대해 하나의 증거 그룹을, 735개의 쿼리에 대해 두 개를, 332개의 쿼리에 대해 세 개 이상을, 68개의 쿼리에 대해 0개를 가집니다. 대체 유효 답변 경로는 서로 다른 증거 그룹을 요구할 수 있습니다.
표 1: 벤치마크 통계.
통계 | 값 |
쿼리 | 2,099 |
문서 | 38,894 |
문장 청크 | 2,458,072 |
기본 타겟 문서 길이 중앙값 | 6,100 토큰 |
도메인 | 21 |
쿼리당 증거 그룹(기본 타겟 문서 답변 경로) | 1: 964; 2: 735; 3+: 332; 없음: 68 |
표 2: 예시와 함께 context-bench에서 테스트한 12가지 맥락 기능.
기능 | 예시 쿼리 | 답변 청크 | 필요한 문서 맥락 |
1. 엔티티 식별성 | 노스레이크(Northlake)가 자사주 매입에 지출한 금액은 얼마인가요? | 이 회사는 128억 달러어치의 주식을 재매입했습니다. | 서두에서는 노스레이크를 "회사"로 지칭합니다. 유사한 사우스레이크 보고서는 관련이 없습니다. |
2. 기간 또는 버전 | M40 개정판 B에 맞는 카트리지는 무엇인가요? | KC-42 카트리지를 설치하세요. | 적용성 섹션에는 이 지침이 개정판 C가 아닌 개정판 B에 적용된다고 명시되어 있습니다. |
3. 정의 및 별칭 | 15 mg 그룹의 철회율은 얼마였나요? | 제타(Zeta)의 철회율은 12.7%였습니다. | 보고서는 제타를 15 mg 그룹으로 정의합니다. 그러한 정의가 없다면, 해당 청크는 요청된 그룹을 식별하지 못합니다. |
4. 테이블 구조 | Max 모델의 배터리 용량은 얼마인가요? | 일반 용량: 4,250 | 4,700 | 5,150. | 테이블 헤더는 단위 mAh로 측정된 Mini | Base | Max를 설정합니다. 따라서 정답은 5,150 mAh입니다. |
5. 조건 및 예외 | 상업용 배터리 보증 기간은 얼마나 되나요? | 배터리 보증 기간은 18개월입니다. | 섹션 도입부에서는 이 보증을 상업용 설치로 제한하며, 가정용 설치에는 다른 보증이 적용됩니다. |
6. 참조 및 대명사 | 마라(Mara)는 언제 부시장이 되었나요? | 그녀는 2021년에 취임했습니다. | 앞의 서사에 따르면 "그녀"는 함께 논의되는 엘린이 아니라 마라를 가리킵니다. |
7. 목록 순서 및 위치 | 앙코르의 시작 곡은 어떤 곡이었나요? | 14. 랜턴 로드. | 다른 곳의 주에 따르면 14~16번 곡이 앙코르를 구성했습니다. 따라서 트랙 14가 첫 번째 곡입니다. |
8. 섹션 범위 | 영화 촬영에 사용된 렌즈는 무엇인가요? | 전체 과정에 걸쳐 35 mm 단렌즈가 사용되었습니다. | 이 구절은 홍보 사진에 관한 별도의 섹션이 아니라 "주요 촬영"에 속합니다. |
9. 화자 귀속 | 시장이 약속한 재개장일은 언제인가요? | 6월 12일에 재개장하겠습니다. | 대화록에는 시장이 화자로 명시되어 있습니다. 계약자가 한 동일한 말은 시장의 약속을 성립시키지 않습니다. |
10. 시간 경과에 따른 변경 | 5월 개정 이후 어떤 통지 기간이 적용되었나요? | 통지 기간이 이제 45일로 변경되었습니다. | 개정 이력에 따르면 이 변경 사항은 5월부터 시행되어 이전의 30일 규정을 대체했습니다. |
11. 인과 관계 | 서쪽 펌프가 멈춘 이유는 무엇인가요? | 해당 결함이 가동 중단의 원인이 되었습니다. | 조사 결과 "해당 결함"은 서쪽 펌프의 고착된 베어링으로 확인되었으며, 이는 관련 없는 흡입구 막힘과는 구분됩니다. |
12. 비유적 또는 언어 간 의미 | 비유적 의미: 시에서 "겨울 방"은 무엇을 상징하나요? 언어 간 의미: 프랑스어 지침은 기술자에게 어떤 부품을 제거하라고 지시하나요? | 비유적 의미: 물리적인 방이 아니라 망명을 나타냅니다. 언어 간 의미: Retirez le capot. (커버를 제거하세요.) | 비유적 의미: 해설에서는 "그것"을 시에서 반복되는 "겨울 방" 이미지로 식별합니다. 언어 간 의미: 가이드의 용어집에 따르면 "capot"은 배송용 커버가 아닌 보호용 모터 후드를 의미합니다. |
문서 및 쿼리
테스트 대상인 쿼리, 문서, 기능들은 turbopuffer 고객과의 대화에서 영감을 받았습니다.
예를 들어, 부동산 관리 회사의 검색 니즈를 생각해 보겠습니다. 이러한 회사는 테넌트 이름, 날짜 및 기타 몇 가지 핵심 세부 정보에서만 차이가 나는 수백 개, 때로는 수천 개의 임대 계약을 보유하고 있습니다. 해당 데이터셋에 대한 일반적인 쿼리는 "5 파크 애비뉴의 임대 계약은 언제 끝나며 현재 임대료는 얼마인가요?"일 수 있습니다. 임대 계약 역시 길 수 있으며, 올바른 문서를 검색했음을 확인할 수 있는 중요한 중의성 해소 구성요소(날짜, 주소, 테넌트 이름 등)는 월 임대료 금액이 포함된 핵심 답변 문장으로부터 종종 매우 멀리 떨어져 있을 수 있습니다. 실제로 "월 임대료는 $X,XXX입니다."와 같은 동일한 문장이 코퍼스 내의 많은 문서에 걸쳐 나타날 수 있습니다.
훌륭한 맥락적 임베딩 모델은 문서 전반의 맥락을 사용하여 올바른 문서를 식별하고 답변과 그 지원 문장을 모두 검색해야 합니다. 이를 통해 사용나 검색 에이전트는 답변을 신속하게 검증하고 올바른 문서에서 나온 것인지 확인할 수 있습니다.
답변 및 증거 라벨
각 쿼리에 대해, 당사는 타겟 문서 내의 "답변" 및 "증거" 문들에 라벨을 지정합니다. 모델이 답변 문장을 각 증거 그룹의 문장 중 적어도 하나와 함께 검색하면 당사의 "독자 충족도(reader sufficiency)" 테스트를 통과한 것입니다. 함께 모여, 이러한 문장은 독자가 지원 증거를 통해 답변을 검증하기에 충분한 맥락을 제공합니다.
맥락적 임베딩 모델이 이 작업을 잘 수행하면, 검색 에이전트가 검토해야 하는 토큰 수를 대폭 줄일 수 있을 뿐만 아니라, 사용자가 전체 문서를 읽지 않고도 원래 쿼리에 대한 올바른 답변을 찾았음을 훨씬 더 쉽게 빠르게 확인할 수 있습니다.
모든 증거 그룹을 복원해야 하지만, 그룹 내 대안 중 하나만으로도 복원하기에 충분합니다. 이러한 긴 문서 전반에 걸쳐 여러 곳에서 동일한 사실이 명시되어 있는 것을 흔히 볼 수 있습니다. 각 증거 그룹에서 단 하나의 문장만 검색해도 독자 충족도 기준을 충족하므로 완벽한 증거 리콜로 인정됩니다.
지표
모든 문서는 문장 단위로 청킹되며, 모든 모델에 동일한 경계가 사용됩니다. 비맥락적 임베딩 모델에 대해 두 가지 조건이 테스트됩니다. 하나는 각 문장이 독립적으로 임베딩되는 조건이고, 다른 하나는 전체 문서가 단일 청크로 임베딩되는 조건입니다.
당사는 답변 리콜과 증거 리콜을 측정하기 위해 문장 수준 조건을 사용합니다. 이는 각 문장이 주변 문서에 대한 접근 없이 임베딩될 때 비맥락적 모델이 올바른 답변과 지원 증거를 식별할 수 있는지 테스트합니다. 이는 의도적으로 까다롭습니다. 많은 쿼리에서 답변 문장만으로는 코퍼스 내의 유사한 문장들과 구별하는 데 필요한 세부 정보가 부족합니다.
당사는 문서 리콜 베이스라인으로 문서 수준 조건을 사용합니다. 이는 미세 조정된 문장 임베딩이 문서당 하나의 벡터를 저장하는 것에 비해 추가적인 저장 비용을 정당화할 만큼 충분한 검색 이점을 제공하는지 테스트합니다. 문장 수준 인덱스는 문서 수준 인덱스보다 훨씬 더 많은 벡터를 생성하므로, 그 비용을 정당화하려면 벡터당-문서-하나 베이스라인보다 성능이 뛰어나야 합니다.
모든 평가는 2,458,072개의 모든 청크에 대한 철저한 순위를 사용합니다. 따라서 모델 간의 차이는 인덱스 구성이 아닌 표현을 반영합니다. 당사는 세 가지 핵심 지표에 집중합니다:
Document@K는 다음과 같이 정의됩니다:
여기서 은 에서 가장 순위가 높은 문서입니다.
Answer@K는 다음과 같이 정의됩니다:
여기서 은 전체 코퍼스에서 상위 청크이고 은 승인된 답변 청크 집합입니다.
Evidence Recall@K은 내에서 다음과 같이 측정됩니다: 의 문장들을 유사도순으로 정렬하고, 가장 순위가 높은 답변 문장을 제거한 후, 남은 상위 개를 이라고 합니다. 증거 그룹 에 대해, 일부 대안 이 을 만족하면 그룹 이 복원되며,
Document@K는 맥락화를 통해 올바른 문서가 어휘를 공유하는 형제 문서와 디스트랙터(distractor)를 이길 수 있는지 묻습니다.
Answer@K는 답변 문장 자체의 순위가 상위 청크에 속하는지 묻습니다.
Evidence Recall@K은 가장 순위가 높은 답변 청크를 제외한 후, 올바른 문서의 상위 K개 청크 중에서 지원 맥락이 얼마나 복원되는지 묻습니다. 답변을 제거하면 증거 리콜이 Answer@K가 이미 측정하고 있는 것을 중복 카운트하는 것을 방지하고, 지원 맥락을 위해 모든 슬롯을 남겨둡니다. 골드 문서가 상위 10개 검색된 문서에 속해야 한다는 요구사항은 표면에 드러나지 않을 문서에 대해 모델이 증거 크레딧을 받지 않도록 합니다. 또한 모든 그룹이 복원된 쿼리의 비율인 All-Evidence@K도 보고합니다.
이러한 지표들은 함께 모여 맥락적 임베딩 모델이 직면한 과제들을 해체합니다: 올바른 문서 찾기, 올바른 답변 찾기, 그리고 답변이 왜 정답인지 보여주는 최소한의 맥락 복원하기.
그림 3은 부동산 관리 예시와 함께 지표들을 보여줍니다.
평가 결과
당사는 4가지 측면에서 맥락적 및 비맥락적 임베딩 모델과 당사 모델을 비교 평가합니다.
당사의 맥락적 베이스라인은 pplx-embed-context-v1-4B 및 voyage-context-4입니다. 비맥락적 베이스라인은 청크를 독립적으로 인코딩하는 voyage-4-large 및 NVIDIA의 Nemotron-3-Embed-8B-BF16입니다. 각 그림에 표시된 대로 베이스라인 세트는 실험에 따라 다릅니다.
당사는 이 작업을 동기부여하는 기능을 직접 테스트하는 context-bench로 시작하여, 맥락적 임베딩을 위한 표준 공개 벤치마크인 ConTEB에 대한 결과를 보고합니다. 이러한 향상이 일반 검색 품질을 희생시키지 않고 이루어졌는지 확인하기 위해, 공개 데이터셋으로부터 구축한 도메인 특화 문서 및 청크 검색 벤치마크도 평가합니다. 마지막으로 배포를 위한 두 가지 실용적인 속성, 즉 벡터당 저장 비용 대비 검색 품질과 인덱싱 시점에 사용되는 청크 크기에 대한 민감도를 검사합니다. 모든 평가는 단일 패스에서 최대 32,768 토큰의 문서를 인코딩합니다.
Context-bench
소개의 그림 1에 나타난 바와 같이, 당사의 미리보기 모델은 보고된 모든 컷오프에서 Answer@K 및 Evidence Recall@K뿐만 아니라 All-Evidence@10에서도 선두를 달리고 있습니다. K = 10에서 45.5%의 답변 리콜, 40.6%의 증거 리콜, 31.1%의 전체 증거 리콜을 달성합니다. 또한 Document@1 및 Document@10에서도 각각 15.2%와 61.6%에 도달하며 선두를 차지하고 있습니다. K = 10에서 당사의 미리보기 모델은 답변 리콜에서 voyage-context-4를 14.4 퍼센트 포인트, 증거 리콜에서 5.0 포인트 앞섭니다.
ConTEB
당사의 미리보기 모델은 그림 4의 ConTEB에 표시된 모델들 중에서 가장 높은 평균 nDCG@10을 달성합니다. 모든 태스크에서 선두를 차지하는 것은 아닙니다. NarrativeQA에서는 pplx-context-v1-4B가 더 높은 점수를 기록하고, COVID-QA에서는 Nemotron-3-8B가 가장 높은 점수를 기록합니다. 주요 저자들이 ConTEB 논문에서 지적했듯이, COVID-QA는 주로 매우 추출적인 쿼리-청크 페어링을 포함하고 있어 기술적 의학 용어에 대한 단순한 표면적 어휘 매칭으로 충족될 수 있습니다. 결과적으로 이 태스크에서는 맥락 이해도가 덜 유용하며 비맥락적 모델이 일반적으로 맥락적 모델보다 성능이 뛰어납니다.
도메인별 일반 검색 품질
맥락적 임베딩을 위해 설계된 벤치마크를 넘어, 당사는 모델의 도메인별 성능을 평가합니다.
당사의 쿼리-투-청크(Q2C) 스위트는 LegalBench 및 FinanceBench와 같은 MTEB 태스크를 공개 데이터셋에서 큐레이션한 추가 검색 태스크와 함께 사용합니다. 각 관련 문서 내에서 청크는 태스크가 제공하는 경우 정확한 답변 스팬을 포함하고 있는 경우 관련성이 있는 것으로 라벨링되며, 그렇지 않은 경우 LLM이 쿼리에 대한 관련성을 판단하여 라벨링됩니다. 쿼리-투-도큐먼트(Q2D) 스위트는 동일한 태스크를 사용하여 관련 문서가 검색되는지 여부를 채점합니다.
당사 모델은 그림 5의 청크 검색에서 가장 높은 평균 점수를 달성하며 법률, 기술, 보건 도메인에서 선두를 차지합니다. 모든 도메인에서 선두인 것은 아닙니다. 금융 및 다국어 검색에서는 voyage-context-4가 더 높은 점수를 기록하고, 대화 검색에서는 Nemotron-3-8B가 가장 높은 점수를 기록합니다. 그림 6의 문서 검색에서는 당사 모델이 평균적으로 voyage-context-4보다 약간 낮은 점수를 기록한 반면, 기술 도메인에서는 선두를 차지했습니다. pplx-context-v1-4B 베이스라인은 두 스위트 모두에서 평균적으로 더 낮은 점수를 기록했는데, 이는 ConTEB 학습 세트로만 학습되었음을 시사하며 하나의 벤치마크 골드 청크에 묶인 슈퍼비전이 다른 도메인으로 잘 전이되지 않음을 보여줍니다.
검색 품질 및 저장 비용
맥락적 임베딩 모델은 청크당 하나의 벡터를 생성하므로, 당사 모델로 구축된 인덱스는 동일한 청크 분할 전략을 사용하는 기존 청크 수준 인덱스와 정확히 동일한 수의 벡터를 포함합니다. 맥락화는 저장되는 벡터의 수가 아니라 각 벡터가 인코딩하는 것을 변경합니다. 따라서 저장 용량은 각 벡터의 크기에 의해 좌우됩니다. 모델은 이를 줄이는 두 가지 방법, 즉 임베딩을 2048차원에서 1024차원으로 축소하는 것과 int8로 양자화하는 것을 제공합니다.
그림 7은 검색 품질과 벡터 저장소 간의 유리한 트레이드오프를 보여줍니다. 1024차원에서 당사의 int8 임베딩은 벡터당 1 KB를 사용하는 반면, 벡터당 8 KB를 사용하는 float32의 2048차원 voyage-context-4의 청크 검색 점수를 약간 상회합니다. 임베딩 크기를 2048차원으로 늘리면 벡터당 2 KB에서 검색 품질이 더욱 향상됩니다. 이러한 저장 수치는 인덱스의 나머지가 아닌 벡터 자체만을 의미합니다.
청크 크기 민감도
그림 8은 청크 크기가 64토큰에서 512토큰으로 증가할 때 검색 품질에 완만한 변화만 있음을 보여줍니다. 평균 점수는 81.0%에서 79.9%로 1.1 퍼센트 포인트 감소합니다. 이는 모델이 테스트된 청크 크기 전반에 걸쳐 효과를 유지하며, 문서 분할 방식에 있어 인덱싱 파이프라인에 유연성을 제공함을 시사합니다.
릴리스
turbopuffer는 context-bench의 전체 코퍼스, 쿼리 및 라벨을 비공개로 유지하며 제출된 모델의 결과를 보고합니다. 이러한 종류의 공개 벤치마크는 쿼리와 문서에 대한 직접적인 학습을 유도하므로, 점차 포화 상태가 되어 시간이 지남에 따라 진행 상황을 추적하는 가치가 떨어지게 됩니다. 모델이 본 벤치마크에서 평가되기를 원하시는 경우, contextbench@turbopuffer.com으로 turbopuffer에 문의해 주시기 바랍니다.
당사 모델의 미리보기 버전은 Hugging Face에서 이용 가능하며, 이 포스트의 모든 결과는 이 미리보기에 대해 보고되었습니다. 당사는 Perplexity API를 통해 모델을 이용할 수 있도록 만들기 위해 노력하고 있으며, turbopuffer와 함께 긴 문서에 대한 검색을 더욱 개선하기 위해 노력하고 있습니다.
인용
@online{perplexity2026ContextualEmbeddingBeyondTheGoldPassage,
author = {{Perplexity} and Sarah Eslami and William Barber and Markus Krimmel and Antoine Chaffin and Bo Wang and Louis Milliken and Jarrod Bryan and Claire Beamer and Jeremy Yang},
title = {{Contextual embedding beyond the gold passage}},
date = {2026-09-30},
url = {https://www.perplexity.ai/hub/blog/contextual-embedding-beyond-the-gold-passage}
}