Tâche
📝 **Question :** **Écrivez la fonction** \`retrieval_cost(strategy, total_docs)\` qui renvoie \`(cost_usd, latency_ms)\` pour deux stratégies, étant donné ces coûts unitaires :
- **BM25/analyse vectorielle** — \`$0,00001\` par document noté, \`1 ms\` par document
- **Rerank (cross-encoder)** — \`$0,001\` par paire (requête, doc), \`50 ms\` par paire
Deux stratégies :
- \`"reclassement uniquement"\` — reclasse TOUS les documents du corpus
- \`"en deux étapes"\` — BM25 analyse tous les documents, puis reclasse les **50** meilleurs candidats
Arrondissez le coût à 4 décimales. Imprimez ensuite le grand livre à 100, 10 000 et 1 million de documents :
\`\`\`
100 documents | reclassement uniquement 0,1 000 $ 5 000 ms | en deux étapes $ 0,0510 2600 ms
10 000 documents | reclassement uniquement 10,0000 $ 500000ms | en deux étapes 0,1500 $ 12 500 ms
1000000 documents | reclassement uniquement 1 000,0000 $ 5 000 000 ms | en deux étapes 10,0500 $ 1002500ms
\`\`\`
Pour 1 million de documents, le reclassement uniquement coûterait **1 000 $** et prendrait **14 heures** par requête. Deux étapes vous amènent à environ 10 $ et 17 minutes – et la qualité de l'ascenseur est comparable car le BM25 a déjà pré-filtré les déchets évidents. Cette lacune est la raison pour laquelle chaque moteur de recherche de production utilise l'entonnoir.
📋 Choisissez la bonne réponse.
💡 **Indice :** Relisez la théorie ci-dessus en cas de doute.