Tarea
📝 **Pregunta:** **Escriba la función** \`retrieval_cost(strategy, total_docs)\` que devuelve \`(cost_usd, latency_ms)\` para dos estrategias, dados estos costos unitarios:
- **BM25/escaneo vectorial** — \`$0,00001\` por documento puntuado, \`1ms\` por documento
- **Reclasificar (codificador cruzado)** — \`$0.001\` por par (consulta, documento), \`50ms\` por par
Dos estrategias:
- \`"rerank-only"\` — reclasificar CADA documento en el corpus
- \`"dos etapas"\` — BM25 escanea todos los documentos y luego vuelve a clasificar a los mejores **50** candidatos
Redondea el coste a 4 decimales. Luego imprima el libro mayor en 100, 10k y 1M de documentos:
\`\`\`
100 documentos | solo cambio de rango $ 0,1000 5000 ms | dos etapas $ 0,0510 2600 ms
10000 documentos | solo rerank $ 10.0000 500000ms | dos etapas $ 0,1500 12500 ms
1000000 documentos | solo cambio de rango $1000.0000 50000000ms | dos etapas $10.0500 1002500ms
\`\`\`
Con 1 millón de documentos, cambiar la clasificación solo costaría **$1000** y tomaría **14 horas** por consulta. Las dos etapas te llevan a ~$10 y 17 minutos, y el aumento de calidad es comparable porque el BM25 ya filtró previamente la basura obvia. Esa brecha es la razón por la cual todos los motores de búsqueda de producción utilizan el embudo.
📋 Elige la respuesta correcta.
💡 **Pista:** Vuelve a leer la teoría anterior si no estás seguro.