Perplexity 문맥 임베딩 모델 공개: 문서 전체를 반영하는 검색
Perplexity의 0.6B·9B 문맥 임베딩 모델은 문서 전체를 참고해 조각별 벡터를 만들고 시각 문서 검색도 지원한다. 적용 조건과 평가 방법을 살펴본다.

긴 문서를 잘게 나눠 검색할 때, 개별 조각만 보면 뜻이 빠질 수 있다. 앞쪽에 정의된 용어나 뒤쪽의 근거가 검색 결과에서 떨어져 나가는 식이다. Perplexity가 공개한 pplx-embed-v2-context는 문서 전체의 문맥을 참고하면서 각 조각에 벡터를 부여하는 임베딩 모델 계열이다.
11월 3일 공식 발표는 0.6B와 9B 두 크기의 공개 가중치 모델을 소개한다. 9B 프리뷰는 이미 9월에 소개됐으므로 문맥 임베딩 아이디어 자체가 이날 처음 등장한 것은 아니다. 관련 연구 논문은 10월 28일 제출됐다.
조각을 따로 읽는 대신 함께 인코딩한다
일반적인 청크 검색에서는 문서를 여러 조각으로 나누고 각 조각을 독립적으로 벡터화한다. 문맥 모드에서는 한 문서의 조각들을 함께 입력해, 각 조각의 벡터가 주변 내용을 참고하도록 한다. 검색 결과는 여전히 조각 단위로 다룰 수 있다. 논문은 답이 여러 조각에 걸쳐 있거나 답을 검증할 근거가 다른 곳에 있는 상황을 문제로 짚는다.
0.6B 모델 카드에 따르면 텍스트뿐 아니라 이미지와 시각 문서도 처리한다. 이미지를 가로 띠로 나눠 각 띠의 벡터를 만들 수 있다. 이미지 검색 품질이 모든 문서 형식에서 좋아진다는 뜻은 아니다. 표, 스캔 품질, 페이지 구성에 따라 자체 평가가 필요하다.
두 모델은 임베딩 공간도 공유한다. 모델 카드에 따르면 0.6B 벡터는 9B 모델의 1024차원 접두 벡터와 호환된다. 작은 모델로 문서를 색인하고 큰 모델로 질의를 인코딩하는 구성을 시험할 수 있다. 다만 이 조합이 같은 모델을 양쪽에 쓰는 방식보다 빠르거나 정확하다는 보장은 없다.
적용 전에 확인할 점
모델 카드는 문맥 모드에서 서로 겹치지 않는 청크를 쓰도록 안내한다. 또 문서에는 encode, 질의에는 encode_queries를 사용해야 한다. 질의에 문서용 함수를 쓰면 검색 품질이 떨어질 수 있다고 명시한다. 출력은 정규화되지 않은 int8 벡터이므로 코사인 유사도를 쓰거나 정규화 후 내적을 사용한다.
Transformers 5.4.0 이상이 필요하며 모델 로드 예제는 trust_remote_code=True를 사용한다. 외부 코드를 실행하는 설정인 만큼 배포 전에 모델 저장소의 코드를 검토해야 한다. 카드에는 입력 길이를 넘는 텍스트가 자동으로 잘리지 않는다고도 적혀 있다. 색인 시 문서 길이와 분할 방식을 관리해야 한다. 확인한 모델 카드에는 라이선스가 명시돼 있지 않아 상업적 이용 조건은 별도 확인이 필요하다.
성능은 직접 비교해야 한다
논문은 자체 평가에서 검색 성능이 높다고 보고하지만, 이는 모델을 만든 연구진의 결과다. 독립적인 운영 환경 검증이나 실제 서비스의 비용·지연 개선을 뜻하지 않는다.
도입을 검토한다면 실제 문서와 질문을 작은 평가 세트로 만들고, 기존 독립 청크 검색과 문맥 임베딩을 비교해 보자. 답이 있는 조각뿐 아니라 답을 확인할 근거도 검색되는지 살펴보고, 색인 시간과 메모리, 질의 지연을 함께 측정하는 편이 좋다. 문맥을 더 넓게 반영하는 설계가 각 서비스의 검색 품질에 얼마나 도움이 되는지는 그 결과로 판단할 수 있다.



Discussion
No comments yet