Модуль 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 и реранкера.
Показать ответ и решение
Решение. Сырая память равна . Для , и 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.
Скалярное произведение считается примерно за FLOP. Полное сканирование: GFLOP, то есть 2.048 с при 10 GFLOP/s. Для 2000 кандидатов: 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 токенов; дальше нужно
фрагмента. Бинарный вектор размерности 1024 использует B, поэтому полезная нагрузка равна B = 7.266 MiB.
Сумма стадий: мс. Доля decode равна , а стадии поиска до prefill — . Доли принадлежат только заданному сценарию.
У3. RAG против длинного контекста
Сравните полный документ на 200 тысяч токенов с RAG-контекстом на 3712 токенов. Условная линейная оценка prefill полного документа — 6.4889 с, KV стоит 128 KiB/токен. Найдите отношения по входу, prefill и KV.
Показать ответ и решение
Решение. Длина уменьшается в раза. При линейном масштабировании prefill: с. KV полного документа равен KiB = 24.4141 GiB, а RAG — 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». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.