Sarcină
📝 **Întrebare:** **Scrieți funcția** \`retrieval_cost(strategy, total_docs)\` care returnează \`(cost_usd, latency_ms)\` pentru două strategii, având în vedere aceste costuri unitare:
- **BM25/scanare vectorială** — \`0,00001 USD\` per document scor, \`1 ms\` per document
- **Reclasificare (coder încrucișat)** — \`0,001 USD\` per pereche (interogare, document), \`50ms\` per pereche
Două strategii:
- \`"rerank-only"\` — reclasifică FIECARE document din corpus
- \`"în două etape"\` — BM25 scanează toate documentele, apoi reclasifică primii **50** candidați
Rotunjiți costul la 4 zecimale. Apoi imprimați registrul la 100, 10k și 1M documente:
\`\`\`
100 de documente | doar reclasificare 0,1000 $ 5000 ms | în două etape 0,0510 USD 2600ms
10000 de documente | doar reclasificare 10,0000 $ 500000 ms | în două etape 0,1500 USD 12500ms
1000000 de documente | doar reclasificare $1000,0000 50000000ms | în două etape 10,0500 USD 1002500ms
\`\`\`
La 1 milion de documente, doar reclasarea ar costa **1000 USD** și ar dura **14 ore** per interogare. În două etape, ajungeți la aproximativ 10 USD și 17 minute - iar creșterea calității este comparabilă, deoarece BM25 a prefiltrat deja nedoriturile evidente. Acest decalaj este motivul pentru care fiecare motor de căutare de producție folosește pâlnia.
📋 Alegeți răspunsul potrivit.
💡 **Sugestie:** Recitiți teoria de mai sus dacă nu sunteți sigur.