리랭킹
리랭킹 (Reranking)
리랭킹은 문서 집합을 쿼리와의 관련성을 기준으로 다시 정렬해 검색 정확도를 높이는 기법이에요. 임베딩 기반 유사도 검색과 달리, 리랭킹 모델은 쿼리와 문서 사이의 관계를 이해하도록 특별히 학습돼서 더 정확한 관련성 점수를 내는 경우가 많죠. RAG(검색 증강 생성) 파이프라인에서 1차 검색 결과를 한 번 더 골라내는 후처리 단계로 주로 쓰입니다. AI SDK는 이를 위한 rerank 함수를 제공해요.
출처: 공식문서
본문
문서 리랭킹
rerank 함수로 문서를 쿼리 관련성에 따라 다시 정렬합니다. 리랭킹 모델(예: cohere.reranking('rerank-v3.5'), bedrock.reranking('cohere.rerank-v3-5:0'))과 함께 씁니다.
import { rerank } from 'ai';
import { cohere } from '@ai-sdk/cohere';
const documents = [
'sunny day at the beach',
'rainy afternoon in the city',
'snowy night in the mountains',
];
const { ranking } = await rerank({
model: cohere.reranking('rerank-v3.5'),
documents,
query: 'talk about rain',
topN: 2, // Return top 2 most relevant documents
});
console.log(ranking);
// [
// { originalIndex: 1, score: 0.9, document: 'rainy afternoon in the city' },
// { originalIndex: 0, score: 0.3, document: 'sunny day at the beach' }
// ]
객체 문서 다루기
리랭킹은 JSON 객체 같은 구조화 문서도 지원해서, 데이터베이스·이메일 등 구조화 콘텐츠 검색에 적합합니다. rerankedDocuments는 관련성 순으로 정렬된 문서 배열(편의 속성)이고, originalDocuments는 원본 배열입니다.
const { ranking, rerankedDocuments } = await rerank({
model: cohere.reranking('rerank-v3.5'),
documents, // 배열 of { from, subject, text }
query: 'Which pricing did we get from Oracle?',
topN: 1,
});
console.log(rerankedDocuments[0]); // 관련성이 가장 높은 문서 객체
결과 이해하기
ranking 배열의 각 항목은 다음을 포함합니다.
originalIndex: 원본 문서 배열에서의 위치score: 관련성 점수 (보통 0~1, 높을수록 관련성 높음)document: 원본 문서
설정
topN: 반환할 상위 결과 수를 제한해 가장 관련성 높은 문서만 가져옵니다.- Provider Options:
providerOptions로 공급자별 파라미터를 설정해요. 예: Cohere의maxTokensPerDoc: 1000. - 재시도:
maxRetries(기본 2, 즉 총 3회 시도).0으로 비활성화 가능. - 중단·타임아웃:
abortSignal로 중단하거나 타임아웃 설정. 예:AbortSignal.timeout(5000). - 커스텀 헤더:
headers: Record<string, string>로 요청에 헤더 추가. - 응답 정보:
response로 공급자의 원시 응답({ id, timestamp, modelId, headers, body })에 접근.
리랭킹 공급자 & 모델
Cohere(rerank-v3.5, rerank-english-v3.0, rerank-multilingual-v3.0), Amazon Bedrock(amazon.rerank-v1:0, cohere.rerank-v3-5:0), Together.ai(Salesforce/Llama-Rank-v1, mixedbread-ai/Mxbai-Rerank-Large-V2)가 리랭킹 모델을 제공합니다.
더 알아보기
- 임베딩 (Embeddings) — 1차 검색 단계에서 쓰는 임베딩·유사도 계산
- Generating Structured Data — 검색 결과를 구조화 응답으로 조합
- Provider & Model Management — 리랭킹 모델을 포함한 모델 중앙 관리