Feladat
📝 **Kérdés:** **Írja be a** \`retrieval_cost(strategy, total_docs)\` függvényt, amely a \`(cost_usd, latency_ms)\` értéket adja vissza két stratégia esetén, az alábbi egységköltségek mellett:
- **BM25/vektoros szkennelés** – \`0,00001 $\` pontozott dokumentumonként, \`1 ms\` dokumentumonként
- **Újrarangsorolás (cross-encoder)** — \`0,001 $\` páronként (lekérdezés, doc), \`50 ms\` páronként
Két stratégia:
- \`"rerank-only"\` — MINDEN dokumentum átsorolása a korpuszban
- \`"kétlépcsős"\` - A BM25 beszkenneli az összes dokumentumot, majd átsorolja a legjobb **50** jelöltet
Költség kerekítése 4 tizedesjegyre. Ezután nyomtassa ki a főkönyvet 100, 10 000 és 1 millió dokumentumban:
\`\`\`
100 dokumentum | csak átsorolás 0,1000 USD 5000 ms | kétlépcsős $ 0,0510 2600 ms
10000 dokumentum | csak átsorolás 10 0000 USD 500 000 ms | kétlépcsős 0,1500 $ 12500 ms
1000000 dokumentum | csak átsorolás $1000.0000 50000000ms | kétlépcsős 10.0500 $ 1002500ms
\`\`\`
1 millió dokumentum esetén a csak újrarangsorolás **1000 USD-ba** kerülne, és lekérdezésenként **14 órát** vesz igénybe. A kétfokozatú eljárással ~10 dollár és 17 perc jár – a minőségi növekedés pedig hasonló, mert a BM25 már előre kiszűrte a nyilvánvaló szemetet. Ez a hiányosság az oka annak, hogy minden éles keresőmotor használja a tölcsért.
📋 Válassza ki a megfelelő választ.
💡 **Tipp:** Ha nem biztos benne, olvassa el újra a fenti elméletet.