Темы 6–10: оценивание параметров через MLE и MAP, проверка гипотез и доверительные интервалы, A/B-тесты на практике, градиентные методы оптимизации и теория информации.
6. Оценивание параметров: MLE и MAP
Важность на собеседовании: 6/10
██████░░░░🔥🔥 Часто. Ключевая связка «регуляризация = априорное распределение» — любимый вопрос на ML-базе, и он объясняет L1/L2 глубже, чем «штраф за большие веса». Копают средне: попросят объяснить логику, вывод редко.
Суть. Есть данные, есть модель с параметрами. Как выбрать параметры?
MLE (максимум правдоподобия). θ̂ = argmax P(D|θ). Обычно максимизируют логарифм (сумма вместо произведения, численно устойчивее). Свойства: состоятельность, асимптотическая нормальность и эффективность. Проблема — переобучение при малых выборках.
MAP (максимум апостериорной вероятности). θ̂ = argmax P(θ|D) = argmax P(D|θ)P(θ). Добавляем априор на параметры.
Главная связка (её и спрашивают):
- Гауссов априор на веса
w ~ N(0, τ²)→−log P(w) ∝ ‖w‖²→ L2-регуляризация (Ridge). - Лапласов априор
w ~ Laplace(0,b)→−log P(w) ∝ ‖w‖₁→ L1-регуляризация (Lasso). - Равномерный (неинформативный) априор → MAP вырождается в MLE.
То есть регуляризация — это не эвристика, а байесовский априор «веса скорее маленькие».
Пример. Подбросили монету 3 раза, 3 орла. MLE даёт p̂ = 1.0 — абсурд. MAP с априором Beta(2,2) (мягкая вера в честность) даёт p̂ = (3+1)/(3+2) = 0.8 — разумнее. Это ровно то же, что аддитивное сглаживание в Naive Bayes.
Вопрос: Почему кросс-энтропия — «естественная» потеря для классификации? — Она равна отрицательному лог-правдоподобию модели Бернулли/категориального распределения. Минимизируя CE, вы делаете MLE. MSE для классификации хуже: неканоническая связь, градиент затухает при уверенно неверных ответах.
7. Проверка гипотез и доверительные интервалы
Важность на собеседовании: 6/10
██████░░░░🔥🔥 Часто. В продуктовых компаниях (Авито, Ozon, Т-Банк, VK) спрашивают почти всегда; в чисто исследовательских NLP-командах — реже. Копают на уровне «объясни, что такое p-value, и не облажайся в формулировке» — тут проваливается очень много кандидатов.
Конструкция. H₀ — нулевая гипотеза (эффекта нет), H₁ — альтернатива. Считаем статистику, получаем p-value.
Что такое p-value (формулировка, которую ждут): вероятность получить наблюдаемое или более экстремальное значение статистики при условии, что H₀ верна. Это НЕ вероятность того, что H₀ верна, и НЕ вероятность ошибки.
Ошибки:
- I рода (α) — отвергли верную H₀ (ложная тревога). Обычно α=0.05.
- II рода (β) — не отвергли ложную H₀ (пропустили эффект). Мощность = 1−β, целятся в 0.8.
Размер выборки растёт как n ∝ σ²/MDE²: чтобы найти эффект вдвое меньше, нужно вчетверо больше данных.
Доверительный интервал 95% — интервал, построенный процедурой, которая накрывает истинный параметр в 95% повторов эксперимента. Не «параметр лежит там с вероятностью 95%» (параметр — не случайная величина в частотном подходе).
Какие критерии знать:
| Ситуация | Критерий |
|---|---|
| Сравнить средние двух групп | t-тест Уэлча (не требует равных дисперсий) |
| Сравнить конверсии | z-тест пропорций, хи-квадрат |
| Ненормальные данные, малая выборка | Манна–Уитни, бутстрэп, перестановочный тест |
| Много групп сразу | ANOVA, затем поправки на множественность |
| Метрика-отношение (CTR = клики/показы) | Дельта-метод или бутстрэп по пользователям |
Множественная проверка. Проверяя 20 метрик при α=0.05, вы почти гарантированно получите одно «значимое» случайно (1−0.95²⁰ ≈ 64%). Лечится Бонферрони (α/m, консервативно) или Бенджамини–Хохберга (контроль FDR, мягче и практичнее).
Вопрос: p=0.049 и p=0.051 — принципиально разные результаты? — Нет, порог 0.05 условен. Правильный ответ: смотреть на размер эффекта и доверительный интервал, а не на бинарное «значимо/незначимо». Это ответ уровня senior.
8. A/B-тесты на практике
Важность на собеседовании: 8/10
████████░░🔥🔥🔥 Критично для продуктовых компаний (Авито, Ozon, Т-Банк, VK, Яндекс.Поиск), 🔥 для чисто ML-платформенных ролей. Копают глубоко: подглядывание, множественность, ratio-метрики, CUPED, сетевые эффекты. Даже LLM-фичу вас спросят «как раскатывал и как мерил» — это тот же A/B.
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| Подглядывание (peeking) и почему это ломает тест | 9/10 |
| Выбор метрики и guardrail-метрик | 9/10 |
| Расчёт мощности и длительности | 8/10 |
| SRM и A/A-тест | 8/10 |
| Ratio-метрики и дельта-метод | 7/10 |
| CUPED | 6/10 |
| Сетевые эффекты | 6/10 |
Пайплайн эксперимента:
- Гипотеза и одна основная метрика (OEC) + guardrail-метрики (не должны просесть: латентность, отписки, жалобы).
- Расчёт мощности → MDE и длительность (обычно ≥ 1–2 недели, чтобы покрыть недельную сезонность).
- Рандомизация — по пользователю, а не по сессии/запросу, иначе один человек попадёт в обе ветки.
- A/A-тест для проверки корректности сплитования.
- Анализ; при множестве метрик — поправка.
- Решение с учётом размера эффекта и стоимости раскатки.
Главные ловушки (их и спрашивают):
- Подглядывание (peeking). Смотреть p-value каждый день и остановиться на «значимом» → фактический α намного выше 5%. Лечение: фиксированная длительность или последовательные тесты (always-valid p-values, mSPRT), которые корректны при непрерывном мониторинге.
- SRM (Sample Ratio Mismatch). Ожидали 50/50, получили 52/48 — это баг сплитования, результат невалиден. Проверяется хи-квадратом. Первое, что смотрят на ревью эксперимента.
- Ratio-метрики. CTR = сумма кликов / сумма показов. Наблюдения внутри пользователя зависимы → обычная формула дисперсии занижает её. Нужен дельта-метод или бутстрэп по пользователям.
- Сетевые эффекты. В маркетплейсах и соцсетях группы влияют друг на друга (продавец в тесте забирает покупателей у контроля). Лечение: кластерная рандомизация (по городу, по категории), switchback-тесты.
- Новизна и «эффект новинки». Первую неделю метрика растёт просто потому, что интерфейс новый.
CUPED — снижение дисперсии через предэкспериментальные данные: Y_adj = Y − θ(X_pre − E[X_pre]), где θ = Cov(Y,X_pre)/Var(X_pre). Даёт снижение дисперсии на 20–50% при хорошей корреляции → тот же MDE за меньшее время. Знать концепцию обязательно, реализовывать с нуля не попросят.
Вопрос: Тест идёт 3 дня, p=0.04, менеджер требует раскатывать. Что скажете? — Что это подглядывание: при заранее рассчитанной длительности 14 дней остановка на 3-й день ломает контроль ошибки I рода. Варианты: досидеть до конца, либо изначально проектировать эксперимент как последовательный. Плюс 3 дня не покрывают недельную сезонность.
9. Оптимизация
Важность на собеседовании: 9/10
█████████░🔥🔥🔥 Критично. Градиентный спуск, learning rate, разница GD/SGD/Adam — на ML-базе спрашивают почти всегда. Копают средне-глубоко: объяснить механику, что будет при большом/малом LR, зачем momentum. Выпуклость спрашивают реже, но знать определение надо.
Разбивка по подтемам:
| Подтема | Балл |
|---|---|
| GD / SGD / mini-batch — разница | 9/10 |
| Learning rate: что при большом и малом | 9/10 |
| Adam и AdamW, зачем momentum | 8/10 |
| Warmup и клиппинг градиента | 7/10 |
| Выпуклость и локальные минимумы | 6/10 |
| Память под состояния оптимизатора | 6/10 |
Выпуклость. Функция выпукла, если отрезок между любыми двумя точками графика лежит не ниже графика (f''≥0 в 1D, H ⪰ 0 в общем случае). У выпуклой функции любой локальный минимум глобален. Выпуклы: линрег с MSE, логрег с CE, SVM, Ridge/Lasso. Не выпуклы: нейросети, k-means, деревья.
Градиентный спуск: w ← w − η∇L(w).
- Batch GD: градиент по всем данным. Точно, но
O(n)на шаг. - SGD: по одному объекту. Шумно, но шум помогает выбираться из плохих областей.
- Mini-batch SGD (стандарт): батч 32–512. Компромисс + эффективность на GPU.
Learning rate — самый важный гиперпараметр. Слишком большой → расходимость или осцилляции; слишком маленький → медленно и застревание. Практика: warmup (линейный рост первые ~5% шагов) + cosine decay. Для трансформеров warmup критичен — без него ранние шаги ломают LayerNorm-статистику и обучение расходится.
Оптимизаторы:
- Momentum:
v ← βv + ∇L; w ← w − ηv. Накапливает направление, гасит осцилляции в узких оврагах. - RMSProp: делит шаг на скользящее среднее квадратов градиента → адаптивный шаг на признак.
- Adam = momentum + RMSProp + коррекция смещения. Дефолт для NLP.
β₁=0.9, β₂=0.999, ε=1e-8. - AdamW — Adam с развязанным weight decay: L2 применяется прямо к весам, а не подмешивается в градиент. Для трансформеров это правильный выбор; обычный Adam с L2 работает хуже, потому что адаптивный знаменатель искажает силу регуляризации.
Память Adam: хранит 2 состояния на параметр. Для модели 7B в fp32 это ~84 ГБ только на оптимизатор — отсюда и мотивация LoRA/QLoRA.
Вопрос: Loss перестал падать и скачет. Что проверить? — По порядку: (1) LR слишком велик — снизить в 3–10 раз; (2) нет warmup; (3) нет градиентного клиппинга (clip_grad_norm_, обычно 1.0); (4) батч слишком мал → шумный градиент; (5) численная нестабильность в fp16 → перейти на bf16; (6) баг в данных (NaN, неверные метки).
10. Теория информации
Важность на собеседовании: 7/10
███████░░░🔥🔥 Часто. Кросс-энтропия и перплексия — обязательный минимум для NLP-роли, спросят почти наверняка. KL-дивергенцию спрашивают на средней глубине (в контексте DPO, дистилляции, дрейфа данных). Энтропию как таковую — реже.
Энтропия H(p) = −Σ p(x) log p(x) — средняя неопределённость / минимальное среднее число бит на символ. Максимальна у равномерного распределения.
Кросс-энтропия H(p,q) = −Σ p(x) log q(x) — сколько бит нужно, если кодировать истинное p с помощью модели q. Это и есть функция потерь классификации и языкового моделирования.
KL-дивергенция KL(p‖q) = H(p,q) − H(p) = Σ p log(p/q) — «лишние» биты из-за использования q вместо p. Всегда ≥ 0, ноль только при p=q. Несимметрична — это спрашивают.
KL(p‖q)(forward, mode-covering): штрафуетq≈0там, гдеp>0→qразмазывается на все моды.KL(q‖p)(reverse, mode-seeking): используется в вариационном выводе,qсхлопывается в одну моду.- В DPO и в дистилляции KL к референсной модели — регуляризатор, не дающий уйти далеко от исходной.
Перплексия PPL = exp(CE) — «средний размер эффективного словаря на позицию». PPL=1 — идеальная модель; PPL=|V| — случайная. Ключевая оговорка: перплексия несравнима между моделями с разными токенизаторами, потому что нормирована на токены, а не на символы. Это любимый уточняющий вопрос.
Взаимная информация I(X;Y) = H(X) − H(X|Y) — сколько знание Y снижает неопределённость X. Ловит нелинейные связи (в отличие от корреляции), используется в отборе признаков (mutual_info_classif).
Вопрос: Модель A имеет PPL 12, модель B — 15. A лучше? — Только если у них одинаковый токенизатор и один и тот же тестовый корпус. Иначе сравнение бессмысленно: модель с более крупными токенами при равном качестве покажет иную перплексию. Корректно сравнивать bits-per-character или качество на прикладных бенчмарках.
Часть 3 из 17 конспекта для подготовки к собеседованиям на NLP/LLM-разработчика. Остальные части — в разделе «Собесы».
Оставить отзыв
Комментарии
Загрузка комментариев...
★ Оставить отзыв