Задание
📝 **Вопрос:** **Напишите функцию** \`retrival_cost(strategy, total_docs)\`, которая возвращает \`(cost_usd, latency_ms)\` для двух стратегий, учитывая эти затраты на единицу продукции:
- **BM25/векторное сканирование** — \`0,00001$\` за оцененный документ, \`1мс\` за документ
- **Реранг (перекрестное кодирование)** — \`0,001$\` за пару (запрос, документ), \`50мс\` за пару
Две стратегии:
- \"rerank-only"\` — меняет рейтинг КАЖДОГО документа в корпусе.
- «двухэтапный» — BM25 сканирует все документы, затем повторно ранжирует **50** лучших кандидатов.
Округлите стоимость до 4 десятичных знаков. Затем распечатайте реестр в 100, 10 тыс. и 1 млн документов:
\`\`\`
100 документов | только для повторного ранжирования $ 0,1000 5000 мс | двухступенчатый $ 0,0510 2600 мс
10000 документов | только для повторного ранжирования $ 10.0000 500000мс | двухступенчатый $ 0,1500 12500мс
1000000 документов | только для повторного ранжирования $1000.0000 50000000ms | двухступенчатый $10.0500 1002500мс
\`\`\`
В компании 1M Docs только изменение рейтинга обойдется в **1000 долларов** и займет **14 часов** на каждый запрос. Двухэтапный вариант дает вам ~10 долларов и 17 минут — и качество прироста сопоставимо, потому что BM25 уже предварительно отфильтровал очевидный мусор. Именно из-за этого пробела каждая поисковая система использует воронку.
📋Выберите правильный ответ.
💡 **Подсказка:** Если вы не уверены, перечитайте приведенную выше теорию.