Importante
La etapa de agregación $rerank se encuentra en Vista previa privada. La función y la documentación correspondiente pueden cambiar en cualquier momento durante el período de vista previa. Por lo tanto, no recomendamos usar esta función en entornos de producción. Para obtener más información, consulte Funcionalidades de vista previa.
$rerankLa etapa reordena los
$rerankdocumentos de entrada utilizando los modelos de reclasificación de Voyage AI y devuelve los mismos documentos ordenados por relevancia para la consulta. La$reranketapa puede aparecer en cualquier parte de una canalización de agregación. Recomendamos que utilice$rerankdespués de una$vectorSearchEtapa,,$search$rankFusion$scoreFusiono.
Sintaxis
Una etapa de canalización $rerank tiene la siguiente sintaxis:
{ "$rerank": { "query": { "text": "<query-text>" }, "path": "<text-field-name>", "numDocsToRerank": <number-of-documents-to-rerank>, "model": "<reranker-model>" } }
Campos
La etapa $rerank procesa un documento con los siguientes campos:
Campo | Tipo | Necesidad | Descripción |
|---|---|---|---|
| Objeto | Requerido | Consulta que se utilizará para reordenar. |
query.text | String | Requerido | Texto de consulta que se utilizará para la reclasificación. Por ejemplo, puede especificar:
|
| Cadena o matriz de cadenas | Requerido | Ruta a los campos que se utilizarán para la reclasificación. Si NOTA: La |
| Int | Requerido | Número máximo de documentos que se enviarán a Voyage AI para su reclasificación y devolución en los resultados. Los documentos se seleccionan según el orden definido en el proceso. El valor máximo debe ser menor o igual que |
| Objeto | Requerido | Modelo de IA de Voyage que se utilizará para reordenar los documentos. El valor puede ser uno de los siguientes:
|
Ejemplo
El siguiente ejemplo demuestra cómo usar la $rerank etapa para reordenar documentos en la sample_mflix.embedded_movies colección basándose en un modelo de reordenamiento de Voyage AI. La consulta usa $rerank después de la etapa para reordenar documentos usando $match el rerank-2.5 modelo de reordenamiento. En la siguiente canalización de agregación, el:
$matchLa etapa filtra los documentos para incluir solo aquellos que tengan un campoplotde tipo cadena.$sortLa etapa ordena los documentos en orden descendente según el camporeleasedpara garantizar un orden determinista.$rerankLa etapa reordena los documentos para que coincidan con la consulta utilizando el modelo de reordenamientorerank-2.5.$addFieldsLa etapa agrega un campo llamadorerankScorea los documentos.
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 } ]
Considerations
Antes de usar $rerank, considere la compatibilidad, las limitaciones, el comportamiento y los permisos para usar $rerank.
Compatibilidad
La $rerank etapa solo está disponible en MongoDB Atlas que ejecuta MongoDB 8.3 o posterior.
Antes de usar $rerank, debe habilitar la reclasificación nativa a través de
Project SettingsPara obtener más información, consulte Habilitar o deshabilitar la reclasificación nativa para un proyecto.
Limitaciones
No puedes usar la etapa $rerank:
En las tuberías de entrada
$rankFusion$scoreFusiono.
Comportamiento
$rerank puede aparecer en cualquier parte del proceso. Sin embargo, recomendamos usar $rerank después de una etapa como $search o $vectorSearch que ya devuelva documentos relevantes ordenados.
$rerank Reordena y devuelve los primeros numDocsToRerank documentos que se pasan a la etapa. Si $rerank es la primera etapa, o las etapas anteriores no devuelven resultados ordenados de forma determinista, entonces los documentos utilizados para $rerank podrían cambiar entre consultas.
$rerank Devuelve un error si alguno de los campos especificados en path no está presente en uno o más documentos de entrada. Para mitigar esto, utilice la etapa para establecer $set los campos faltantes como una cadena vacía.
Query
El campo query.text determina cómo el modelo de reclasificación puntúa cada documento. El reclasificador calcula una puntuación de relevancia entre el texto de la consulta y el contenido de cada documento en el campo path especificado. En la mayoría de los casos, el campo $rerank.query.text debería ser igual o similar a la consulta de la etapa $search o $vectorSearch anterior.
Métricas
Las siguientes métricas están disponibles para monitorear el uso de $rerank:
$rerank Tasa de estado de la consulta
La métrica de tasa de éxito de consultas $rerank registra el porcentaje de consultas $rerank que se completan correctamente. Puede ver esta métrica en la pestaña Metrics de su clúster en la interfaz de usuario de Atlas. Utilice esta métrica para identificar fallos en las consultas $rerank, como errores de límite de velocidad o problemas de conectividad con Voyage AI.
$rerank Tasa de uso de tokens
La métrica de uso de tokens $rerank registra el número total de tokens que consumen las consultas $rerank. Puede consultar esta métrica en la pestaña Metrics de su clúster en la interfaz de usuario de Atlas. Utilice esta métrica para supervisar el consumo de tokens y correlacionar el uso con la facturación.
Puntuación
Utilice la score variable con la expresión para recuperar la puntuación de cada documento en los resultados de $meta la $rerank etapa.
{ "$addFields": { "rerankScore": { "$meta": "score" } } }
La etapa $rerank reemplaza el valor de $meta: "score" con una nueva puntuación. Para conservar el valor de una etapa anterior, como $$rankFusion, puede proyectar las puntuaciones en campos con nombre antes de la etapa $rerank.
{ "$addFields": { "originalRankFusionScore": { "$meta": "score" } } }, { "$rerank": { ... } }, { "$addFields": { "rerankScore": { "$meta": "score" } } }
Facturación
MongoDB utiliza un modelo de precios de pago por uso y cobra por el uso en función del número total de tokens procesados. La siguiente fórmula calcula el total:
total number of processed tokens = (# of query tokens * numDocsToRerank) + sum(# of tokens across all documents )
Modelo | Price per 1K tokens | Price per 1M tokens | Fichas gratis |
|---|---|---|---|
| $0.00005 | $0.05 | 200,000,000 |
| $0.00002 | $0.02 | 200,000,000 |
| $0.00005 | $0.05 | |
| $0.00002 | $0.02 |
La etapa $rerank se cobra por separado de otras operaciones de Voyage AI en tu proyecto Atlas. Puedes gestionar los pagos y la facturación a través de la interfaz de facturación y pagos en la interfaz de usuario de Atlas. En la interfaz de usuario de Atlas, puedes:
Realiza un seguimiento del uso de tus tokens en la Usage página. Para obtener más información, consulta Monitorear el uso de tokens.
Consulte el desglose detallado de costes a través del Explorador de costes.
Consulta tus gastos mensuales actuales en la Invoices página. Para obtener más información, consulta Gestionar facturas.
Niveles de uso y límites de tarifas
Atlas impone límites de velocidad a la cantidad de solicitudes que puedes realizar dentro de un período de tiempo específico, medidos en tokens por minuto (TPM) o solicitudes por minuto (RPM). Los límites de velocidad siguen un sistema escalonado, donde los niveles superiores ofrecen límites mayores.
Nivel | Descripción |
|---|---|
nivel gratuito | No se requiere información de pago. |
Nivel 1 | Se requiere información de pago. Los límites de uso son el doble que los del Nivel Gratuito. |
Modelo | Solicitudes por minuto (RPM) | Tokens por minuto (TPM) |
|---|---|---|
| 2,000 | 2,000,000 |
| 2,000 | 4,000,000 |
| 2,000 | 2,000,000 |
| 2,000 | 4,000,000 |
Modelo | Solicitudes por minuto (RPM) | Tokens por minuto (TPM) |
|---|---|---|
| 4,000 | 4,000,000 |
| 4,000 | 8,000,000 |
| 4,000 | 4,000,000 |
| 4,000 | 8,000,000 |
Token Usage
Supervise el uso de sus tokens en la Usage página de la interfaz de usuario de Atlas. El uso está limitado por las solicitudes por minuto (RPM) y los tokens por minuto (TPM) por clúster. Para obtener más información, consulte Niveles de uso y límites de velocidad.
La página Usage ofrece varias vistas para supervisar y analizar el uso de sus tokens. Haga clic en la pestaña Free Usage para ver los tokens gratuitos restantes por modelo, para su organización.
En la pestaña Usage Activity, el gráfico Total Usage muestra el total de tokens utilizados en tu proyecto a lo largo del tiempo. Puedes filtrar los datos de uso mediante las siguientes opciones:
Opción | Descripción |
|---|---|
Usage Period | Consulta los datos de uso para un intervalo de tiempo específico. |
Models | Filtra por modelos específicos de Voyage IA. |
Para obtener información sobre cómo supervisar el uso de tokens con mayor detalle, consulte la sección "Supervisar el uso de tokens".
Política de recursos
Puedes configurar una política de recursos a nivel de organización para bloquear $rerank por completo o con excepciones. Para ello, agrega una forbid regla, escrita en Cedar, que se dirija a la $rerank acción. Si configuras esta política, los nuevos proyectos no podrán $rerank habilitar. Sin embargo, no deshabilitará los proyectos $rerank que ya estén habilitados. Debes deshabilitar individualmente para los proyectos en los que ya esté habilitado. Para deshabilitar $rerank para un proyecto, consulta Habilitar o deshabilitar la reclasificación nativa para un proyecto.
Puedes deshabilitar $rerank con excepciones usando la cláusula unless en la regla forbid.
forbid (principal, action == ResourcePolicy::Action::"$rerank", resource) unless { <exception> };
Para obtener más información sobre cómo configurar la política de recursos, consulte Políticas de recursos de Atlas.
Procedimientos
Puedes realizar las siguientes tareas en la interfaz de usuario de Atlas:
Antes de poder usar la etapa $rerank, debe habilitar la reclasificación para su proyecto. Para habilitar la reclasificación, debe hacer lo siguiente:
Habilitar o deshabilitar la reclasificación.
Para habilitar la reclasificación, haga lo siguiente:
En la pestaña Project Settings, cambie el interruptor Native Reranking: $rerank in the Aggregation Pipeline a On.
En la ventana Confirm Rerank Model Usage, seleccione la casilla de verificación para confirmar que comprende los costos asociados con el uso de la etapa
$reranky haga clic en Confirm.
Para desactivar la reclasificación, haga lo siguiente:
En la pestaña Project Settings, cambie el interruptor Native Reranking: $rerank in the Aggregation Pipeline a Off.
En la ventana de confirmación Disable Native Reranking, escriba
Disabley haga clic en Disable.Deshabilitar la reclasificación podría provocar que fallen las consultas en ejecución que utilizan la etapa
$rerank.
Supervise el uso de sus tokens en la página Usage de la interfaz de usuario de Atlas. Para ver el uso:
Haz clic Usage en Native Reranking debajo de en la barra de navegación.
La Usage página ofrece varias vistas para supervisar y analizar el uso de su token. Para obtener más información, consulte Uso del token.