VKВлад КуликовОткрытые лекции
Современные LLM17 / 20

Модуль 17. Эмбеддинги, поиск и RAG

Сначала попробуйте решить упражнение. Ответы, подробные решения и проектные ориентиры раскрываются отдельно и сохраняют своё состояние при переключении RU/EN.

Скачать файлы курса (.zip) 2588,1 КБ

Архив содержит файлы на обоих языках и вспомогательные материалы с сохранением структуры каталогов.

У1. Хранение, ANN и метрики

Для 10 млн векторов размерности 1024 вычислите полезную нагрузку fp32, fp16, int8, binary и MRL-256 int8 в GB и GiB. Сравните точное сканирование со сценарием 2000 расстояний при 10 GFLOP/s. Затем проверьте метрики замороженного RU-корпуса для BM25, LSA, RRF и реранкера.

Показать ответ и решение

Решение. Сырая память равна N⋅d⋅bN\cdot d\cdot b. Для N=107N=10^7, d=1024d=1024 и 4/2/1/0.125 байта на компонент получаем fp32 40.96 GB = 38.147 GiB, fp16 20.48 GB = 19.073 GiB, int8 10.24 GB = 9.537 GiB и binary 1.28 GB = 1.192 GiB. MRL-256 int8 хранит только 256 компонент: 2.56 GB = 2.384 GiB.

Скалярное произведение считается примерно за 2d2d FLOP. Полное сканирование: 107⋅2⋅1024=20.4810^7\cdot2\cdot1024=20.48 GFLOP, то есть 2.048 с при 10 GFLOP/s. Для 2000 кандидатов: 2000⋅2⋅1024=4.0962000\cdot2\cdot1024=4.096 MFLOP, что при той же скорости требует 0.4096 мс. Отношение числа операций равно 5000; это не гарантированное ускорение запроса, потому что построение ANN, память и служебные затраты не учтены.

Замороженный скрипт выдаёт (MRR, Recall@5, nDCG@5): BM25 (0.9286, 0.7857, 0.8720), LSA (0.7619, 0.8571, 0.7553), RRF (0.9286, 0.7857, 0.8660), реранкер (1.0000, 0.8571, 0.9278). Эти цифры воспроизводят конкретный малый корпус, а не ранжируют методы вообще.

У2. Разбиение и бюджет каскада

Документ содержит 20 млн токенов; размер фрагмента 400, перекрытие 64, размерность эмбеддинга 1024. Найдите число фрагментов и объём бинарных векторов. Затем сложите 0.0776 мс кодирования запроса, 0.4096 мс ANN-сценария, 104.7273 мс реранкинга, 120.4338 мс prefill и 1432.6648 мс decode.

Показать ответ и решение

Решение. Шаг равен 400−64=336400-64=336. Первое окно покрывает 400 токенов; дальше нужно

1+⌈20 000 000−400336⌉=59 5241+\left\lceil\frac{20\,000\,000-400}{336}\right\rceil=59\,524

фрагмента. Бинарный вектор размерности 1024 использует 1024/8=1281024/8=128 B, поэтому полезная нагрузка равна 59 524⋅128=7 619 07259\,524\cdot128=7\,619\,072 B = 7.266 MiB.

Сумма стадий: 0.0776+0.4096+104.7273+120.4338+1432.6648=1658.3130.0776+0.4096+104.7273+120.4338+1432.6648=\mathbf{1658.313} мс. Доля decode равна 1432.6648/1658.313=86.39%1432.6648/1658.313=86.39\%, а стадии поиска до prefill — (0.0776+0.4096+104.7273)/1658.313=6.34%(0.0776+0.4096+104.7273)/1658.313=6.34\%. Доли принадлежат только заданному сценарию.

У3. RAG против длинного контекста

Сравните полный документ на 200 тысяч токенов с RAG-контекстом на 3712 токенов. Условная линейная оценка prefill полного документа — 6.4889 с, KV стоит 128 KiB/токен. Найдите отношения по входу, prefill и KV.

Показать ответ и решение

Решение. Длина уменьшается в 200000/3712=53.8793200000/3712=\mathbf{53.8793} раза. При линейном масштабировании prefill: 6.4889/53.8793=0.1204346.4889/53.8793=0.120434 с. KV полного документа равен 200000⋅128200000\cdot128 KiB = 24.4141 GiB, а RAG — 3712⋅1283712\cdot128 KiB = 0.453125 GiB; отношение снова 53.8793. Совпадение коэффициентов возникает только потому, что предполагаются одна архитектура, постоянные байты на токен и линейная оценка prefill; качество поиска из этой арифметики не следует.

У4 [проект]

Постройте гибридный поиск над 50 тысячами аннотаций: BM25, открытый bi-encoder и RRF. Разметьте не менее 100 запросов, измерьте Recall@10 и nDCG@10, затем добавьте реранкер к top-{20, 50, 100} и постройте кривую качества против задержки.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный проектный ноутбук модуля 17, раздел «Демо 1». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.

У5 [проект]

Сравните обычное и позднее разбиение на вопросах с анафорами; затем сравните визуальный поиск по страницам PDF с маршрутом OCR + текстовый поиск. Для каждого опыта отдельно измерьте качество поиска, размер индекса и время индексации.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный проектный ноутбук модуля 17, раздел «Демо 2». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.