중요
$rerank 집계 단계는 비공개 미리 보기로 제공됩니다. 기능 및 해당 설명서는 미리 보기 기간에 언제든지 변경될 수 있습니다. 따라서 프로덕션 환경에서는 이 기능 사용하지 않는 것이 좋습니다.자세한 학습 은 미리보기 기능을 참조하세요.
$rerank단계는 Voyage AI의 순위 재지정
$rerank모델을 사용하여 입력 문서를 다시 정렬하고 쿼리 와의 관련성에 따라 정렬된 동일한 문서를$rerank반환합니다. 단계는 집계 파이프라인 의 어느 곳에나$rerank나타날 수$vectorSearch$search$rankFusion있습니다.,, 또는 단계$scoreFusion이후에 를 사용하는 것이 좋습니다.
구문
$rerank 파이프라인 단계의 구문은 다음과 같습니다.
{ "$rerank": { "query": { "text": "<query-text>" }, "path": "<text-field-name>", "numDocsToRerank": <number-of-documents-to-rerank>, "model": "<reranker-model>" } }
필드
$rerank 단계에서는 다음 필드가 있는 문서를 사용합니다.
필드 | 유형 | 필요성 | 설명 |
|---|---|---|---|
| 객체 | 필수 사항 | 순위 재지정에 사용할 쿼리입니다. |
query.text | 문자열 | 필수 사항 | 순위 재지정에 사용할 쿼리 텍스트입니다. 예시 를 들어 다음을 지정할 수 있습니다.
|
| 문자열 또는 문자열 배열 | 필수 사항 | |
| Int | 필수 사항 | 순위를 재지정하고 결과에 반환하기 위해Voyage AI 로 보낼 최대 문서 수입니다. 문서는 파이프라인에 정의된 문서 순서에 따라 선택됩니다. 최대값은 |
| 객체 | 필수 사항 | 문서의 순위를 재지정하는 데 사용하는 Voyage AI 모델입니다. 값은 다음 중 하나일 수 있습니다.
|
예시
다음 예시 단계를 사용하여 $rerank Voyage AI reranker 모델을 기반으로 컬렉션 의 문서 순서를 변경하는 방법을 sample_mflix.embedded_movies 보여 줍니다. 이 쿼리 단계 이후에 를 $rerank $match 사용하여 rerank-2.5 reranker 모델을 사용하여 문서를 재정렬합니다. 다음 집계 파이프라인 에서:
$match단계는 문자열 유형의plot필드 있는 문서만 포함하도록 문서를 필터링합니다.$sort단계는 결정론적 순서를 보장하기 위해released필드 의 내림차순으로 문서를 정렬합니다.$rerank이 단계에서는rerank-2.5reranker 모델을 사용하여 쿼리 와 일치하도록 문서를 재정렬합니다.$addFields단계는 문서에rerankScore이라는 필드 추가합니다.
1 db.embedded_movies.aggregate([ 2 { 3 "$match": { 4 "plot": { "$exists": true, "$type": "string" } 5 } 6 }, 7 { 8 "$sort": { "released": -1 } 9 }, 10 { 11 "$rerank": { 12 "model": "rerank-2.5", 13 "query": { 14 "text": "a group of heroes band together to stop a powerful enemy and save the world" 15 }, 16 "numDocsToRerank": 100, 17 "path": ["title", "plot"] 18 } 19 }, 20 { 21 "$addFields": { 22 "rerankScore": { "$meta": "score" } 23 } 24 }, 25 { "$limit": 10 }, 26 { 27 "$project": { 28 "_id": 0, 29 "title": 1, 30 "plot": 1, 31 "rerankScore": 1 32 } 33 } 34 ])
[ { plot: 'No treason, no surrender.', title: 'Ti mene nosis', rerankScore: 0.5986876487731934 }, { plot: 'The life of the greatest karate master of a generation.', title: 'The Real Miyagi', rerankScore: 0.5986876487731934 }, { plot: 'A shy genius is employed by his former university to design robot software.', title: 'Eva', rerankScore: 0.5986876487731934 }, { plot: 'The owners of a failing security company start robbing houses to boost business.', title: 'Armed Response', rerankScore: 0.5986876487731934 }, { plot: 'A live telecast of the beloved J. M. Barrie story.', title: 'Peter Pan Live!', rerankScore: 0.5986876487731934 }, { plot: "A French police magistrate spends years trying to take down one of the country's most powerful drug rings.", title: 'The Connection', rerankScore: 0.5986876487731934 }, { plot: 'A documentary that follows undercover activists trying to stave off a man-made mass extinction.', title: 'Racing Extinction', rerankScore: 0.5986876487731934 }, { plot: 'An ex-hitman comes out of retirement to track down the gangsters that took everything from him.', title: 'John Wick', rerankScore: 0.5986876487731934 }, { plot: 'A former hit-man for a drug cartel becomes a vigilante to pay for his sins and find redemption.', title: 'Redeemer', rerankScore: 0.5986876487731934 }, { plot: 'Charles Ingvar Jènsson gathers three criminals to take vengeance upon the people who killed his uncle.', title: 'The Master Plan', rerankScore: 0.5986876487731934 } ]
고려 사항
$rerank를 사용하기 전에 $rerank 사용에 대한 호환성, 제한 사항, 동작 및 권한을 고려하세요.
호환성
단계는 $rerank MongoDB 이상을 실행 MongoDB Atlas 에서만 사용할 수 8.3 있습니다.
를 사용하기 전에 를 통해 Native Reranking을 활성화 해야 $rerank Project Settings 합니다. 자세히 학습 프로젝트의 네이티브 재순위 재지정 활성화 또는 비활성화를 참조하세요.
제한 사항
$rerank 단계는 사용할 수 없습니다.
$rankFusion$scoreFusion또는 입력 파이프라인에서.
행동
$rerank 은 파이프라인 의 어느 곳에나 나타날 수 있습니다. 그러나 $rerank $search 또는 와 같이 $vectorSearch 이미 관련 문서를 정렬된 순서로 반환하는 단계 이후에는 를 사용하는 것이 좋습니다.
$rerank 단계로 전달된 첫 numDocsToRerank 개 문서의 순위를 재지정하고 반환합니다. $rerank 이 첫 번째 단계이거나 이전 단계가 결정론적으로 정렬된 결과를 반환하지 않는 경우 $rerank 에 사용된 문서가 쿼리 간에 변경될 수 있습니다.
$rerank 에 지정된 필드 중 path 하나라도 하나 이상의 입력 문서에 없는 경우 오류를 반환합니다. 이를 완화하려면 $set 단계를 사용하여 누락된 필드를 빈 문자열로 설정하다 .
쿼리
query.text 필드 reranker 모델이 각 문서 점수를 매기는 방법을 결정합니다. 재지정기는 지정된 path에 있는 각 문서 의 콘텐츠와 쿼리 텍스트 간의 관련성 점수를 계산합니다. 대부분의 사용 사례에서 $rerank.query.text 는 이전 $search 또는 $vectorSearch 단계의 쿼리 와 동일하거나 유사해야 합니다.
지표
$rerank 사용량을 모니터링 데 사용할 수 있는 지표 다음과 같습니다.
$rerank 쿼리 상태 비율
$rerank 쿼리 성공 지표는 성공적으로 완료된 $rerank 쿼리의 비율을 추적합니다. 이 지표는 Atlas UI 의 클러스터 에 대한 Metrics 탭 에서 볼 수 있습니다. 이 지표를 사용하여 $rerank 쿼리의 실패(예: 속도 제한 오류 또는 Voyage AI 의 연결 문제)를 식별합니다.
$rerank 토큰 사용률
$rerank 토큰 사용량 지표는 $rerank 쿼리가 소비하는 총 토큰 수를 추적합니다. 이 지표는 Atlas UI 의 클러스터 에 대한 Metrics 탭 에서 볼 수 있습니다. 이 지표를 사용하여 토큰 소비를 모니터 하고 사용량을 청구와 연관시킵니다.
득점
score 변수를 $meta 표현식 $rerank 과 함께 사용하여 단계의 결과에서 각 문서 의 점수를 조회 .
{ "$addFields": { "rerankScore": { "$meta": "score" } } }
$rerank 단계에서는 $meta: "score" 값을 새 점수로 대체합니다. $$rankFusion와 같은 이전 단계의 값을 보존하려면 점수를 $rerank 단계 이전의 명명된 필드에 프로젝트 할 수 있습니다.
{ "$addFields": { "originalRankFusionScore": { "$meta": "score" } } }, { "$rerank": { ... } }, { "$addFields": { "rerankScore": { "$meta": "score" } } }
청구
MongoDB 사용한 만큼만 지불하는 가격 모델을 사용하며, 처리된 총 토큰 수를 기준으로 사용량에 대한 요금을 청구합니다. 다음 공식은 총계를 계산합니다.
total number of processed tokens = (# of query tokens * numDocsToRerank) + sum(# of tokens across all documents )
모델 | Price per 1K tokens | Price per 1M tokens | 무료 토큰 |
|---|---|---|---|
| $0.00005 | $0.05 | 200,000,000 |
| $0.00002 | $0.02 | 200,000,000 |
| $0.00005 | $0.05 | |
| $0.00002 | $0.02 |
$rerank 단계는 Atlas 프로젝트 의 다른 Voyage AI 작업과 별도로 청구됩니다. Atlas UI 의 청구 및 결제 인터페이스를 통해 결제 및 청구를 관리 할 수 있습니다. Atlas UI 에서는 다음을 수행할 수 있습니다.
페이지에서 토큰 사용량을 Usage 추적하세요. 자세한 학습 은 토큰 사용량 모니터링을 참조하세요.
Cost Explorer를통해 자세한 비용 분석을 확인합니다.
페이지에서 현재 월별 비용을 Invoices 확인합니다. 자세히 학습 청구서 관리를 참조하세요.
사용 계층 및 요금 한도
Atlas TPM(분당 토큰) 또는 RPM(분당 요청)으로 측정되는 특정 시간 내에 수행할 수 있는 요청 수에 대해 속도 제한을 적용합니다. 요금 한도는 계층화된 시스템을 따르며, 계층이 높을수록 한도가 증가합니다.
계층 | 설명 |
|---|---|
프리 티어 | 결제 정보가 필요하지 않습니다. |
계층 1 | 결제 정보가 필요합니다. 요금 한도는 프리 티어의 두 배입니다. |
모델 | 분당 요청(RPM) | 분당 토큰(TPM) |
|---|---|---|
| 2,000 | 2,000,000 |
| 2,000 | 4,000,000 |
| 2,000 | 2,000,000 |
| 2,000 | 4,000,000 |
모델 | 분당 요청(RPM) | 분당 토큰(TPM) |
|---|---|---|
| 4,000 | 4,000,000 |
| 4,000 | 8,000,000 |
| 4,000 | 4,000,000 |
| 4,000 | 8,000,000 |
Token Usage
Atlas UI 의 페이지에서 토큰 사용량을 모니터링합니다. 사용량은 클러스터 당 분당 요청(RPM) 및 분당 토큰(TPM)으로 Usage 제한됩니다. 자세한 학습 은 사용 계층 및 요금 한도를 참조하세요.
Usage 페이지에서는 토큰 사용량을 모니터 하고 분석 여러 가지 보기를 제공합니다. Free Usage 탭 클릭하면 조직 의 모델별로 남은 무료 토큰을 볼 수 있습니다.
Usage Activity 탭 에서 Total Usage 차트 시간 경과에 따라 프로젝트 에서 사용된 총 토큰을 표시합니다. 다음 옵션을 사용하여 사용 데이터를 필터하다 할 수 있습니다.
옵션 | 설명 |
|---|---|
Usage Period | 특정 시간 범위 의 사용량 데이터를 확인합니다. |
Models | 특정 Voyage AI 모델로 필터링합니다. |
보다 세분화된 수준에서 토큰 사용량을 모니터 방법을 학습 토큰 사용량 모니터링을 참조하세요.
리소스 정책
조직 수준에서 리소스 정책을 구성하여 $rerank 을 완전히 또는 예외적으로 차단 수 있습니다. 이렇게 하려면 조치 대상으로 하는 forbid 시더로 작성된 규칙을 $rerank 추가합니다. 이 정책을 구성하면 새 프로젝트에서 를 활성화 할 $rerank 수 없습니다. 그러나 이미 활성화된 프로젝트는 비활성화하지 않습니다. 이미 활성화된 프로젝트에 $rerank 대해서는 를 개별적으로 비활성화해야 합니다.$rerank 프로젝트 에 대해 를 비활성화하려면 프로젝트에 대한 네이티브 재지정 활성화 또는 비활성화를 참조하세요.
forbid 규칙의 unless 절을 사용하여 예외가 있는 $rerank 를 비활성화할 수 있습니다.
forbid (principal, action == ResourcePolicy::Action::"$rerank", resource) unless { <exception> };
리소스 정책 설정에 대해 자세히 학습 Atlas 리소스 정책을 참조하세요.
절차
Atlas UI 에서 다음 작업을 수행할 수 있습니다.
$rerank 단계를 사용하려면 먼저 프로젝트 에 대한 순위 재지정을 활성화 해야 합니다. 순위 재지정을 활성화 하려면 다음을 수행해야 합니다.
순위 재지정을 활성화하거나 비활성화합니다.
순위 재지정을 활성화 하려면 다음을 수행합니다.
Project Settings 탭 에서 Native Reranking: $rerank in the Aggregation Pipeline 토글을 On로 설정하다 .
Confirm Rerank Model Usage 창 에서
$rerank단계 사용과 관련된 비용을 이해했음을 확인하는 확인란을 선택하고 Confirm를 클릭합니다.
순위 재지정을 비활성화하려면 다음을 수행합니다.
Project Settings 탭 에서 Native Reranking: $rerank in the Aggregation Pipeline 토글을 Off로 설정하다 .
Disable Native Reranking 확인 창 에서
Disable을 입력하고 Disable를 클릭합니다.순위 재지정을 비활성화하면
$rerank단계를 사용하는 실행 이 실패할 수 있습니다.
Atlas UI 의 Usage 페이지에서 토큰 사용량을 모니터링합니다. 사용량을 보려면 다음을 수행합니다.
Usage Native Reranking 탐색 표시줄의 아래에 있는 을 클릭합니다.
Usage 페이지에서는 토큰 사용량을 모니터 하고 분석 여러 가지 보기를 제공합니다. 자세히 학습 토큰 사용을 참조하세요.