Zadatak
📝 **Pitanje:** **Napišite funkciju** \`retrieval_cost(strategy, total_docs)\` koja vraća \`(cost_usd, latency_ms)\` za dvije strategije, s obzirom na ove jedinične troškove:
- **BM25/vektorsko skeniranje** — \`$0,00001\` po osvojenom dokumentu, \`1ms\` po dokumentu
- **Rerank (cross-enkoder)** — \`$0,001\` po paru (upit, dokument), \`50ms\` po paru
Dvije strategije:
- \`"rerank-only"\` — promijeni rang SVAKI dokument u korpusu
- \`"dva stupnja"\` — BM25 skenira sve dokumente, zatim ponovno rangira **50** najboljih kandidata
Zaokruži trošak na 4 decimale. Zatim ispišite knjigu na 100, 10k i 1M dokumenata:
\`\`\`
100 dokumenata | samo prerangiranje $ 0,1000 5000ms | dvostupanjski $ 0,0510 2600ms
10000 dokumenata | samo prerangiranje $ 10,0000 500000ms | dvostupanjski 0,1500 $ 12500ms
1000000 dokumenata | samo prerangiranje $1000,0000 50000000ms | dvostupanjski 10,0500 USD 1002500ms
\`\`\`
Kod 1 milijuna dokumenata samo ponovno rangiranje koštalo bi **$1000** i trajalo bi **14 sati** po upitu. Dvostupanjski vam donosi ~10 USD i 17 minuta — a povećanje kvalitete je usporedivo jer je BM25 već unaprijed filtrirao očito smeće. Taj jaz je razlog zašto svaka proizvodna tražilica koristi lijevak.
📋 Odaberite pravi odgovor.
💡 **Savjet:** Ponovno pročitajte gornju teoriju ako niste sigurni.