Úloha
📝 **Otázka:** **Napíšte funkciu** \`retrieval_cost(stratégia, total_docs)\`, ktorá vráti \`(cost_usd, latency_ms)\` pre dve stratégie vzhľadom na tieto jednotkové náklady:
- **BM25/vektorový sken** — \`0,00001 $\` za skórovaný dokument, \`1 ms\` na dokument
- **Prehodnotenie (krížový kódovač)** — \`0,001 $\` za pár (dopyt, dokument), \`50 ms\` za pár
Dve stratégie:
- \`"prehodnotiť-iba"\` — prehodnotiť KAŽDÝ dokument v korpuse
- \`"dvojstupňové"\` – BM25 naskenuje všetky dokumenty a potom zmení poradie najlepších **50** kandidátov
Cena zaokrúhlená na 4 desatinné miesta. Potom vytlačte účtovnú knihu pri 100, 10 000 a 1 miliónoch dokumentov:
\`\`\`
100 dokumentov | len prehodnotenie $ 0,1000 5000 ms | dvojstupňový 0,0510 $ 2600 ms
10 000 dokumentov | len prehodnotenie $ 10 0000 500 000 ms | dvojstupňový 0,1500 $ 12500 ms
1000000 dokumentov | len prehodnotenie 1 000 000 $ 5 000 000 ms | dvojstupňový 10,0500 $ 1002500 ms
\`\`\`
Pri 1 milióne dokumentov by len zmena poradia stála **1 000 USD** a jeden dopyt by trval **14 hodín**. V dvoch fázach sa dostanete na ~ 10 USD a 17 minút – a kvalita zdvihu je porovnateľná, pretože BM25 už predfiltroval zjavný odpad. Táto medzera je dôvod, prečo každý produkčný vyhľadávací nástroj používa lievik.
📋 Vyberte správnu odpoveď.
💡 **Tip:** Ak si nie ste istí, prečítajte si znova teóriu vyššie.