Перейти к содержимому
Ступень 1111.3 Собеседования

Вопросы по LLM: от токенизации до RL

Банк из 51 вопроса собеседования по LLM — токенизация, внимание, KV-кэш, MoE, масштабирование, распределённое обучение, SFT, LoRA, RLHF, DPO, GRPO, инференс, квантование, RAG, агенты и оценка — плюс пять задач на оценку памяти и вычислений с подробным разбором.

УРОКstage-11/11-3-interviews/03-llm-questions.mdx5 чУрок 3 из 6
После урока вы сможете
  • Отвечать за 1–2 минуты на типовые вопросы по LLM — от BPE и RoPE до DPO и спекулятивного декодирования — и не попадаться на частые ошибки
  • Оценивать «на салфетке» память на обучение, KV-кэш, скорость decode и бюджет претрейна и проговаривать допущения
  • Связывать каждый ответ с уроком курса, где тема выведена, чтобы выдержать уточняющий вопрос «почему?»
  • Пользоваться китайскими сборниками вопросов по LLM как списком тем, а не как источником готовых ответов

На LLM-позициях теоретическая секция уходит в ступени 4–9 курса: токенизатор и внимание, KV-кэш, DPO против PPO, медленный decode. Сильные интервьюеры добавляют вопрос другого типа: «прикиньте, сколько памяти нужно, чтобы обучить 7B-модель». Он проверяет, умеете ли вы превратить знания в числа.

Формат — как в банке 11.3.2: 51 вопрос с ответом на 1–2 минуты, частой ошибкой и ссылкой на урок. Тренируйтесь так же: вслух, с таймером, сначала без подсказки, ошибки — в тетрадь ошибок, карточки — на повторение. В конце — пять задач на оценку «на салфетке»оценка «на салфетке»EN back-of-the-envelope estimateБыстрый расчёт порядка величины по нескольким формулам и округлённым числам: нагрузка, память, скорость, число GPU, деньги. Точность — в пределах 1.5–2 раз; уточняется замером. с разбором: 5–10 минут с листком и калькулятором.

1. Зачем LLM подслова, а не буквы или слова? Как выбирают размер словаря?

Ответ

Буквы — короткий словарь, но длинные последовательности: внимание дороже, KV-кэш больше, генерация медленнее. Слова — огромный словарь и неизвестные слова. Подслова — компромисс: частые слова целиком, редкие из кусков. Цена большого словаря — эмбеддинги V×dV \times d и softmax по VV на каждом токене: у Qwen3-0.6B это около четверти параметров. Поэтому большие модели берут 100–200 тысяч токенов, учебные — тысячи.

Частая ошибка: забыть о цене словаря для маленькой модели.

Урок: 4.2.1

2. Как работает BPE? Что такое byte-level BPE?

Ответ

Обучение: начать с символов или байтов, посчитать пары соседей, самую частую склеить в новый токен, записать правило слияния и повторять, пока словарь не дорастёт до VV. Кодирование применяет правила в том же порядке. Byte-level BPE стартует с 256 байтов UTF-8, поэтому любой текст кодируется без <unk>: так у GPT-2, Llama 3, Qwen и DeepSeek. Перед обучением текст режут регулярным выражением, чтобы не склеивать слово с пунктуацией.

Частая ошибка: забыть правило при равных частотах — без детерминированного правила два запуска дадут разные словари.

Урок: 4.2.2

3. Почему русский текст стоит больше токенов, чем английский?

Ответ

Словарь учат на корпусе, и частые сочетания получают свои токены. Русского в корпусе мало, морфология богаче, кириллическая буква — 2 байта. В замере курса один и тот же абзац у GPT-4o — 69 токенов на русском против 52 на английском, у GPT-2 — 303 против 53. Следствия: запрос к API дороже, в контекст влезает меньше текста, «букв в секунду» меньше при той же скорости в токенах. Китайский у Qwen и DeepSeek кодируется не хуже английского.

Частая ошибка: считать токены правилом «токен ≈ 4 символа» — оно придумано для английского.

Урок: 4.2.1

4. Можно ли сравнивать perplexity двух моделей с разными токенизаторами?

Ответ

Нет. PerplexityперплексияEN perplexity и loss считаются на токен, а токены разных словарей несут разное количество текста: модель с крупными токенами получит больший loss на токен, даже если предсказывает текст лучше. Честно сравнивать bits per byte (BPB)бит на байт (BPB)EN bits per byte (BPB)Loss, пересчитанный на байт исходного текста; в отличие от perplexity, его можно сравнивать между моделями с разными токенизаторами.: сумму cross-entropy по тексту делят на ln⁡2\ln 2 и на число байтов.

Частая ошибка: сравнивать loss моделей разных семейств.

Урок: 4.2.3, 1.3.3

5. Напишите формулу self-attention. Зачем причинная маска?

Ответ

Attention(Q,K,V)=softmax(QK⊤/dk+M) V\mathrm{Attention}(Q, K, V) = \mathrm{softmax}\big(QK^\top / \sqrt{d_k} + M\big)\, V, где Q=XWQQ = XW_Q, K=XWKK = XW_K, V=XWVV = XW_V. Запрос — «что ищу», ключ — «что предлагаю», значение — «что отдаю». Причинная маска MM ставит −∞-\infty выше диагонали: позиция tt не видит будущее. Иначе модель на обучении подсматривает ответ, а на генерации будущего ещё нет. Маска даёт TT обучающих примеров за один проход.

Частая ошибка: запретить и диагональ — тогда у первой позиции не останется ни одного ключа, и softmax даст nan.

Урок: 4.4.2

6. Зачем делить на dk\sqrt{d_k}?

Ответ

Если компоненты qq и kk независимы с дисперсией 1, то Var(q⋅k)=dk\mathrm{Var}(q \cdot k) = d_k. При dk=128d_k = 128 стандартное отклонение оценок около 11, отдельные доходят до ±25. Softmax от таких чисел почти one-hot, его производные pi(1−pi)p_i(1 - p_i) почти нулевые, и голова «залипает» на фаворите. Деление на dk\sqrt{d_k} возвращает дисперсию к 1.

Частая ошибка: «чтобы числа были меньше» — без дисперсии и насыщения softmax.

Урок: 4.4.2

7. Зачем много голов внимания, если параметров столько же, сколько у одной большой?

Ответ

Ширину dmodeld_{\text{model}} делят на HH голов по dh=dmodel/Hd_h = d_{\text{model}}/H. Параметров в слое те же 4dmodel24d_{\text{model}}^2, FLOPs на оценки те же. Зато каждая голова строит своё распределение внимания: одна смотрит на соседний токен, другая — на дополнение глагола, пара голов в разных слоях образует индукционную голову. Одна большая голова дала бы одно распределение на позицию. Головы ещё и дублируют друг друга — на этом построены MQA и GQA.

Частая ошибка: утверждать, что больше голов — больше параметров.

Урок: 4.4.3

8. Какова сложность внимания по длине и что делает FlashAttention?

Ответ

Вычисления — O(T2d)O(T^2 d), наивная память — O(T2)O(T^2) на матрицу весов: у Llama 3 8B на 8K токенов это 4 ГиБ на слой. FlashAttentionFlashAttentionEN FlashAttentionТочный алгоритм внимания (Tri Dao и соавт., 2022), который не хранит матрицу n×n в видеопамяти: Q, K, V обрабатываются блоками в SRAM с online softmax, а в обратном проходе блоки пересчитываются. Память — O(n) вместо O(n²). Версии 2 и 3 улучшают параллелизм и используют возможности Hopper. считает внимание блоками в быстрой памяти SRAM с онлайн-softmax («бегущие» максимум и сумма экспонент) и никогда не пишет матрицу T×TT \times T в видеопамять. Ответ точный, память O(T)O(T), скорость выше за счёт меньшего числа обращений к памяти. FLOPs остаются O(T2)O(T^2) — от них уходят разреженным и линейным вниманием.

Частая ошибка: называть FlashAttention приближением.

Урок: 4.4.3, 5.7.2

9. Зачем позиционное кодирование и как работает RoPE?

Ответ

Внимание не различает порядок токенов: без позиций «кот съел мышь» и «мышь съела кот» неразличимы. RoPEротационные позиционные эмбеддинги (RoPE)EN rotary position embedding (RoPE)RoPE предложен в Китае (Су Цзяньлинь и соавторы, компания Zhuiyi). Сейчас используется почти во всех LLM. поворачивает пары координат запроса и ключа на углы mθim\theta_i, где mm — позиция, θi=b−2i/d\theta_i = b^{-2i/d}. Поскольку R(m)⊤R(n)=R(n−m)R(m)^\top R(n) = R(n - m), оценка зависит только от расстояния. Плюсы: точная относительность, ноль параметров, ключ поворачивают один раз и кладут в кэш, оценка в среднем затухает с расстоянием.

Частая ошибка: думать, что RoPE сам экстраполирует на длины больше обучающей. Не экстраполирует.

Урок: 4.5.2

10. Как расширить контекст модели, обученной на 4K токенов?

Ответ

За обучающей длиной медленные пары RoPE видят углы, которых не было при обучении. Position Interpolation делит позиции на ss: все углы в знакомом диапазоне, но соседние токены хуже различимы. NTK-aware увеличивает базу: быстрые частоты почти не меняются, медленные интерполируются. YaRN решает для каждой пары по числу её оборотов и добавляет температуру внимания. Всем методам нужно короткое дообучение на длинных текстах.

Частая ошибка: считать, что достаточно поменять max_position_embeddings в конфиге.

Урок: 5.5.1

11. Чем блок Llama или Qwen отличается от трансформера 2017 года?

Ответ

Pre-Norm вместо Post-Norm (стабильное обучение глубоких сетей), RMSNorm вместо LayerNorm (дешевле), RoPE вместо таблицы позиций, SwiGLU вместо GELU с шириной около 83d\frac{8}{3}d–3.5d3.5d, GQA вместо MHA (кэш в 4 раза меньше), без смещений и без dropout в претрейне. DeepSeek-V3 сохранила скелет, но заменила внимание на MLA, а FFN — на MoE.

Частая ошибка: перечислить изменения, не сказав, что даёт каждое.

Урок: 4.5.3

12. Почему почти все LLM — decoder-only?

Ответ

Сигнал с каждой позиции: из 1000 токенов decoder-only получает 999 примеров, BERT — около 150. Один интерфейс «продолжи текст» для всех задач. Простота, под которую выросла вся инфраструктура. Причинная маска не меняет состояния старых токенов, поэтому работает KV-кэш. Но энкодеры живы: эмбеддинги и реранкеры в RAG — это BERT-подобные модели.

Частая ошибка: «потому что GPT победила» — без аргументов про сигнал и KV-кэш.

Урок: 4.5.1, 4.5.4

13. Что такое KV-кэш? Почему кэшируют K и V, но не Q? Сколько он весит?

Ответ

KV-кэшKV-кэшEN KV cache хранит ключи и значения прошлых токенов, чтобы на шаге генерации считать проекции только для нового токена: шаг дорожает линейно по длине, а не квадратично. Прошлые запросы больше ни с чем не сравниваются, их хранить незачем. Размер — 2⋅L⋅G⋅dh⋅b2 \cdot L \cdot G \cdot d_h \cdot b байт на токен (bb — байт на число). Llama 3 8B — 128 КиБ, 16 ГиБ на 128K: на длинном контексте кэш весит как вся модель.

Частая ошибка: забыть множитель 2 (K и V) или подставить число голов запросов вместо KV-голов.

Урок: 4.6.4, 5.2.1

14. MQA и GQA: что они меняют и чем платят?

Ответ

MQA даёт всем головам запросов одну пару K/V: кэш в HH раз меньше, но качество заметно падает (в эксперименте DeepSeek на 7B MMLU 37.9 против 45.2 у MHA). GQA делит головы на GG групп с общей парой K/V: при G=8G = 8 качество почти как у MHA, кэш в H/GH/G раз меньше. Меньше кэш — меньше байт на шаге decode, то есть ещё и быстрее. Готовую MHA-модель переводят в GQA усреднением проекций и коротким дообучением.

Частая ошибка: говорить только о памяти и забыть про скорость decode.

Урок: 5.2.1

15. Как устроена MLA и почему её кэш такой маленький?

Ответ

MLAмногоголовое латентное внимание (MLA)EN multi-head latent attention (MLA)Предложено DeepSeek в DeepSeek-V2 (2024). сжимает вход в латентный вектор cKVc^{KV} размера 512 и восстанавливает из него ключи и значения всех голов. В кэш кладут только латент и общий RoPE-ключ на 64 числа — 576 чисел на слой вместо 32 768 у MHA. Матрицы восстановления «поглощаются» запросом, и при декодировании MLA работает как MQA с головой 576. RoPE мешает поглощению, поэтому его вынесли в отдельную часть головы (развязанный RoPE). У DeepSeek-V3 это около 68.6 КиБ на токен.

Частая ошибка: не объяснить, зачем развязывать RoPE.

Урок: 5.2.2

16. Как устроен MoE-слой? Чем все параметры отличаются от активных?

Ответ

MoEсмесь экспертов (MoE)EN mixture of experts (MoE) заменяет FFN набором экспертов. Роутер считает softmax(xWg)\mathrm{softmax}(xW_g), выбирает top-kk экспертов и складывает их выходы с весами; остальные эксперты на этом токене не считают ничего. DeepSeek-V3: 671B всего, 37B активных. Компромисс: вычисления как у маленькой модели, память как у большой. DeepSeekMoE добавила мелкие эксперты (больше комбинаций) и общий эксперт для знаний, нужных всем.

Частая ошибка: думать, что MoE экономит память. Экономит вычисления.

Урок: 5.3.1, 5.3.2

17. Что такое коллапс роутинга и как с ним бороться?

Ответ

Положительная обратная связь: эксперт случайно получил больше токенов, лучше обучился, роутер шлёт ему ещё больше. Остальные простаивают, а при параллелизме экспертов шаг ждёт самую загруженную GPU. Классика — вспомогательный лосс αN∑ifiPi\alpha N \sum_i f_i P_i (Switch Transformer), но он спорит с основным. DeepSeek-V3 добавляет к оценкам экспертов смещения bib_i, которые сдвигают выбор top-kk к недогруженным, а веса берутся без смещений.

Частая ошибка: предлагать штраф ∑fi2\sum f_i^2 — через счётчики fif_i градиент не течёт.

Урок: 5.3.1, 5.3.2

18. Откуда формула C≈6NDC \approx 6ND?

Ответ

Почти все параметры трансформера — матрицы линейных слоёв. Прямой проход стоит 2 FLOPs на параметр на токен (умножение и сложение), обратный — 4: градиенты по входу и по весам. Итого 6N6N на токен и 6ND6ND на обучение. Формула не учитывает само внимание: при контексте 4096 и d=4096d = 4096 это около +8%, на 32K — уже +67%. Для MoE подставляют активные параметры.

Частая ошибка: подставлять в формулу все параметры MoE.

Урок: 5.1.1, 3.1.2

19. Что показала Chinchilla и почему современные модели учат намного дольше?

Ответ

При фиксированном бюджете модель и данные надо растить поровну, около 20 токенов на параметр: Nopt=C/120N_{opt} = \sqrt{C/120}. Chinchilla 70B на 1.4T токенов обыграла Gopher 280B при том же бюджете. Но Chinchilla оптимизирует только цену обучения, а модель потом годами работает на инференсе по 2N2N FLOPs на токен. Оптимум плоский, поэтому Llama 3 8B учили на 15T токенов: обучение дороже, каждый токен ответа дешевле.

Частая ошибка: считать 20 токенов на параметр целью. Это нижняя граница.

Урок: 5.1.1

20. Почему обучают в BF16, а не в FP16? Зачем мастер-веса в FP32?

Ответ

У BF16 диапазон как у FP32, поэтому маленькие градиенты не исчезают и loss scaling не нужен. У FP16 диапазон узкий: в опыте курса без масштабирования loss обнулилась почти треть градиентов. Но у BF16 всего 7 бит мантиссы: 1+0.001=11 + 0.001 = 1, и маленькие обновления весов теряются. Поэтому мастер-веса и шаг оптимизатора держат в FP32, а суммы в матричных умножениях накапливают в FP32. DeepSeek-V3 пошла дальше — FP8 с масштабом на маленький блок.

Частая ошибка: «BF16 точнее FP16». Наоборот: точность ниже, диапазон шире.

Урок: 5.4.1

21. Сколько байт на параметр нужно при обучении с AdamW в смешанной точности?

Ответ

16: рабочие веса BF16 (2), градиенты BF16 (2), мастер-веса FP32 (4), моменты Adam mm и vv в FP32 (4 + 4). Для 7B это 112 ГБ до активаций — больше любой одиночной карты. Веса для вычислений — лишь 2 байта из 16, основное съедает состояние оптимизатора.

Частая ошибка: считать только веса — «7B в BF16 — 14 ГБ, значит, обучу на одной карте».

Урок: 5.4.1

22. Какие бывают виды параллелизма и что каждый пересылает?

Ответ

По данным — у каждой GPU копия модели, свой кусок батча, раз за шаг all-reduce градиентов. Тензорный — матрицы слоя режут между GPU, на каждом слое пересылают активации; нужен NVLink. Конвейерный — слои по стадиям, пересылают активации на границах, платят «пузырём» (p−1)/(m+p−1)(p - 1)/(m + p - 1). По экспертам — эксперты MoE на разных GPU, токены ходят к ним через all-to-all. Большие прогоны совмещают оси.

Частая ошибка: предлагать тензорный параллелизм для обучения на картах, связанных только PCIe.

Урок: 5.4.3

23. Что такое ZeRO-1/2/3 и FSDP?

Ответ

В обычном DDP все nn GPU хранят одинаковые 16 байт на параметр. ZeROZeRO (оптимизатор без избыточности)EN ZeRO (Zero Redundancy Optimizer)Вместо того чтобы хранить на каждом GPU полную копию, состояние оптимизатора (ZeRO-1), градиенты (ZeRO-2) и веса (ZeRO-3) делят между GPU параллелизма по данным. режет это состояние: ZeRO-1 — состояние оптимизатора, ZeRO-2 — ещё градиенты, ZeRO-3 — ещё веса, которые собирают all-gather прямо перед вычислением слоя. Память на GPU при ZeRO-3 — 16N/n16N/n. Пересылок у ZeRO-1 и ZeRO-2 столько же, сколько у DDP, у ZeRO-3 — примерно в 1.5 раза больше. FSDPFSDP (полностью шардированный параллелизм по данным)EN Fully Sharded Data Parallel (FSDP)Реализация идеи ZeRO-3 в PyTorch. Веса слоя собираются со всех GPU прямо перед его вычислением и сразу освобождаются. — реализация ZeRO-3 в PyTorch.

Частая ошибка: считать, что ZeRO уменьшает память на активации. Для них — пересчёт.

Урок: 5.4.3, 5.7.4

24. Что такое пересчёт активаций и накопление градиентов? Где здесь ловушка?

Ответ

Пересчёт активацийперевычисление активаций (activation checkpointing)EN activation checkpointing (recomputation)Не хранить часть активаций прямого прохода, а пересчитать их при обратном. Экономит память ценой дополнительных вычислений. не хранит активации части слоёв и пересчитывает их в обратном проходе: память на активации падает в разы за цену около одного прямого прохода. Накопление градиентов складывает градиенты нескольких микробатчей перед шагом — большой батч без большой памяти. Ловушка: усреднить loss по токенам каждого микробатча, а потом ещё раз по микробатчам — длинные и короткие ответы будут весить неправильно. Делить надо сумму loss на общее число токенов батча.

Частая ошибка: не знать эту ловушку — в 2024 году её нашли и в популярных библиотеках.

Урок: 5.4.3, 6.1.2

25. Чем базовая модель отличается от instruct, и что делает SFT?

Ответ

Базовая модель продолжает документы: на вопрос может ответить списком похожих вопросов — она имитирует авторов текстов из интернета. SFT учит её на диалогах в chat-шаблоне (например, ChatML) отвечать как ассистент, следовать формату и останавливаться. Качество данных важнее количества. Дальше идут предпочтения (RLHF, DPO) и RL на проверяемых задачах.

Частая ошибка: подать запрос к instruct-модели без её chat-шаблона и удивляться странным ответам.

Урок: 6.1.1, 6.1.2

26. Зачем маска loss в SFT и что будет без неё?

Ответ

Loss считают только по токенам ответа ассистента вместе с закрывающим токеном; промпт модель читает, но за него не отвечает. Labels промпта ставят в −100-100. Без маски модель учится говорить за пользователя и сочиняет следующий вопрос, а при длинном промпте почти весь loss уходит на моделирование документа: 3000 токенов промпта против 100 токенов ответа — 97% слагаемых не о том.

Частая ошибка: выкинуть из loss закрывающий токен — модель не научится останавливаться.

Урок: 6.1.2

27. Как работает LoRA?

Ответ

LoRALoRA (низкоранговая адаптация)EN low-rank adaptation (LoRA) замораживает W0W_0 и учит поправку низкого ранга: h=W0x+αrBAxh = W_0 x + \frac{\alpha}{r} BAx, где A∈Rr×kA \in \mathbb{R}^{r \times k}, B∈Rd×rB \in \mathbb{R}^{d \times r}. Для матрицы 4096×40964096 \times 4096 при r=8r = 8 — 65 536 параметров вместо 16.8 млн. BB инициализируют нулями, поэтому на старте модель не меняется. Поправку потом вливают в вес — инференс не замедляется. Адаптеры ставят на все линейные слои блока, lr — примерно в 10 раз выше, чем при полном дообучении.

Частая ошибка: инициализировать нулями обе матрицы — тогда градиенты обеих нулевые и обучение не стартует.

Урок: 6.2.1

28. Что добавляет QLoRA?

Ответ

Замороженную базу хранят в 4 битах (NF4 — формат под нормальное распределение весов), а блоки весов деквантуют в BF16 на лету при умножении. Адаптеры остаются в BF16. Ещё два приёма: двойное квантование масштабов и paged optimizers против всплесков памяти. Для Qwen2.5-7B (7.6 млрд параметров): полное дообучение около 122 ГБ, LoRA — около 16 ГБ, QLoRA — около 5 ГБ без активаций.

Частая ошибка: вливать адаптер в 4-битные веса. Сливают с базой в BF16.

Урок: 6.2.1

29. Как устроен классический RLHF?

Ответ

Три шага: SFT; reward model, обученная на парах «лучше — хуже» по модели Брэдли–Терри P(yw≻yl)=σ(rw−rl)P(y_w \succ y_l) = \sigma(r_w - r_l); PPO, который максимизирует награду с KL-штрафом к референсу. В памяти четыре модели: политика и критик обучаются, референс и reward model заморожены. Для политики 7B это около 252 ГБ на веса и оптимизаторы. Плюс капризные гиперпараметры.

Частая ошибка: забыть, что loss reward model на старте около ln⁡2\ln 2 — удобная проверка на баги.

Урок: 6.3.2

30. Зачем KL-штраф к референсной модели? Что такое reward hacking?

Ответ

Reward model — лишь приближение к мнению людей, и политика, оптимизируемая против неё, находит её ошибки: многословие, угодничество, уверенный тон при неверных фактах. Это взлом наградывзлом награды (reward hacking)EN reward hackingПолитика находит способ получить высокую награду, не делая того, что задумали люди., частный случай закона Гудхарта. KL-штраф держит политику рядом с референсом, где reward model ещё надёжна. Другие лекарства — ансамбль reward model, обновление её на свежих ответах, штрафы за длину, проверяемые награды.

Частая ошибка: считать рост награды ростом качества.

Урок: 6.3.2

31. В чём идея DPO? Чему равен DPO loss на первом шаге?

Ответ

Оптимальная политика RLHF выражается через награду, а значит, награду можно выразить через политику: r^=βlog⁡(πθ/πref)\hat r = \beta \log(\pi_\theta / \pi_{\text{ref}}). Подставили в Брэдли–Терри — нормировка Z(x)Z(x) сократилась:

LDPO=−log⁡σ(r^w−r^l).\mathcal{L}_{\text{DPO}} = -\log \sigma\big(\hat r_w - \hat r_l\big).

Reward model и генерация не нужны, только пары и референс. На первом шаге πθ=πref\pi_\theta = \pi_{\text{ref}}, награды нулевые, loss =ln⁡2≈0.693= \ln 2 \approx 0.693. β\beta — длина поводка: стандарт 0.1.

Частая ошибка: смотреть только на loss. Следите за rewards/chosen: если он уходит в минус, падают обе вероятности.

Урок: 6.3.3

32. Когда брать DPO, а когда PPO или GRPO?

Ответ

DPO — офлайн: учится на готовых парах, стабилен как SFT, хорош для стиля, тона, безопасности. Слабости: сдвиг распределения (пары от другой модели), падение вероятности и хорошего ответа, переобучение на однозначных парах, выучивание многословия. PPO и GRPO — онлайн: модель учится на своих свежих ответах, это сильнее для рассуждений и кода с проверяемой наградой. Промежуточный вариант — итеративный DPO на свежих парах.

Частая ошибка: называть DPO «бесплатной заменой RLHF».

Урок: 6.3.3

33. Как работает GRPO и чем он дешевле PPO?

Ответ

На промпт генерируют группу из GG ответов, преимущество каждого — Ai=(ri−mean)/stdA_i = (r_i - \mathrm{mean})/\mathrm{std} по группе. Критика нет: baseline — средняя награда группы, преимущество одно на весь ответ, KL к референсу — прямо в loss. Награда может быть правилом: проверка ответа или тестов (R1-Zero). Памяти почти вдвое меньше, чем у PPO, но генерация дорожает в GG раз — поэтому RL-инфраструктура оптимизирует прежде всего её.

Частая ошибка: сказать, что GRPO «дешевле во всём». Rollout стал дороже.

Урок: 6.4.1, 6.4.2

34. Что такое вырожденная группа в GRPO и что с ней делают?

Ответ

Если все ответы группы одинаково верны или неверны, std = 0, преимущества нулевые — дорогая генерация не дала градиента. При точности модели pp на промпте вероятность сигнала 1−pG−(1−p)G1 - p^G - (1 - p)^G: при p=0.1p = 0.1 и G=8G = 8 это 0.57. Лечат подбором задач по силам модели, большей группой и динамическим сэмплингом DAPO, который выбрасывает вырожденные группы и досэмплирует новые.

Частая ошибка: брать для RL задачи, которые модель после SFT не решает никогда.

Урок: 6.4.1, 6.4.3

35. Почему маленькие рассуждающие модели обычно получают дистилляцией, а не RL?

Ответ

R1-Distill — это SFT маленькой модели на трассах рассуждений большой: дёшево и стабильно. В статье R1 Qwen-32B после большого RL набрала 47.0% на AIME 2024, после дистилляции из R1 — 72.6%. Слабость обычного SFT на трассах — модель учится на чужих траекториях и не видит своих ошибок. On-policy дистилляция исправляет это: ученик генерирует сам, учитель оценивает каждый его токен.

Частая ошибка: путать дистилляцию рассуждений с квантованием или прунингом.

Урок: 6.4.4

36. Чем prefill отличается от decode?

Ответ

Prefillprefill (предзаполнение)EN prefillПервая фаза генерации: весь промпт проходит через модель одним параллельным проходом, заполняется KV-кэш и получается первый токен. Упирается в вычисления. пропускает весь промпт одним проходом: матрица на матрицу, упор в вычисления, задаёт время до первого токена. Decode делает по токену за проход: вектор на матрицу, все веса читаются ради одного токена, упор в пропускную способность памяти, задаёт скорость «печати». Отсюда: квантование весов, батчинг, GQA и MLA ускоряют decode, а для prefill важны FLOPs. Подробный расчёт — в задаче 2 ниже.

Частая ошибка: считать, что более мощный GPU по TFLOPS ускорит генерацию для одного пользователя.

Урок: 7.1.1

37. Что такое TTFT, TPOT и throughput, и почему они спорят?

Ответ

TTFT — время до первого токена: очередь плюс prefill. TPOT — интервал между следующими токенами, длительность шага decode. Throughput — токенов в секунду на всех пользователей. Больше батч — выше throughput, но выше и TPOT каждого. Длинный prefill чужого запроса задерживает шаги остальных. Поэтому сервисы задают SLO, например «TTFT меньше 2 с, TPOT меньше 50 мс», и ищут максимальный throughput при этих ограничениях.

Частая ошибка: описывать скорость одним числом.

Урок: 7.1.1

38. Что такое непрерывный батчинг и PagedAttention?

Ответ

Непрерывный батчингнепрерывный батчингEN continuous batching (iteration-level scheduling)Состав батча пересматривается после каждого шага decode — закончившиеся запросы уходят, новые встают на их место. Идея системы Orca (2022), стандарт всех современных серверов. планирует по итерациям: закончившийся ответ уходит из батча сразу, на его место встаёт новый запрос. В симуляции курса загрузка слотов выросла с 27% до 79%. PagedAttentionPagedAttention (страничный KV-кэш)EN PagedAttentionKV-кэш хранится блоками фиксированного размера (например, по 16 токенов), а таблица блоков связывает логические позиции с физическими — как страницы виртуальной памяти в ОС. Основа vLLM. хранит KV-кэш блоками по 16 токенов через таблицу блоков, как виртуальная память ОС: не нужно резервировать максимум, а общий префикс хранится один раз. В примере курса в те же 16 ГиБ влезло около 234 запросов вместо 64.

Частая ошибка: не связать память кэша с батчем: больше места под кэш — больше пользователей.

Урок: 7.1.2

39. Как работает спекулятивное декодирование и когда оно не помогает?

Ответ

Черновая модель предлагает kk токенов, большая проверяет их одним проходом — почти по цене одного шага. Токен принимают с вероятностью min⁡(1,p/q)\min(1, p/q), при отказе сэмплируют из остатка max⁡(0,p−q)\max(0, p - q), и итог распределён ровно как у большой модели. При доле принятия α\alpha одна проверка даёт в среднем (1−αk+1)/(1−α)(1 - \alpha^{k+1})/(1 - \alpha) токенов: 3.36 при α=0.8\alpha = 0.8, k=4k = 4. Не помогает при большом батче и при высокой температуре.

Частая ошибка: считать, что качество падает «как у маленькой модели».

Урок: 7.1.2

40. Как работает квантование весов? Почему 4 бита ускоряют decode, но не prefill?

Ответ

Симметричное absmax: scale=max⁡∣x∣/qmax⁡\text{scale} = \max\lvert x \rvert / q_{\max}, q=round(x/scale)q = \mathrm{round}(x/\text{scale}). Один выброс портит весь тензор, поэтому масштаб берут на группу из 32–128 весов: INT4 с группами по 128 — 4.125 бита на вес. W4A16 читает веса в 4 битах и распаковывает в регистрах: decode, упирающийся в чтение весов, ускоряется, а prefill, упирающийся в 16-битные вычисления, нет. Ускорить prefill может W8A8 или FP8.

Частая ошибка: путать ошибку весов с ошибкой модели: 10% ошибки весов в 4 битах — ещё не 10% потери качества.

Урок: 7.2.1

41. Чем GPTQ отличается от AWQ?

Ответ

Оба минимизируют ошибку выхода слоя на калибровочных данных, а не ошибку весов. GPTQ квантует столбцы по одному и исправляет ошибку уже округлённых столбцов, сдвигая ещё не квантованные (по матрице X⊤XX^\top X). AWQ замечает, что важен около 1% весов — те, что умножаются на большие активации, и масштабирует их каналы перед округлением, чтобы их относительная ошибка уменьшилась.

Частая ошибка: выбирать важные веса по их величине, а не по активациям.

Урок: 7.2.1

42. Как работают температура, top-k и top-p?

Ответ

Температура делит логиты на TT: меньше 1 — распределение острее, больше 1 — площе, T→0T \to 0 — жадный выбор. Top-k оставляет kk самых вероятных токенов. Top-p оставляет минимальное «ядро» токенов с суммарной вероятностью не меньше pp: в уверенной позиции ядро маленькое, в неуверенной — большое. Порядок обычно: температура, затем отсечение, затем нормировка и сэмплирование.

Частая ошибка: думать, что «температура 0» всегда даёт одинаковый ответ: батчинг и порядок сложений на GPU меняют результат.

Урок: 4.1.3

43. Когда нужен RAG, когда дообучение, а когда длинный контекст?

Ответ

RAG — для свежих и приватных данных и ссылок на источник: знания меняются без переобучения. Дообучение — для стиля, формата и навыков, а не для фактов: их модель после дообучения путает. Длинный контекст — когда документов немного и они помещаются целиком; цена — токены на каждый запрос и «lost in the middle». Часто комбинируют: RAG плюс дообучение под формат ответа.

Частая ошибка: «дообучим модель на базе знаний компании» как способ добавить факты.

Урок: 8.2.1

44. Как улучшить поиск в RAG?

Ответ

Чанкинг по структуре документа с перекрытием. Гибридный поискгибридный поискEN hybrid searchОдновременный лексический (BM25) и векторный поиск с последующим слиянием выдач, например через RRF.: BM25 ловит точные идентификаторы, эмбеддинги — перефразировки, списки сливают через RRF ∑i1/(60+ranki)\sum_i 1/(60 + \text{rank}_i) — по местам, а не по несравнимым оценкам. Затем реранкерреранкерEN rerankerВторая ступень поиска — точная, но медленная модель (обычно кросс-энкодер) пересортировывает десятки кандидатов от быстрого ретривера.-кросс-энкодер пересортировывает 50–100 кандидатов, и в промпт идут лучшие 3–5. Ещё помогает переписывание запроса.

Частая ошибка: менять LLM, не измерив recall поиска.

Урок: 8.2.2

45. Как оценивать RAG?

Ответ

Поиск и генерацию отдельно: чинятся они по-разному. Поиск — recall@k (попал ли нужный кусок в контекст) и MRR по eval-набору из 50–200 размеченных вопросов, включая вопросы без ответа в базе. Генерация — верность контекстуверность контексту (faithfulness)EN faithfulness / groundednessДоля утверждений ответа, которые подтверждаются найденным контекстом. Низкая faithfulness — признак галлюцинаций генератора. (доля утверждений ответа, подтверждённых контекстом) и релевантность ответа, обычно через LLM-судью. Низкий recall — проблема поиска, высокий recall с низкой faithfulness — проблема генерации.

Частая ошибка: оценивать только итоговый ответ «на глаз».

Урок: 8.2.2

46. Что такое агент, и почему агенты дорогие?

Ответ

Агент — цикл «думай → действуй → наблюдай»: LLM решает, какой инструмент вызвать и когда остановиться, а исполняет вызовы ваш код. ReAct чередует рассуждение и действия. Каждый шаг отправляет всю историю, поэтому входных токенов nS+d n(n−1)/2nS + d\,n(n-1)/2: при S=1000S = 1000, d=300d = 300, n=10n = 10 — 23 500. Лечат кэшем префикса, короткими наблюдениями и лимитом шагов.

Частая ошибка: строить агента там, где хватит фиксированного конвейера.

Урок: 8.3.1

47. Какие риски у агента с инструментами и что такое MCP?

Ответ

MCP (Model Context Protocol) — открытый протокол, по которому приложение подключает к модели внешние серверы инструментов и данных. Риски: избыточные права, инъекции через аргументы и через содержимое страниц и писем, необратимые действия, недоверенные серверы с «отравленными» описаниями инструментов. Защита — минимальные права, валидация аргументов, подтверждение человеком, песочница.

Частая ошибка: считать системный промпт надёжной защитой от инъекций.

Урок: 8.3.2, 8.3.4

48. Модель A набрала на бенчмарке на 2 пункта больше модели B. Она лучше?

Ответ

Сначала шум: SE=p(1−p)/n\mathrm{SE} = \sqrt{p(1-p)/n}. На HumanEval (164 задачи) 95%-интервал одной модели около ±7.7 п.п., на AIME (30 задач) — ±18. Разница двух моделей шумит ещё в 2\sqrt{2} раз, поэтому сравнивают на одних вопросах парным бутстрэпом. Затем контаминация: бенчмарк мог попасть в претрейн. Проверяют свежими задачами того же стиля (GSM1k), разделением по дате (LiveCodeBench), n-граммным пересечением.

Частая ошибка: радоваться «+2 балла» без интервала.

Урок: 7.3.1, 7.3.2

49. Какие смещения у LLM-судьи и как с ними бороться?

Ответ

Позиционное (выигрывает ответ на определённом месте), смещение длины, предпочтение своего семейства, слабость в задачах, которые судья сам не решит, доверие уверенному тону. Лечение: спрашивать дважды с перестановкой и засчитывать только согласованные вердикты, рубрика «длина не достоинство», судья из другого семейства, эталонный ответ.

Частая ошибка: доверять судье, не сверив его с людьми на 50–100 размеченных ответах.

Урок: 7.3.2

50. Что такое pass@k и чем он отличается от maj@k?

Ответ

pass@k — вероятность, что среди kk попыток есть верная. Несмещённая оценка по n≥kn \ge k сэмплам с cc верными: 1−(n−ck)/(nk)1 - \binom{n-c}{k}/\binom{n}{k}. При n=10n = 10, c=2c = 2, k=5k = 5 это 0.778. maj@k — верен ли самый частый ответ (голосование без проверяющего). pass^k — верны ли все kk попыток: надёжность агента.

Частая ошибка: сравнивать pass@100 одной модели с pass@1 другой.

Урок: 7.3.2

51. Откуда берутся галлюцинации и как их снижать?

Ответ

Модель учится правдоподобно продолжать текст, а не говорить правду. На обучении она видит правильный префикс, а на генерации — свои токены: одна ошибка становится контекстом для следующих (exposure bias). Пост-трейнинг может наградить уверенный тон и угодничество. Снижают: RAG с инструкцией «только по источникам» и разрешением сказать «не знаю», цитирование, проверяемые награды в RL, низкая температура для фактов. Меряют faithfulness.

Частая ошибка: обещать, что RAG устраняет галлюцинации полностью: модель может исказить и найденный текст.

Урок: 4.1.1, 8.2.2, 6.3.2

Интервьюер ждёт не точного числа, а хода рассуждения: допущения вслух, формулы, порядок величины, вывод.

flowchart LR
A["Уточнить условие:<br/>модель, точность,<br/>контекст, железо"] --> B["Назвать допущения<br/>(MFU, байт на параметр)"]
B --> C["Формула<br/>в общем виде"]
C --> D["Подставить числа,<br/>округлить"]
D --> E["Проверка здравым смыслом:<br/>сравнить с известным"]
E --> F["Вывод и что<br/>его изменит"]
Как решать задачу на оценку: допущения → формула → числа → проверка → вывод

Деньги не считаем: цены меняются. RTX 4080 — 717 ГБ/с памяти и 97.5 TFLOPS в BF16 (урок 7.1.1).

Задача 1. Хватит ли 4×RTX 4080 по 32 ГБ, чтобы полностью обучить 7B-модель?

Заголовок раздела «Задача 1. Хватит ли 4×RTX 4080 по 32 ГБ, чтобы полностью обучить 7B-модель?»
Разбор

Состояние модели. AdamW в смешанной точности — 16 байт на параметр (вопрос 21): 7⋅109⋅16=1127 \cdot 10^9 \cdot 16 = 112 ГБ — в 3.5 раза больше одной карты.

Активации. Грубая оценка для GPT-подобного блока в BF16 с FlashAttention — около 34 h34\,h байт на токен на слой (порядок из работы NVIDIA о пересчёте активаций, Korthikanti и соавторы, 2022). При h=4096h = 4096, 32 слоях и последовательности 4096 токенов: 34⋅4096⋅4096⋅32≈1834 \cdot 4096 \cdot 4096 \cdot 32 \approx 18 ГБ на одну последовательность. С пересчётом активаций хранятся только входы слоёв: 32⋅4096⋅4096⋅2≈1.132 \cdot 4096 \cdot 4096 \cdot 2 \approx 1.1 ГБ плюс активации одного слоя.

Шардирование. ZeRO-3 (FSDP) на 4 карты — по 112/4=28112 / 4 = 28 ГБ на карту. На активации и буферы CUDA остаётся около 4 ГБ — на грани. Можно выгрузить состояние оптимизатора (84 ГБ) в 128 ГБ оперативной памяти, но шаг AdamW на процессоре тоже не бесплатен.

Связь. FSDP пересылает за шаг около 2⋅n−1n⋅4N=422 \cdot \frac{n-1}{n} \cdot 4N = 42 ГБ на карту. При условных 10 ГБ/с по PCIe — 4.2 с. Счёт шага на 16 384 токена: 6⋅7⋅109⋅16 384/(4⋅39⋅1012)≈4.46 \cdot 7 \cdot 10^9 \cdot 16\,384 / (4 \cdot 39 \cdot 10^{12}) \approx 4.4 с при MFU 40%. Обмен сравним со счётом и должен прятаться за ним.

Вывод. Технически — на пределе: FSDP, пересчёт активаций, микробатч 1, возможно выгрузка оптимизатора. Практически для 7B берут LoRA (около 16 ГБ — одна карта) или QLoRA. А претрейн 7B по Chinchilla (≈5.9⋅1021\approx 5.9 \cdot 10^{21} FLOPs) занял бы на этих картах около 440 дней.

Частая ошибка: посчитать только веса в BF16 (14 ГБ) и забыть градиенты, оптимизатор и активации.

Уроки: 5.4.1, 5.4.3, 5.7.4, 6.2.1

Задача 2. Почему decode упирается в память? Сколько токенов в секунду даст Qwen3-8B на одной RTX 4080?

Заголовок раздела «Задача 2. Почему decode упирается в память? Сколько токенов в секунду даст Qwen3-8B на одной RTX 4080?»
Разбор

Один пользователь. Qwen3-8B в BF16 — 16.4 ГБ весов. Каждый шаг decode читает их целиком ради одного токена: 16.4/717≈22.916.4 / 717 \approx 22.9 мс. Вычислений на токен 2N≈16.42N \approx 16.4 GFLOP — это 16.4⋅109/97.5⋅1012≈0.1716.4 \cdot 10^9 / 97.5 \cdot 10^{12} \approx 0.17 мс. Память медленнее в 136 раз: интенсивность около 1 FLOP/байт при точке перегиба 136. Потолок — 717/16.4≈44717 / 16.4 \approx 44 токена/с, тензорные ядра простаивают больше 99% времени.

Батч. BB пользователей делят одно чтение весов: пока BB меньше точки перегиба (около 136), шаг почти не дольше. Но KV-кэш у каждого свой: у Qwen3-8B 2⋅36⋅8⋅128⋅2=1442 \cdot 36 \cdot 8 \cdot 128 \cdot 2 = 144 КиБ на токен, при контексте 4096 — 0.6 ГБ на пользователя.

БатчПамять: веса + кэшШагВсего токенов/сНа пользователя
117.0 ГБ23.7 мс4242
821.2 ГБ29.6 мс27034
1626.1 ГБ36.4 мс44028
3235.7 ГБ—не помещается в 32 ГБ—

Вывод. Decode memory-bound: на прочитанный байт весов — одна операция. Ускоряют его, уменьшая байты (Q4_K_M около 5 ГБ — потолок около 143 токенов/с) или деля чтение между пользователями (батчинг). Предел батча задаёт память под KV-кэш — отсюда GQA, MLA и FP8-кэш. Реальные программы достигают 50–85% потолка.

Частая ошибка: считать скорость decode по TFLOPS карты.

Уроки: 7.1.1, 5.2.1

Задача 3. Сервис на Llama 3 70B в 4 битах на 4×32 ГБ. Сколько пользователей с контекстом 32K он выдержит?

Заголовок раздела «Задача 3. Сервис на Llama 3 70B в 4 битах на 4×32 ГБ. Сколько пользователей с контекстом 32K он выдержит?»
Разбор

Веса. 70.6 млрд параметров в INT4 с группами по 128 — 70.6⋅4.125/8≈36.470.6 \cdot 4.125 / 8 \approx 36.4 ГБ.

KV-кэш. У Llama 3 70B 80 слоёв, 8 KV-голов по 128: 2⋅80⋅8⋅128⋅2=3202 \cdot 80 \cdot 8 \cdot 128 \cdot 2 = 320 КиБ на токен в BF16. На 32 768 токенов — 10 ГиБ (≈ 10.7 ГБ) на пользователя.

Бюджет. Из 128 ГБ вычтем веса и около 2 ГБ на карту под буферы: остаётся около 84 ГБ. Это 84/10.7≈784 / 10.7 \approx 7–8 пользователей на полном контексте в BF16 и около 15 с кэшем в FP8. Если бы модель была с MHA (64 KV-головы), кэш весил бы 2.5 МиБ на токен, 80 ГиБ на пользователя — не поместился бы даже один.

Что меняет вывод. Реальные запросы короче максимума, а PagedAttention выделяет память по факту: при среднем контексте 4K (1.3 ГБ кэша) пользователей около 60. Префикс-кэш общих промптов экономит ещё. А тензорный параллелизм по PCIe добавляет обмен на каждом слое.

Частая ошибка: считать только веса («36 ГБ из 128 — места полно»): кэши восьми пользователей весят больше модели.

Уроки: 5.2.1, 7.1.2, 7.2.1

Задача 4. У вас 4×RTX 4080 на 30 дней. Какую модель претрейнить?

Заголовок раздела «Задача 4. У вас 4×RTX 4080 на 30 дней. Какую модель претрейнить?»
Разбор

Бюджет. Допустим, MFU 40%: 4⋅97.5⋅1012⋅0.4⋅30⋅86 400≈4.0⋅10204 \cdot 97.5 \cdot 10^{12} \cdot 0.4 \cdot 30 \cdot 86\,400 \approx 4.0 \cdot 10^{20} FLOPs.

По Chinchilla. Nopt=C/120≈1.8N_{opt} = \sqrt{C/120} \approx 1.8 млрд параметров, D=20N≈37D = 20N \approx 37 млрд токенов. Скорость: 37⋅10937 \cdot 10^9 токенов за 30 дней — около 14 тысяч токенов в секунду на машину.

Проверки. Память: 1.8⋅109⋅16≈291.8 \cdot 10^9 \cdot 16 \approx 29 ГБ состояния — DDP на картах по 32 ГБ не влезет вместе с активациями, нужен FSDP (около 7 ГБ на карту). Данные: 37 млрд токенов качественного текста надо где-то взять, дедуплицировать и отфильтровать — это работа на недели. Связь: в DDP обмен прячется за счётом, если между all-reduce карта обрабатывает тысячи токенов.

Но оптимум плоский. Тот же бюджет даёт модели на 0.5B 135 млрд токенов (270 на параметр). По формуле Chinchilla её loss хуже примерно на 1% (2.45 против 2.43), зато она в 3.7 раза дешевле на инференсе и обучается без FSDP. Если модель будут использовать, а не только мерить, выгоднее меньшая.

Частая ошибка: взять самую большую модель, что влезает в память, и учить её на паре миллиардов токенов.

Уроки: 5.1.1, 5.6.2, 5.7.4

Задача 5. MoE-модель на 30B с 3B активных при батче 1 генерирует в 10 раз быстрее плотной 32B. Сохранится ли разрыв при батче 64?

Заголовок раздела «Задача 5. MoE-модель на 30B с 3B активных при батче 1 генерирует в 10 раз быстрее плотной 32B. Сохранится ли разрыв при батче 64?»
Разбор

Батч 1. Qwen3-30B-A3B в 4 битах занимает около 15–19 ГБ, но на токен читаются только 8 экспертов из 128 в каждом слое и общие части — около 2 ГБ. Потолок на RTX 4080 — около 355 токенов/с против 36 у плотной Qwen3-32B в тех же битах (20 ГБ читаются целиком).

Батч BB. Каждый токен выбирает своих экспертов. Допустим, выбор равномерный и независимый: эксперт не нужен ни одному токену с вероятностью (1−8/128)B(1 - 8/128)^B. Доля прочитанных экспертов 1−(15/16)B1 - (15/16)^B: при B=4B = 4 — 23%, при B=16B = 16 — 64%, при B=64B = 64 — 98%. Значит, при батче 64 шаг читает почти все веса, как плотная модель того же размера.

Вывод. По байтам на шаг преимущество MoE с ростом батча исчезает: обе модели читают 15–20 ГБ. Остаётся преимущество по вычислениям: 2⋅3.3≈6.62 \cdot 3.3 \approx 6.6 GFLOP на токен против 64 у плотной. Когда большой батч упирается в вычисления, MoE снова почти в 10 раз дешевле. Поэтому облако любит MoE за дешёвые токены, а дома она хороша при малом батче, если хватает памяти. Реальный роутинг неравномерен, и доля прочитанных экспертов обычно ниже оценки.

Частая ошибка: переносить скорость при батче 1 на сервер с сотнями пользователей.

Уроки: 5.3.1, 7.1.1

Проверь себя13 вопросов
1 Модель: 32 слоя, 8 KV-голов, размер головы 128, кэш в BF16. Сколько КиБ весит KV-кэш на один токен?
2 Модель 8.2 млрд параметров в INT8 (8.2 ГБ), карта с памятью 717 ГБ/с. Какой потолок скорости decode при батче 1, токенов/с? Округлите до целого.
3 Зачем в self-attention делить QK⊤QK^\top на dk\sqrt{d_k}?
4 Чему равен DPO loss на первом шаге, когда политика совпадает с референсом? Натуральный логарифм, три знака.
5 GRPO, группа из 4 ответов с наградами [1,0,0,0][1, 0, 0, 0]. Чему равно преимущество верного ответа (std с делением на GG)? Два знака.
6 LoRA с рангом r=16r = 16 на матрице 4096×40964096 \times 4096. Сколько обучаемых параметров? Число без пробелов.
7 Сколько FLOPs нужно, чтобы обучить плотную модель на 1 млрд параметров на 20 млрд токенов? Ответ в единицах 102010^{20}.
8 Что уменьшает KV-кэш на токен? Выберите все верные.Можно выбрать несколько ответов
9 Что верно про спекулятивное декодирование с правилом принятия min⁡(1,p/q)\min(1, p/q)?
10 Почему квантование только весов в 4 бита (W4A16) ускоряет decode, но почти не ускоряет prefill?
11 Что верно про MoE-модель на 30B параметров с 3B активных? Выберите все верные.Можно выбрать несколько ответов
12 Модель A: средний loss 2.0 на токен, текст — 250 токенов. Модель B: 1.6 на токен, тот же текст — 400 токенов. Какая лучше предсказывает текст?
13 Сгенерировано n=10n = 10 решений, верны c=3c = 3. Оцените pass@2 по несмещённой формуле. Три знака.
  • Теория LLM на собеседовании — это ступени 4–9 курса, от токенизации до RAG, агентов и оценки.
  • Сильный ответ называет механизм и цену: что экономит GQA, чем платит GRPO, почему DPO офлайн, во что упирается decode.
  • Задачи на оценку решаются пятью формулами: 16 байт на параметр при обучении, 6ND6ND, 2LGdh2 L G d_h байт кэша на токен, потолок decode W/байтW / \text{байт} и Nopt=C/120N_{opt} = \sqrt{C/120}. Допущения — вслух.
  • Сборники «багу» по LLM — хороший список тем, но быстро стареют: выводите ответ из урока и проверяйте замером.

Дальше: урок 11.3.4 — секция ML coding: softmax, attention с маской, top-p, BPE и AUC с нуля за 30–45 минут, вслух и без подсказок.

Закончили урок?Урок пройден

Отметьте его — и 11 карточек из урока попадут в колоду повторения. · 11 карточек — в колоде повторения

Первоисточники 5

  • ZH
    km1994 · LLMs_interview_notes «Тысячеликий знаток LLM»
    вопросы по темам: основы, LayerNorm, внимание, PEFT, RLHF и DPO, распределённое обучение, «Вопросы о видеопамяти»; часть ответов — по внешним ссылкамссылка · Apache-2.0
  • ZH
    wdndev · llm_interview_note
    конспекты по архитектуре, обучению, инференсу, RAG и агентам; раздел «Реальные вопросы с собеседований»ссылка
  • ZH
    315386775 · DeepLearing-Interview-Awesome-2024
    сборник вопросов с разбором: раздел по LLM, основы DL, «шоусы» (код с нуля); принцип отбора авторов — «частые, свежие, глубокие»ссылка · MIT
  • EN
    Google DeepMind. How To Scale Your Model
    главы о roofline, подсчёте параметров и FLOPs трансформера, обучении и инференсе — эталон оценок «на салфетке»; части книги есть в переводе в разделе «Переводы» курсассылка · MIT
  • EN
    Stanford CS336: Language Modeling from Scratch
    лекции о ресурсах (подсчёт FLOPs и памяти), масштабировании, инференсе и выравнивании — для углубления любой темы этого урокассылка

Лицензия текста урока: CC-BY-SA-4.0 · обновлено 2026-10-06