Главная · Вопросы на собеседовании · Обновлено
Вопросы на собеседовании ML-инженера
296 вопросов, которые задают на собеседованиях по машинному обучению, статистике, нейросетям, LLM, RAG и AI-агентам, — с короткими ответами и ссылкой на разбор темы. Собраны из плашек «На собеседовании» всех 74 тем учебника.
Как пользоваться: закрой ответ, ответь вслух за минуту, сравни. Тренажёр с таймером — в mock-интервью, карта пробелов по всем разделам — в диагностике.
- Основы машинного обучения · 72
- Статистика для ML · 12
- Нейронные сети · 32
- Языковые модели: от n-грамм до трансформера · 24
- LLM: обучение и инференс · 40
- Мультимодальные модели · 28
- Железо и развёртывание · 12
- Агенты и инструменты · 20
- RAG: поиск + генерация · 32
- Продакшн и качество · 24
Основы машинного обучения
Что такое машинное обучение
- «Чем ML отличается от классического программирования?» — правила не пишутся вручную, а выводятся из данных через оптимизацию параметров.
- «Приведи примеры задач для каждой парадигмы» — supervised: спам-фильтр, прогноз цены; unsupervised: сегментация клиентов, поиск аномалий; RL: игры, робототехника, RLHF.
- «Зачем отдельные validation и test?» — по валидации подбирают гиперпараметры, значит она «затёрта» этим подбором; тест нужен нетронутым для финальной оценки.
- «Классификация или регрессия?» — смотри на тип ответа: дискретный класс или непрерывное число. Вопрос-ловушка: предсказание вероятности клика — регрессия по форме, но решает задачу классификации.
Типы обучения: с учителем, без и с подкреплением
- «Чем self-supervised отличается от unsupervised?» — в self-supervised есть цель-метка, добытая из данных, и явный лосс предсказания; в unsupervised метки нет, есть только структура. Задачи вроде кластеризации — unsupervised; маскирование и next-token — self-supervised.
- «Почему LLM — это self-supervised?» — модель учат предсказывать следующий токен; «правильный ответ» — это сам текст, размечать людьми ничего не нужно, поэтому интернет становится бесплатной разметкой.
- «Что такое exploration/exploitation?» — дилемма RL: исследовать новые действия ради потенциально большей награды или использовать уже найденное хорошее.
- «Зачем transfer learning?» — переиспользовать выученные представления, чтобы обучаться на малых данных быстрее и точнее, чем с нуля.
Линейная регрессия
- «Почему MSE, а не MAE?» — квадрат дифференцируем и сильнее штрафует большие ошибки; MAE устойчивее к выбросам.
- «Когда нормальное уравнение, а когда градиентный спуск?» — аналитика хороша при малом числе признаков; спуск масштабируется на большие данные и стриминг.
- «Что будет при скоррелированных признаках?» — веса нестабильны, помогает регуляризация (L2/ridge) или отбор признаков.
- «Как модель отреагирует на выброс?» — сильно сдвинется из-за квадрата ошибки; проверь в интерактиве мысленно, куда утянула бы прямую точка высоко над остальными.
Градиентный спуск
- «Почему шаг делается против градиента?» — градиент указывает направление наискорейшего роста функции, а мы минимизируем.
- «Что будет при слишком большом/маленьком learning rate?» — расходимость или осцилляции / медленная сходимость и застревание. Идеальный ответ упоминает расписание (learning rate schedule): начать больше, к концу уменьшать.
- «Чем SGD лучше полного batch-градиента?» — шаг в тысячи раз дешевле, шум помогает исследовать поверхность; сходимость по числу шагов хуже, но по времени — быстрее.
- «Почему нельзя просто решить ∇L = 0 аналитически?» — для нейросетей замкнутой формы решения нет, уравнения нелинейны по миллиардам параметров.
Логистическая регрессия и классификация
- «Почему для классификации не годится линейная регрессия с порогом?» — выход не ограничен [0, 1], MSE неверно штрафует уверенные правильные ответы, далёкие точки двигают границу.
- «Почему кросс-энтропия, а не MSE?» — с сигмоидой MSE невыпукла и даёт исчезающие градиенты при уверенных ошибках; кросс-энтропия выпукла и сильно наказывает уверенные ошибки.
- «Граница логистической регрессии линейна или нет?» — линейна: σ монотонна, условие p = 0.5 эквивалентно w·x + b = 0. Нелинейность достигается добавлением признаков (x², произведения).
- «Как связаны сигмоида и softmax?» — softmax для двух классов вырождается в сигмоиду; сигмоида — частный случай.
Теорема Байеса и наивный Байес
- «Болезнь у 1%, тест точен на 95%, тест положительный — вероятность болезни?» — решай по шагам на 10 000 человек: 95 истинных срабатываний против 495 ложных → 95/590 ≈ 16%. Назови эффект: base rate neglect.
- «Чем генеративная модель отличается от дискриминативной?» — генеративная учит P(x|y)·P(y) и выводит ответ через Байеса (NB), дискриминативная сразу учит P(y|x) (логрег).
- «Зачем сглаживание Лапласа?» — без него слово, не встречавшееся в классе, даёт нулевую вероятность и зануляет всё произведение.
- «Почему считают в логарифмах?» — произведение сотен малых вероятностей уходит в underflow; сумма логарифмов численно стабильна.
Переобучение и регуляризация
- «Как отличить переобучение от недообучения?» — по паре ошибок train/val: большой разрыв — overfitting, обе высокие — underfitting.
- «Чем L1 отличается от L2?» — L1 зануляет веса и отбирает признаки, L2 равномерно уменьшает все веса; L2 гладкая и удобнее для оптимизации.
- «Что делать, если модель переобучилась?» — по нарастанию стоимости: регуляризация/early stopping → упростить модель → собрать больше данных.
- «Зачем k-fold, если есть train/val split?» — на малых данных один сплит шумный; усреднение по k фолдам даёт устойчивую оценку и позволяет честно подобрать гиперпараметры.
Bias–variance: разложение ошибки
- «Что такое bias-variance trade-off?» — ожидаемая ошибка = смещение² + разброс + шум; рост сложности снижает смещение, но раздувает разброс, оптимум — на дне U-кривой.
- «Переобучение — это высокий bias или variance?» — высокий variance (разброс): модель идеальна на трейне, но пляшет от выборки к выборке. Высокий bias — это недообучение.
- «Как ансамбли влияют на разложение?» — бэггинг/RF усредняют модели и снижают variance; бустинг наращивает точность и снижает bias.
- «Можно ли убрать шум σ²?» — нет, это неустранимый предел из-за случайности в самих данных; ниже него ошибка на новых данных не опустится.
Метрики качества
- «Классы 1:100, accuracy 0.99 — модель хорошая?» — нет: столько же даёт константа «все здоровы». Смотри precision/recall, PR-AUC.
- «Что произойдёт с precision и recall при повышении порога?» — precision обычно растёт, recall падает: ловим меньше, но увереннее.
- «Как объяснить AUC?» — вероятность, что случайный позитив отранжирован выше случайного негатива; про конкретный порог AUC ничего не говорит.
- «Какую метрику взять для X?» — начни с цены ошибок FP и FN в деньгах/рисках, потом называй метрику, а не наоборот.
Кросс-валидация и подбор гиперпараметров
- «Зачем нужна валидация, если есть тест?» — тест трогают один раз для честной итоговой оценки; подбор по тесту = утечка и завышенное качество. Гиперпараметры выбирают по валидации/CV.
- «Что такое nested CV и когда он нужен?» — внешний цикл честно оценивает пайплайн, внутренний подбирает гиперпараметры; нужен, чтобы оценка не была завышена самим фактом выбора лучшего варианта.
- «Grid search или random search?» — при малой размерности и дискретных значениях — grid; в многомерном пространстве, где важны лишь пара параметров, эффективнее random (Бергстра) или байесовская оптимизация.
- «Как кросс-валидировать временной ряд?» — только forward-chaining/walk-forward; случайные фолды дают утечку из будущего.
Деревья решений и ансамбли
- «Чем Random Forest отличается от бэггинга?» — плюс случайное подмножество признаков в каждом узле: деревья разнообразнее, корреляция между ними ниже.
- «RF или бустинг — что когда?» — RF: быстрый крепкий baseline, минимум тюнинга. Бустинг: максимум качества на табличке, но настраивай learning rate, глубину и early stopping.
- «Почему бустинг нельзя обучать параллельно по деревьям?» — каждое дерево зависит от ошибок предыдущих; параллелизм там внутри одного дерева.
- «Почему на таблицах бустинг бьёт нейросети?» — неоднородные признаки, категории, пропуски, малые и средние выборки — стихия деревьев; сетям нужно больше данных и подготовки.
SVM и kernel trick
- «Что такое опорные векторы?» — точки на краю улицы (или внутри неё при soft margin); только они определяют границу, удаление остальных её не меняет.
- «Объясни kernel trick словами» — данные неявно отображаются в пространство большой размерности, где становятся линейно разделимыми, а ядро дёшево считает там скалярные произведения, не строя само отображение.
- «Что делают C и gamma?» — C штрафует нарушения зазора (большой C → узкая улица, переобучение), gamma задаёт радиус влияния точки в RBF (большая gamma → островки вокруг точек, переобучение).
- «Почему SVM не берут на большие данные?» — матрица ядра n×n и обучение O(n²)–O(n³).
kNN и кластеризация
- «Почему kNN называют ленивым?» — нет фазы обучения: модель хранит выборку, вся работа в момент запроса; отсюда дорогое предсказание O(n).
- «Что будет с kNN без нормализации признаков?» — расстояние захватит признак с большим масштабом, остальные перестанут влиять.
- «Гарантирует ли k-means глобальный минимум?» — нет, только локальный; лечится k-means++ и несколькими перезапусками.
- «Кластеры в форме полумесяцев — что взять?» — не k-means (он для выпуклых сфер), а DBSCAN или спектральную кластеризацию.
EM-алгоритм и смеси гауссиан (GMM)
- «Чем GMM лучше k-means?» — мягкое отнесение (вероятности вместо жёстких меток) и эллиптические кластеры разной формы, наклона и размера за счёт полной ковариации; k-means — это его вырожденный частный случай.
- «Что делают E- и M-шаги?» — E при фиксированных параметрах считает ответственности (мягкие принадлежности), M при фиксированных ответственностях обновляет центры, ковариации и веса; каждый цикл не уменьшает правдоподобие.
- «Почему EM застревает в локальном оптимуме?» — правдоподобие невыпукло; EM монотонно его повышает, но лишь до ближайшего локального максимума, поэтому итог зависит от старта — спасают k-means++ и несколько запусков.
- «Как выбрать число компонент?» — не по правдоподобию (оно растёт с k), а по BIC/AIC со штрафом за сложность.
Снижение размерности и PCA
- «Что максимизирует PCA?» — дисперсию проекций; эквивалентно минимизирует среднеквадратичную ошибку линейной реконструкции.
- «Что такое главные компоненты математически?» — собственные векторы ковариационной матрицы; собственные значения — дисперсии вдоль них.
- «Зачем стандартизация перед PCA?» — без неё компоненты захватят признаки с крупными единицами измерения.
- «Можно ли верить расстояниям между кластерами на t-SNE?» — нет: метод сохраняет локальные окрестности, глобальная геометрия искажается.
Фичи и утечки данных (data leakage)
- «AUC 0.99 оффлайн, 0.6 в проде — что случилось?» — классика: утечка. Проверить фичи, заполняемые после события, схему сплита и предобработку до сплита.
- «Как сделать target encoding без утечки?» — out-of-fold: кодировку для строки считаем на фолдах без неё; плюс сглаживание для редких категорий.
- «Почему random split временных данных — обман?» — модель видит будущее: оффлайн-метрика завышена, в проде такой информации не будет.
- «Как ищете утечки на практике?» — аудит фичей по моменту появления, подозрительно важные фичи, сравнение метрики при сплите по времени и случайном.
Временные ряды и прогнозирование
- «Как валидировать модель прогноза продаж?» — только сплит по времени, лучше walk-forward: несколько последовательных отрезков «обучение на прошлом — проверка на будущем».
- «Почему naive-бейзлайн обязателен?» — он задаёт планку почти бесплатно; сложная модель, не бьющая seasonal naive, не даёт ценности.
- «Какие фичи нельзя брать?» — всё, что использует данные после момента предсказания: центрированные окна, агрегаты за «весь период», статистики, посчитанные по всему ряду до сплита.
- «Чем бы прогнозировали 10 000 рядов товаров?» — бустинг на лагах и календарных фичах: одна модель на все ряды, внешние признаки добавляются тривиально.
Обучение с подкреплением: Q-learning и PPO
- «Что такое Q-learning и уравнение Беллмана?» — Q(s,a) — ожидаемая отдача действия; уравнение Беллмана Q(s,a)=r+γ·max Q(s′,·) связывает её со следующим шагом; Q-learning подгоняет Q к этой цели обновлением Q ← Q+α·[r+γ·max Q(s′,·)−Q], off-policy (учится по max, а не по реально сделанному ходу).
- «Exploration vs exploitation?» — исследовать новое ради потенциально большей награды или использовать найденное лучшее; типичный компромисс — ε-жадность: с вероятностью ε ход наугад, иначе argmax.
- «Как RLHF связан с RL?» — это PPO против reward-модели с KL-штрафом: LLM-политика генерирует ответы, reward-модель их оценивает, PPO повышает награду, KL держит модель у reference.
- «Чем policy-методы отличаются от value-методов?» — value (Q-learning) учит ценность действий и берёт argmax; policy (REINFORCE, PPO) параметризует и двигает саму политику. Для LLM с огромным пространством действий работают именно policy-методы.
Статистика для ML
Выборка, ЦПТ и стандартная ошибка
- «Сформулируй ЦПТ» — среднее по выборке из n независимых наблюдений с конечной дисперсией распределено примерно нормально с центром μ и разбросом σ/√n, какой бы ни была форма исходного распределения.
- «Чем стандартная ошибка отличается от стандартного отклонения?» — SD про данные, SE про оценку; SE = SD/√n и уменьшается с ростом выборки.
- «Модель A дала 0,91, модель B — 0,92 на тесте из 500 примеров. Какая лучше?» — прикинь SE ≈ √(0,9·0,1/500) ≈ 1,3 п.п.: разница в 1 п.п. в пределах шума, нужен парный тест или больше данных.
- «Во сколько раз увеличить выборку, чтобы вдвое сузить разброс оценки?» — вчетверо, из-за корня в формуле.
Доверительные интервалы
- «Что значит 95-процентный доверительный интервал?» — при многократном повторении процедуры 95 % построенных интервалов накроют истинное значение; говорить «вероятность 95 %» про конкретный интервал некорректно.
- «Почему t-распределение, а не нормальное?» — σ оценена по выборке и сама случайна; t с n − 1 степенями свободы учитывает эту неопределённость, а при больших n сходится к z.
- «Как получить интервал для AUC или NDCG?» — бутстреп по тестовой выборке: ресэмплинг с возвращением, перцентили распределения метрики.
- «Как сузить интервал вдвое?» — вчетверо больше данных; снижение уровня доверия тоже сужает интервал, но ценой надёжности.
P-value и проверка гипотез
- «Что такое p-value?» — вероятность получить наблюдаемый или более экстремальный результат при верной H0; не вероятность, что H0 верна, и не вероятность ошибки.
- «Ошибки I и II рода — какая страшнее?» — зависит от цены: ложная тревога в медицинском скрининге дешевле пропуска, а ложное «модель лучше» стоит релиза; α выбирают под цену ошибок.
- «Как честно сравнить две модели на одном тесте?» — парный тест на одних и тех же примерах: McNemar или бутстреп разности; интервал для разницы, а не два отдельных.
- «Результат значим при p = 0,01, но эффект 0,01 %. Внедряем?» — статистическая значимость не равна практической: при большом n значимо всё, смотри размер эффекта и стоимость внедрения.
Нейронные сети
От нейрона к многослойному перцептрону
- «Почему перцептрон не решает XOR?» — его граница решения — гиперплоскость, а классы XOR линейно неразделимы; нужен скрытый слой, который перестраивает пространство признаков.
- «Что будет, если убрать активации из 10-слойной сети?» — произведение линейных отображений линейно, сеть эквивалентна одному линейному слою.
- «Что гарантирует теорема об универсальной аппроксимации?» — существование приближения непрерывной функции широким MLP; она не гарантирует ни разумный размер сети, ни то, что градиентный спуск эти веса найдёт.
- «Зачем bias?» — без него граница решения обязана проходить через начало координат.
Функции активации
- «Чем плоха sigmoid в скрытых слоях?» — насыщение (максимум производной 0.25 → затухающие градиенты) и нецентрированный выход (зигзаг спуска).
- «Что такое dead ReLU и как лечить?» — нейрон навсегда в нуле; Leaky ReLU/GELU, аккуратный learning rate, разумная инициализация.
- «Почему softmax — не обычная активация?» — она связывает все компоненты вектора: выход i зависит от всех логитов, сумма равна 1.
- «Что стоит в трансформерах?» — GELU/SiLU в FFN-блоках; softmax — в механизме внимания.
Обратное распространение ошибки
- «Объясни backprop одним предложением» — рекурсивное применение chain rule от лосса к весам с переиспользованием промежуточных значений; один backward стоит примерно как два forward.
- «Чем backprop отличается от SGD?» — backprop считает градиенты, оптимизатор делает шаг. Это два разных этапа цикла обучения.
- «Почему глубокие сети было трудно учить и что помогло?» — vanishing gradients; помогли ReLU, нормализация, инициализация и residual connections.
- «Зачем zero_grad() в PyTorch?» — градиенты по умолчанию накапливаются между вызовами backward, их нужно обнулять перед новым шагом.
Оптимизаторы: SGD, Momentum, Adam
- «Чем Adam отличается от SGD с momentum?» — Adam добавляет второй момент (среднее квадратов градиентов) и делит шаг на его корень: адаптивный масштаб на каждый параметр + bias correction.
- «Зачем в Adam bias correction?» — m и v инициализируются нулями и в первые шаги занижены; поправка 1/(1−βt) устраняет смещение.
- «В чём разница Adam и AdamW?» — weight decay применяется отдельно от градиента, а не через L2-штраф, который искажается адаптивной нормировкой.
- «Зачем warmup?» — защищает от разноса в первые шаги, пока статистики моментов не накопились.
Практика обучения: батчи, dropout, batchnorm
- «Почему нельзя инициализировать веса нулями?» — симметрия: одинаковые нейроны получают одинаковые градиенты и никогда не различатся.
- «Что делает dropout на инференсе?» — ничего: он выключен, а масштаб компенсирован делением на 1 − p при обучении.
- «Чем layer norm лучше batch norm для трансформеров?» — не зависит от размера батча и длины последовательности, нет бегущих статистик и различий train/eval.
- «Loss стал NaN на 50-м шаге — действия?» — уменьшить lr, включить warmup и gradient clipping, проверить данные на выбросы/нули в логарифмах.
Распознавание цифр из пикселей
- «Сколько параметров у линейного классификатора MNIST?» — 784×10 весов + 10 bias = 7850. Умение быстро посчитать параметры проверяют постоянно.
- «Что увидим, если визуализировать веса как картинки?» — размытые шаблоны цифр: положительные веса там, где обычно проходит штрих класса.
- «Почему softmax + кросс-энтропия, а не MSE?» — кросс-энтропия даёт сильный градиент при уверенной ошибке и правильно работает с вероятностями классов.
- «Зачем нормировать пиксели?» — единый масштаб входов ускоряет и стабилизирует градиентный спуск; сами предсказания идеальной модели от масштаба бы не изменились.
Свёрточные сети (CNN)
- «Посчитайте параметры свёрточного слоя» — (K·K·Cin + 1)·Cout: например, ядро 3×3, 3 входных и 16 выходных каналов → (9·3+1)·16 = 448. Сравните со 150M у полносвязного — эффектный аргумент.
- «Каким станет выход 16×16 после свёртки 3×3 без padding?» — 14×14: формула (N − K)/stride + 1.
- «Зачем pooling?» — уменьшить карты (дешевле), расширить receptive field, добавить устойчивость к мелким сдвигам.
- «Чем CNN лучше/хуже ViT?» — CNN: сильный inductive bias, хороши при малых данных и на слабом железе; ViT: гибче и лучше масштабируются на больших датасетах.
Рекуррентные сети (RNN, LSTM)
- «Напишите формулу шага RNN» — ht = tanh(W·xt + U·ht−1 + b); подчеркните, что W и U общие для всех шагов.
- «Почему градиенты затухают?» — при BPTT градиент умножается на якобиан перехода T раз; произведение множителей < 1 экспоненциально гаснет.
- «Зачем LSTM три вентиля?» — управляемые запись/стирание/чтение памяти; аддитивное обновление ячейки даёт градиенту «шоссе» сквозь время.
- «Почему трансформер победил?» — параллельное обучение по всей длине и прямой доступ к далёкому контексту вместо T последовательных переходов.
Языковые модели: от n-грамм до трансформера
Биграммы и n-граммы
- «Что такое языковая модель?» — распределение вероятностей следующего токена при заданном контексте; всё остальное — детали параметризации.
- «Почему нельзя просто увеличивать n?» — число контекстов растёт как Vn−1, почти все длинные контексты уникальны: таблица разрежена, счётчики ненадёжны.
- «Что такое перплексия?» — экспонента средней кросс-энтропии; интуитивно — среднее число вариантов, между которыми модель колеблется. Сравнима только при одинаковом токенизаторе и тесте.
- «Чем GPT отличается от n-граммы?» — задача та же, но распределение параметризовано нейросетью, которая обобщает на невиданные контексты вместо точного совпадения строк.
Токенизация и BPE
- «Почему подслова, а не слова или символы?» — словарь конечен, OOV исчезает, последовательности умеренной длины: компромисс между двумя крайностями.
- «Как BPE токенизирует слово, которого не было в корпусе?» — разбивает на символы и применяет выученные мерджи по порядку; в худшем случае слово остаётся набором символов/байтов.
- «Почему LLM ошибается, считая буквы в слове?» — слово для неё один-два токена, отдельные буквы не видны без явного разбиения.
- «На что влияет размер словаря?» — длина последовательностей против размера эмбеддинг-матрицы и качества редких токенов.
Эмбеддинги и word2vec
- «Чем плох one-hot?» — все слова равноудалены, смысла в геометрии нет, размерность равна словарю.
- «Почему „кот“ и „пёс“ близки, если рядом в тексте почти не встречаются?» — важна не совместная встречаемость, а похожесть контекстов: соседи у них общие.
- «Skip-gram против CBOW?» — skip-gram предсказывает соседей по слову (лучше для редких слов), CBOW — слово по соседям (быстрее).
- «Чем контекстные эмбеддинги лучше статических?» — многозначные слова получают разные векторы в зависимости от предложения.
Механизм внимания (attention)
- «Зачем делить на √d?» — без деления скоры растут с размерностью, softmax насыщается, градиенты почти нулевые. Проверь в интерактиве: маленький делитель ⇒ веса схлопываются в один токен.
- «Что такое Q, K, V своими словами?» — мягкий словарь: запрос, ключ, значение; ответ — взвешенная сумма значений по похожести запроса на ключи.
- «Почему в декодере нужна маска?» — при обучении «следующий токен» уже есть в данных; без маски модель читерит и не учится предсказывать.
- «Какая сложность у self-attention?» — O(n²·d) по времени и O(n²) по памяти на матрицу весов; отсюда FlashAttention, GQA, скользящие окна.
Архитектура трансформера
- «Нарисуйте блок трансформера» — attention и MLP, каждый в обёртке LN → подслой → сложение с входом (pre-norm). Обязательно проговори, что residual — это сложение, а не конкатенация.
- «Чем BERT отличается от GPT?» — маской и задачей: encoder без маски учится на восстановлении замаскированных токенов, decoder с маской — на предсказании следующего.
- «Почему трансформер вытеснил RNN?» — параллельное обучение по всей длине + прямой доступ к любому токену вместо затухающей памяти.
- «Где параметры?» — примерно ⅔ блока в MLP, ⅓ во внимании; плюс эмбеддинги, заметные у маленьких моделей и почти незаметные у больших.
Современные архитектуры: RoPE, MoE, GQA
- «Почему RoPE, а не learned embeddings?» — относительные позиции без параметров, лучшая экстраполяция по длине; вращение Q/K оставляет скалярное произведение зависимым только от сдвига.
- «Что уменьшает GQA и на что это влияет?» — KV-cache (и трафик памяти на декодинге), то есть скорость и стоимость инференса; качество почти не страдает.
- «MoE — в чём trade-off?» — знаний много при малых FLOPs на токен, но вся модель должна жить в памяти, плюс балансировка роутера и сложный шардинг.
- «Как модели тянут контекст 128k?» — RoPE-масштабирование, GQA против распухания кэша, FlashAttention против квадратичной памяти, иногда sliding window.
LLM: обучение и инференс
Претрейнинг и scaling laws
- «Почему претрейнинг называют self-supervised?» — метки не размечает человек: следующий токен и есть метка, поэтому годится весь текст мира.
- «В чём вывод Chinchilla?» — при фиксированном компьюте N и D растят вместе (~20 токенов на параметр); GPT-3 была недотренирована по данным.
- «Зачем дедупликация?» — повторы заставляют модель заучивать наизусть, искажают лосс и загрязняют бенчмарки, попавшие в трейн.
- «Почему base model не годится как ассистент?» — её цель — правдоподобно продолжить текст, а не выполнить просьбу; формат «полезного ответа» ей задают только на пост-обучении.
Fine-tuning: SFT, LoRA, PEFT
- «Промптинг, RAG или файнтюн?» — по порядку стоимости: сначала промпт и few-shot, для фактов — RAG, файнтюн — когда нужен стабильный стиль/формат/домен и есть данные и бюджет на оценку качества.
- «Как работает LoRA и почему она не замедляет инференс?» — ΔW = A·B ранга r учится отдельно, после обучения складывается с W — архитектура и латентность не меняются.
- «Сколько памяти на полный файнтюн 7B?» — ~16 байт на параметр с Adam и mixed precision: порядка 112 ГБ, отсюда и популярность PEFT.
- «Что такое catastrophic forgetting и как смягчить?» — потеря общих навыков при узком дообучении; помогают маленький learning rate, подмешивание общих данных, LoRA вместо полного FT.
Alignment: RLHF и DPO
- «Зачем KL-штраф в RLHF?» — RM несовершенна; без поводка политика находит её дыры (reward hacking) и вырождается. KL держит модель рядом с reference.
- «Чем DPO отличается от RLHF?» — та же цель (предпочтения + KL), но прямой supervised-лосс на парах: без отдельной RM, без PPO, без онлайн-генерации — проще и стабильнее.
- «Что такое sycophancy и откуда она?» — модель учится соглашаться с пользователем, потому что разметчики чаще предпочитают согласные ответы; это перекос данных предпочтений, а не «характер» модели.
- «Почему для математики и кода используют RLVR?» — награда проверяема (ответ сошёлся, тесты прошли), поэтому её нельзя выбить красивым, но неверным текстом.
Reasoning-модели и test-time compute
- «Чем reasoning-модель отличается от обычной с CoT-промптом?» — CoT-промпт лишь просит уже обученную модель писать шаги; reasoning-модель обучена через RL (RLVR) вырабатывать стратегии — декомпозицию, самопроверку, откат — и её рассуждение реально находит и чинит собственные ошибки.
- «Когда брать reasoning-модель, а когда обычную?» — по сложности задачи против цены и латентности: математика, код, планирование — да; извлечение, классификация, чат с требованием мгновенного ответа — нет.
- «Что такое RLVR и почему без разметчиков?» — RL с проверяемыми наградами: ответ задачи сверяется, код гоняется тестами; награда объективна, человеческие сравнения ответов не нужны.
- «Как ещё потратить test-time compute, кроме длинного рассуждения?» — параллельно: self-consistency (голосование N цепочек) и best-of-N с оценщиком.
Сэмплирование: temperature, top-k, top-p
- «Что делает температура математически?» — делит логиты до softmax: T < 1 обостряет распределение, T > 1 сглаживает, в пределах — argmax и равномерное.
- «Чем top-p лучше top-k?» — размер отсечки адаптируется к уверенности модели, а не фиксирован заранее.
- «Почему greedy вырождается?» — локально вероятный токен ≠ глобально хороший текст; типичный симптом — циклы повторов, лечится сэмплированием и штрафами.
- «Какие параметры поставишь для генерации SQL?» — низкая температура (≈0–0.2), можно top-p пониже; разнообразие тут вредно.
Инференс: KV-cache, квантизация, спекулятивный декодинг
- «Почему decode медленнее prefill?» — prefill параллелен по токенам и compute-bound; decode — по токену за шаг, упирается в трафик памяти (веса + кэш на каждый токен).
- «Что хранит KV-cache и сколько он весит?» — ключи и значения всех прошлых токенов по всем слоям и головам; размер линеен по длине контекста (≈0.5 МБ/токен у 7B в fp16).
- «Спекулятивный декодинг портит качество?» — нет: правило принятия сохраняет распределение большой модели, ускорение берётся из параллельной проверки.
- «Как оценивать сервинг?» — TTFT, tokens/s на запрос и суммарный throughput; continuous batching и PagedAttention повышают именно throughput.
Дистилляция и сжатие моделей
- «Чем дистилляция отличается от квантизации?» — квантизация сжимает числа той же модели (fp16 → int4), дистилляция переносит знание в другую, меньшую архитектуру через обучение на предсказаниях учителя; их комбинируют.
- «Зачем температура в дистилляции?» — размягчить softmax учителя: при T = 1 распределение почти one-hot, а при T = 3–5 видны отношения между классами — то самое dark knowledge.
- «Как перенести reasoning в маленькую модель?» — sequence-level дистилляция: учитель генерирует цепочки рассуждений, ученик дообучается на них SFT (так сделали дистилляты R1).
- «Может ли ученик превзойти учителя?» — на распределении учителя нет, это потолок; выигрыш — в цене и латентности, и на узком домене разрыв минимален.
Оценка LLM: бенчмарки и LLM-as-judge
- «Как поймёшь, что бенчмарк контаминирован?» — подозрительно высокий результат при слабости на свежих/перефразированных задачах того же типа; проверка n-грамм тренировочного корпуса.
- «Какие biases у LLM-судьи и как их ловить?» — position (прогон с перестановкой A/B), length (корреляция вердикта с длиной), self-preference (сравнить судей разных семейств).
- «Как оценивать LLM-фичу в проде?» — золотой сет из реальных запросов, рубрики, LLM-судья, калиброванный по людям, регрессионные прогоны на каждый релиз.
- «Модель А выиграла у B 6 из 10 сравнений — она лучше?» — нет, выборка ничтожна: доверительный интервал накрывает 50/50.
Работа с контекстом и разметка сообщений
- «Почему role-разметка важнее просто текста?» — роли задают приоритет и границы: модель обучена относиться к system как к правилам, а к user как к запросу; без ролей эта информация теряется.
- «Что такое chat template?» — формат оборачивания реплик спецтокенами (например, ChatML с <|im_start|>/<|im_end|>), размечающий границы ходов так, как модель видела при обучении.
- «Куда класть важное в длинном контексте?» — в начало и в конец: из-за эффекта lost in the middle середина используется хуже.
- «Чем контекст-инжиниринг шире промпт-инжиниринга?» — промпт про формулировку инструкции, контекст — про сборку и разметку всего входа: роли, порядок блоков, разделители, бюджет токенов.
Промпт-паттерны и structured outputs
- «Как добиться валидного JSON от LLM?» — лестница: просьба в промпте → few-shot с образцами → JSON mode провайдера → constrained decoding по схеме; только последний уровень даёт гарантию, потому что маскирует невалидные токены при сэмплировании.
- «Почему few-shot сильнее словесной инструкции?» — модель продолжает паттерны: примеры задают формат в том же виде, в каком его нужно воспроизвести, без перевода «слова → поведение».
- «Чем плох гигантский промпт на много задач?» — инструкции конкурируют и противоречат друг другу, ошибку нельзя локализовать, eval неинформативен; лечится декомпозицией на цепочку промптов.
- «Гарантирует ли схема правильные данные?» — нет: она гарантирует форму (парсинг, типы полей), а правильность значений проверяется только оценкой на эталонном наборе.
Мультимодальные модели
Как LLM видят изображения
- «Как картинка попадает в LLM?» — режется на патчи → каждый патч линейно проецируется в вектор (ViT) → проектор выравнивает векторы с пространством LLM → визуальные токены идут в последовательность вместе с текстовыми.
- «Что даёт CLIP-претрейн?» — контрастивное обучение на парах картинка–текст кладёт изображения и подписи в общее пространство: энкодер «знает смысл» картинки, работает zero-shot классификация.
- «Почему картинка дорогая по токенам?» — токенов N = (H/P)×(W/P): сотни на одну картинку, при tiling — тысячи; это и цена API, и съеденный контекст.
- «Почему VLM не читает мелкий текст?» — детали меньше патча теряются при кодировании; лечится повышением разрешения/tiling или связкой с OCR.
Звук: распознавание и синтез речи
- «Как звук попадает в нейросеть?» — волна → окна → спектры → мел-спектрограмма (картинка время×частота); современная альтернатива — дискретные аудиотокены через нейрокодек.
- «Что делает CTC-лосс?» — учит выравнивание кадров и букв без разметки границ: предсказание на каждый кадр, blank-токен, схлопывание повторов («ппр-и-ввв-е-т» → «привет»).
- «Что такое WER?» — (замены + удаления + вставки) / число слов эталона; главная метрика ASR, может превышать 100%.
- «Почему Whisper так хорош?» — масштаб данных (weak supervision на сотнях тысяч часов), а не хитрая архитектура.
Omni-модели: все модальности в одной
- «Чем omni отличается от LLM с адаптерами и от пайплайна ASR→LLM→TTS?» — пайплайн: три модели, задержки складываются, между ними ходит только текст. Адаптеры: энкодер + проектор к замороженной LLM, вход мультимодальный, выход текст. Omni: одна модель, претрейн на interleaved-токенах, мультимодальны и вход, и выход.
- «Почему голос GPT-4o быстрее и живее старого voice mode?» — старый был пайплайном из трёх моделей; omni слышит аудиотокены (интонация, паузы) и отвечает аудиотокенами напрямую — задержка в сотни мс вместо секунд.
- «Что такое early и late fusion?» — ранняя: модальности смешиваются в один поток токенов на входе одной модели; поздняя: отдельные модели на модальность, объединение в конце.
- «В чём главная сложность обучения omni?» — мало interleaved-данных, дорогой компьют и баланс смеси, чтобы не просело качество на чистом тексте.
OCR: от классики до распознавания через LLM
- «Спроектируй распознавание паспортов/чеков» — пайплайн: детекция документа и полей → распознавание (классика/CRNN для печатных полей) → валидация (контрольные цифры, форматы дат, справочники) → ручная проверка при низкой уверенности. VLM — для сложной вёрстки, но с обязательной валидацией.
- «Почему VLM-OCR опасен для критичных данных?» — галлюцинации: модель уверенно «дочитывает» нечитаемое, ошибку не видно без сверки с источником.
- «Чем CRNN+CTC лучше посимвольной сегментации?» — распознаёт строку целиком, не требуя резать её на буквы; слипшиеся символы перестают быть проблемой.
- «Когда достаточно Tesseract?» — чистые сканы печатного текста, большие объёмы, требования по цене/приватности (всё локально).
VAE и GAN: генерация до диффузии
- «Чем VAE отличается от автоэнкодера?» — энкодер предсказывает распределение (μ, σ), а не точку, плюс KL-штраф прижимает латент к N(0, 1): пространство гладкое, можно сэмплировать и интерполировать. У AE между кодами — «дыры».
- «Что такое mode collapse?» — генератор GAN выдаёт малое число похожих примеров на любые z: он нашёл, чем обмануть дискриминатора, и потерял разнообразие распределения.
- «Зачем reparameterization trick?» — z = μ + σ·ε выносит случайность в ε, чтобы градиент проходил через μ и σ; иначе через операцию «сэмплировать» бэкпроп не работает.
- «Где VAE и GAN используются сегодня?» — VAE — энкодер/декодер латента в Stable Diffusion; GAN — апскейлеры (ESRGAN) и состязательный лосс при дистилляции диффузии.
Диффузионные модели: как рисует Stable Diffusion
- «Что предсказывает диффузионная сеть?» — шум ε, подмешанный на шаге t (не картинку!); лосс — простой MSE между настоящим и предсказанным шумом.
- «Зачем латентная диффузия?» — расшумлять в латенте VAE в десятки раз дешевле, чем в пикселях; декодер VAE возвращает пиксели в самом конце.
- «Что делает classifier-free guidance?» — усиливает разницу между условным и безусловным предсказанием: выше w — точнее следование промпту, но перебор «пережаривает» картинку.
- «Почему диффузия победила GAN?» — стабильный MSE-лосс вместо минимакс-игры, нет mode collapse, качество и разнообразие выше; цена — много шагов, которую снижают DDIM и дистилляцией.
Видео-модели: генерация с временной согласованностью
- «Чем видео-генерация сложнее картиночной?» — добавляется ось времени: нужна temporal consistency (объекты сохраняют форму/цвет/траекторию), а число токенов = кадры × патчи — стоимость взлетает на порядки.
- «Как устроено пространственно-временное внимание?» — spatial attention связывает патчи внутри кадра, temporal — один участок сцены между кадрами; в Sora-классе латент видео режется на пространственно-временные «кубики»-токены для DiT.
- «Что такое world model?» — модель, предсказывающая развитие сцены («что будет, если»), — видео-модель как симулятор среды для планирования агентов и роботов.
- «Почему кадры нельзя генерировать независимо?» — каждый кадр — независимый сэмпл из распределения: детали (цвет, позиция, фон) выбираются заново → мерцание и телепортация объектов.
Железо и развёртывание
Видеокарты и VRAM: железо для нейросетей
- «Сколько VRAM нужно для 13B в 4 бита?» — веса ≈ 13 × 0.5 = 6.5 ГБ, плюс KV-cache и ~18% оверхеда: реально закладывают 8–10 ГБ, а на длинном контексте больше. Голая формула — веса; полный ответ — веса + кэш + оверхед.
- «Почему инференс упирается в пропускную способность памяти?» — на каждый токен через чип гонятся все веса и весь кэш; арифметики мало, байтов много, поэтому скорость определяет bandwidth VRAM, а не терафлопсы.
- «Зачем квантизация?» — она вдвое-вчетверо уменьшает и объём весов (модель влезает в карту), и трафик на токен (генерация ускоряется почти пропорционально), ценой малой потери качества.
- «Модель не влезает — что делать?» — по порядку: квантизация, затем offload слоёв в RAM (ценой скорости), затем тензорный/пайплайн-параллелизм на несколько GPU.
Распределённое обучение: DP, TP, PP и ZeRO
- «Модель 70B не влезает в A100 на 80 ГБ — что делать?» — по шагам: посчитать память (70B × 16 байт ≈ 1.1 ТБ на обучение), включить ZeRO-3/FSDP по достаточному числу карт, TP внутри узла, PP между узлами; для инференса хватит квантизации + TP.
- «Что такое pipeline bubble?» — простой стадий конвейера в начале и конце шага; лечится увеличением числа микробатчей (GPipe, 1F1B).
- «Чем TP отличается от PP?» — TP режет каждый слой поперёк, карты считают слой сообща и общаются на каждом слое (нужен NVLink); PP раздаёт разные слои разным картам и общается редко, но платит пузырём.
- «Что шардирует ZeRO по стадиям?» — 1: состояния оптимизатора; 2: + градиенты; 3: + сами веса (собираются all-gather на время вычисления слоя).
Локальные модели против SaaS и API
- «Когда self-hosted, а когда API?» — API для быстрого старта, малого/рваного объёма и доступа к frontier-качеству; self-hosted — при жёстких требованиях приватности, большом стабильном потоке и нужде в контроле/файнтюне.
- «Из чего складывается реальная стоимость локального решения?» — не только железо: плюс электричество, амортизация, зарплаты инженеров, ops и стоимость простоя; сравнивать надо TCO, а не цену карты.
- «Как найти точку перелома?» — приравнять линейную стоимость API (цена за токен × объём) к почти фиксированной стоимости своего/аренды; объём пересечения и есть порог, выше которого своё дешевле.
- «Как совместить приватность и frontier-качество?» — гибрид: приватные/простые запросы на локальной модели, сложные — в API; или self-hosted open-weight модель, если качества хватает.
Агенты и инструменты
Tool calling: как модель вызывает инструменты
- «Модель сама исполняет инструменты?» — нет, она генерирует структурированный запрос; исполнение — всегда на стороне вашего кода. Это главный вопрос-ловушка.
- «Как улучшить точность вызовов?» — меньше тулов, подробные описания «что и когда», строгие JSON-схемы, возврат ошибок валидации модели для повторной попытки.
- «Что такое MCP и зачем он?» — стандарт описания и подключения тулов: пишем сервер один раз, используем из любого клиента.
- «Чем tool calling отличается от JSON mode?» — обе механики про генерацию по схеме; tool calling добавляет цикл «вызов → исполнение → результат в контекст → продолжение».
Агентный цикл и критерий остановки
- «Чем агент отличается от пайплайна?» — в пайплайне последовательность шагов задана кодом заранее; агент сам выбирает следующий шаг и их количество по ситуации.
- «Как агент понимает, что пора остановиться?» — перечислите все четыре критерия и подчеркните: проверяемое условие успеха надёжнее самооценки модели.
- «Почему агенты ломаются на длинных задачах?» — компаундинг ошибок: 95% на шаг это лишь ≈36% на 20 шагов; лечится верификацией и короткими проверяемыми подзадачами.
- «Как отлаживать агента?» — читать траектории целиком, а не финальные ответы; искать зацикливания, потерянные наблюдения, неверный выбор тулов.
Память, планирование и мультиагентные системы
- «Контекст переполняется — что делать?» — компакция старой истории, вынос артефактов в файлы, выборочная подгрузка, делегирование объёмных подзадач субагентам.
- «Что такое lost in the middle?» — модель хуже использует информацию из середины длинного контекста; поэтому «напихать всё в окно» — не стратегия.
- «Главный плюс и главный минус мультиагентности?» — плюс: чистый контекст у каждого субагента и параллелизм; минус: потери на передаче, больше токенов, сложнее отладка.
- «Когда один агент лучше нескольких?» — короткая линейная задача или плотно связанные подзадачи с общим состоянием.
MCP: стандарт подключения инструментов
- «Зачем MCP, если есть function calling?» — главный вопрос. Ответ: разные уровни — function calling описывает, как модель просит вызвать тул, MCP — откуда тулы берутся и как доставляются в приложение.
- «Какую проблему решает MCP количественно?» — N приложений × M источников = N×M интеграций превращаются в N+M подключений к стандарту.
- «Какие риски у стороннего MCP-сервера?» — чужой код с полномочиями: supply chain, prompt injection через результаты тулов, избыточные права. Лечится наименьшими привилегиями и подтверждением опасных действий.
- «Что отдаёт MCP-сервер кроме тулов?» — resources (данные для контекста, читает приложение) и prompts (готовые шаблоны).
Оценка агентов: pass@k и траектории
- «Как оценивать агента для прода?» — автоматический task success + k прогонов: pass^k для надёжности, стоимость (шаги/токены), проверка опасных действий в траектории.
- «Почему pass@1 недостаточно?» — один прогон стохастичен; pass@1 не отличает стабильного агента от везучего, разрыв pass@1 ↔ pass@k показывает нестабильность.
- «Зачем песочница?» — воспроизводимость: фиксированное начальное состояние и изоляция от внешнего мира, иначе метрика флакает и результаты несравнимы.
- «Что не так со средним успехом 60%?» — возможна бимодальность и reward hacking; смотри распределение по задачам и читай траектории.
RAG: поиск + генерация
Что такое RAG и зачем он нужен
- «RAG или fine-tuning?» — знания vs навык: свежие/приватные факты — RAG; стиль, формат, доменное поведение — fine-tuning; часто комбинация.
- «Нарисуйте пайплайн RAG» — две фазы: индексация (документы → чанки → эмбеддинги → векторная БД) и запрос (эмбеддинг вопроса → топ-k → промпт → генерация).
- «Зачем RAG при окне в миллион токенов?» — масштаб корпуса, цена и латентность запроса, деградация внимания; поиск отбирает только нужное.
- «Как RAG влияет на галлюцинации?» — снижает и делает проверяемыми через цитаты, но не устраняет: мусор на входе — фантазия на выходе.
Векторный поиск и ANN-индексы
- «Косинус или евклид?» — на нормированных векторах ранжирование почти совпадает; важнее, с какой метрикой обучалась модель эмбеддингов и построен индекс.
- «Объясните HNSW на пальцах» — многослойный граф: сверху «хайвеи» для дальних прыжков, снизу «улицы» для точной доводки; жадный спуск по слоям.
- «Что крутить в IVF, если recall низкий?» — увеличить nprobe (медленнее, полнее) или число/качество центроидов; проверить случай запросов у границ ячеек.
- «Как ANN уживается с фильтрами по метаданным?» — пост-фильтрация может оставить меньше k результатов; нужен движок с фильтрацией внутри обхода индекса.
Векторные базы данных и их типы
- «Чем векторная БД отличается от реляционной?» — реляционная ищет точное совпадение по значению (равно/больше) и делает JOIN с ACID; векторная ищет семантическую близость через ANN-индекс. Разные вопросы — разные структуры данных.
- «Нужна ли отдельная векторная БД или хватит pgvector?» — если Postgres уже в стеке и векторов до ~1 млн, pgvector проще в эксплуатации: одна база, транзакции, бэкапы. Выделенный сервис — когда масштаб и нагрузка этого требуют.
- «Pre-filtering или post-filtering?» — пост-фильтр может выбить почти все результаты при строгом условии; пре-фильтр точнее, но дороже. В идеале — фильтрация внутри обхода индекса (filter-aware search).
- «Когда векторная БД вообще не нужна?» — на тысячах документов: numpy/FAISS в памяти, без отдельного сервиса.
Чанкинг и подготовка данных
- «Как выбрать размер чанка?» — это трейд-офф: крупнее — больше контекста, но размытый вектор; мельче — точный вектор, но потерянный смысл. Подбирается экспериментально по метрикам ретривера (см. оценку RAG).
- «Зачем overlap и чем он плох?» — спасает мысли на границах, но плодит дубли в индексе и выдаче.
- «Пользователи жалуются, что ответы обрываются на полуслове. Где искать?» — проверить границы чанков: скорее всего, ответ разрезан; лечится overlap или структурной нарезкой.
- «Что положить в метаданные?» — дату, источник, версию и права доступа; без ACL система небезопасна.
Гибридный поиск и реранкинг
- «Чем bi-encoder отличается от cross-encoder?» — раздельное кодирование (векторы предвычислены, поиск быстрый, точность ниже) против совместного чтения пары (точность выше, но O(N) инференсов — только для реранкинга топа).
- «Почему RRF, а не сумма скоров?» — скоры BM25 и косинус живут в несравнимых шкалах; RRF работает с рангами и не требует калибровки.
- «Когда чистого векторного поиска мало?» — точные термины: артикулы, коды ошибок, имена, аббревиатуры, номера статей.
- «Какую цену платим за реранкер?» — латентность и стоимость инференса; поэтому он применяется к топ-N, а не ко всей базе.
MMR и разнообразие выдачи
- «Что делает параметр λ в MMR?» — балансирует релевантность (λ→1, риск дублей в выдаче) и новизну/разнообразие (λ→0, риск нерелевантности); на практике λ ≈ 0.5–0.7.
- «Зачем разнообразие в RAG?» — топ-k по чистой близости часто набивает контекст near-дубликатами; MMR отдаёт LLM разные грани темы вместо копий одного тезиса.
- «Когда MMR вредит?» — на узких фактовых вопросах, где важна точность топ-1; тогда λ держат высоким или отключают MMR.
- «Чем MMR отличается от реранкера?» — реранкер уточняет релевантность каждого документа отдельно, MMR оптимизирует состав набора с учётом уже выбранного (marginal relevance).
Эмбеддинг-модели: как их обучают
- «Как дообучить эмбеддер под свой домен?» — пары запрос–документ из своих данных → майнинг hard negatives → контрастивный файнтюн с маленьким LR → переиндексация и замер recall@k на золотом сете. И проговори альтернативу: часто хватает реранкера.
- «Зачем hard negatives?» — случайные негативы слишком лёгкие, градиент по ним почти нулевой; hard negatives учат отличать похожее от релевантного.
- «Что такое матрёшка-эмбеддинги?» — обучение, при котором первые k координат — самостоятельный эмбеддинг: вектор режется под бюджет без переобучения.
- «Почему у E5 префиксы query:/passage:?» — асимметрия ролей: запрос и документ кодируются по-разному, модель должна знать, что перед ней.
Оценка качества RAG
- «Как оценить качество RAG-системы?» — раздельно: ретривер (recall@k, precision@k, MRR/nDCG на золотом сете) и генератор (faithfulness, answer relevance через LLM-as-judge).
- «Ответы плохие — что проверишь первым?» — retrieval: чаще всего нужного чанка просто нет в контексте.
- «Что будет, если сильно увеличить k?» — recall вырастет, но в контекст поедет мусор: faithfulness и точность ответов могут упасть, латентность и стоимость вырастут.
- «Какие проблемы у LLM-as-judge?» — предпочтение длинных ответов, позиционный bias, снисходительность к текстам похожего стиля; лечится калибровкой на человеческой разметке.
Продакшн и качество
Дизайн ML-систем на собеседовании
- «Спроектируйте антифрод» — начни с цены ошибок FP/FN и требования к латентности (реалтайм!), затем по фреймворку; метрика — precision/recall или PR-AUC, не accuracy.
- «Как валидировать модель оттока?» — сплит по времени: учимся на январе–июне, проверяем на июле; random split даст утечку.
- «Модель готова, что дальше?» — теневой запуск (shadow mode), A/B-тест на онлайн-метриках, мониторинг дрифта, план переобучения.
- «Почему сначала бейзлайн?» — точка отсчёта, проверка пайплайна данных и честный ответ на вопрос «а нужен ли здесь ML вообще».
Рекомендательные системы
- «Спроектируй ленту рекомендаций» — классика ML system design: двухэтапка retrieval → ranking, оффлайн/онлайн-метрики, план на холодный старт и фолбэк на популярное при отказе модели.
- «Что такое two-tower и причём тут ANN?» — раздельные энкодеры пользователя и объекта; векторы объектов предвычислены и лежат в ANN-индексе — retrieval за миллисекунды.
- «Как бороться с холодным стартом?» — контентные признаки для новых объектов, популярное и онбординг для новых пользователей, бандиты для разведки.
- «Оффлайн nDCG вырос — раскатываем?» — нет: оффлайн-метрика лишь гипотеза, решение принимает A/B-тест на онлайн-метриках.
Ранжирование: learning-to-rank
- «Чем LTR отличается от регрессии?» — регрессия минимизирует ошибку абсолютного значения по каждому объекту; LTR оптимизирует относительный порядок внутри запроса, и абсолютные скоры сами по себе не важны.
- «Что такое NDCG и зачем нормировка?» — DCG суммирует релевантность с дисконтом по позиции; нормировка на IDCG (идеальный порядок) загоняет метрику в [0,1] и делает её сравнимой между запросами с разным числом релевантных документов.
- «Pointwise vs pairwise vs listwise?» — pointwise предсказывает релевантность по одному документу и сортирует; pairwise учит порядок в паре (RankNet); listwise оптимизирует метрику всего списка (LambdaMART) и обычно даёт лучший NDCG.
- «Почему нельзя учить LTR на сырых кликах?» — position bias: верхнее кликают за позицию, модель закрепляет старый порядок; нужны IPW или модели клика.
Мониторинг и дрифт данных
- «Чем data drift отличается от concept drift?» — в первом случае сменилось распределение X при прежней связи X→y, во втором — сама связь; concept drift не всегда виден по входам.
- «Как мониторить модель, если лейблы приходят через полгода?» — прокси-сигналы: PSI/KL по фичам, распределение предсказаний, доля пропусков; лейблы подключаются к мониторингу ретроспективно.
- «PSI = 0.25 по ключевой фиче — ваши действия?» — сначала расследование (баг пайплайна? новый сегмент?), затем решение: чинить данные, переобучать или откатывать.
- «Как мониторить LLM-приложение без метрики качества?» — доля отказов, длина ответов, пользовательский фидбек, LLM-судья на сэмпле трафика.
A/B-тесты и продуктовые метрики
- «Что такое p-value?» — вероятность получить такой или более экстремальный результат при верной H0. Не вероятность, что H0 верна — за эту формулировку снимают баллы.
- «Оффлайн-метрика выросла, онлайн — нет. Почему?» — оффлайн-данные собраны под старой моделью, прокси-метрика ≠ бизнес-метрика, сдвиг поведения пользователей.
- «Почему нельзя останавливать тест при первом p < 0.05?» — peeking раздувает ошибку I рода; длительность фиксируется заранее.
- «Тест не показал значимости — эффекта нет?» — не обязательно: возможно, не хватило мощности. Смотрим доверительный интервал и расчёт размера выборки.
Безопасность: guardrails и prompt injection
- «Чем prompt injection отличается от jailbreak?» — при джейлбрейке модель атакует сам пользователь; при инъекции вредоносные инструкции спрятаны в данных (письмо, страница), а пользователь — жертва.
- «Как защитить агента с доступом к почте?» — слоями: фильтры входа/выхода, разметка границ данных, наименьшие привилегии, подтверждение внешних действий; и назвать «смертельную триаду».
- «Можно ли решить prompt injection системным промптом?» — нет: модель не различает инструкции и данные архитектурно; промпт снижает вероятность, но гарантию дают только ограничения полномочий.
- «Что такое эшелонированная оборона?» — несколько независимых слоёв, каждый ловит часть атак; расчёт на то, что пропущенное одним слоем поймает следующий.