Вопросы на собеседовании: ML-инженер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Middle.
Смотреть пример резюме: ML-инженер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Для квадратичной ошибки ожидаемую ошибку предсказания можно представить как сумму квадрата смещения, разброса и неустранимого шума.
- Смещение измеряет систематическую ошибку из-за слишком жестких предположений, например при линейной модели для сильно нелинейной зависимости.
- Разброс показывает, насколько изменилась бы обученная модель на другой выборке из той же генеральной совокупности.
- Увеличение гибкости модели часто снижает смещение, но повышает разброс, поэтому баланс выбирают по результатам валидации.
- Неустранимый шум возникает из-за случайности или недостающей информации, и его нельзя убрать усложнением модели.
Зачем это спрашивают: Интервьюер проверяет, умеете ли вы связывать сложность модели с составляющими ошибки на новых данных.
Эмпирический риск является средней ошибкой на наблюдаемых примерах, а ожидаемый риск средней ошибкой на неизвестном распределении данных.
- Обучение напрямую минимизирует эмпирический риск, потому что истинное распределение генеральной совокупности недоступно.
- Гибкая модель может снизить эмпирический риск, не снижая ожидаемый, если она подстраивается под шум конкретной выборки.
- Валидационные данные оценивают ожидаемый риск на новых наблюдениях из похожих условий.
- Регуляризация и ограничение емкости сужают множество решений при минимизации эмпирического риска.
Зачем это спрашивают: Сильный ответ объясняет, почему минимизация ошибки обучения не гарантирует хорошего обобщения.
L1 и L2 добавляют к ошибке на данных разные штрафы за веса и тем самым меняют предпочтительные для оптимизатора решения.
- L1 добавляет сумму абсолютных значений коэффициентов и имеет излом в нуле, поэтому некоторые коэффициенты могут стать строго нулевыми.
- L2 добавляет сумму квадратов коэффициентов и плавно уменьшает крупные веса, обычно не обнуляя их.
- Сила регуляризации задает компромисс между качеством подгонки и сложностью, поэтому ее выбирают по валидации.
- Признаки обычно сначала масштабируют, поскольку штраф напрямую зависит от величины коэффициентов.
Зачем это спрашивают: Интервьюер ожидает не только определения, но и понимание геометрии, требования к масштабу и влияния на веса.
Elastic net объединяет разреженность L1 со стабильностью L2 и полезен при большом числе коррелирующих признаков.
- Чистая L1 может непредсказуемо выбрать один признак из коррелирующей группы и отбросить остальные.
- Компонент L2 побуждает коррелирующие признаки более плавно входить в модель или выходить из нее группой.
- Компонент L1 по-прежнему может удалить слабые признаки и сделать модель компактной.
- Общую силу штрафа и соотношение L1 к L2 нужно настраивать по валидации.
Зачем это спрашивают: Сильный ответ связывает elastic net с коррелирующими признаками, а не описывает его только формулой.
Ранняя остановка ограничивает эффективную емкость модели, завершая оптимизацию до подгонки под шум обучающих данных.
- Ошибка обучения может продолжать снижаться после начала роста валидационной ошибки, что указывает на ухудшение обобщения.
- Лучшую контрольную точку выбирают по валидационной метрике с периодом ожидания, чтобы не реагировать на случайные колебания.
- Метод особенно распространен в бустинге и нейронных сетях, емкость которых растет с числом итераций.
- Валидационная выборка для остановки участвует в выборе модели и не должна одновременно быть итоговой тестовой выборкой.
Зачем это спрашивают: Интервьюер проверяет понимание эффекта регуляризации и корректной оценки при ранней остановке.
Dropout случайно обнуляет активации при обучении, чтобы сеть не зависела слишком сильно от отдельных путей.
- На каждом шаге обучения выбирается новая прореженная сеть, что мешает нейронам формировать хрупкие совместные зависимости.
- При инференсе используются все нейроны, а масштабирование сохраняет согласованные ожидаемые величины активаций.
- Более высокая доля dropout усиливает регуляризацию, но может вызвать недообучение при потере слишком большого объема сигнала.
- Dropout не всегда полезен в архитектурах с сильной нормализацией, аугментацией данных или очень большими датасетами.
Зачем это спрашивают: Сильный ответ охватывает поведение при обучении и инференсе, а также компромисс емкости модели.
Batch normalization стандартизует промежуточные активации по статистикам батча, а затем обучает масштаб и сдвиг.
- Она может упростить оптимизацию и позволить большую скорость обучения, поддерживая более удобный масштаб активаций.
- При обучении используются статистики мини-батча, а при инференсе накопленные скользящие статистики.
- Очень маленькие или нерепрезентативные батчи дают шумные оценки и снижают эффективность метода.
- Случайность статистик батча может немного регуляризовать модель, но нормализация прежде всего помогает оптимизации.
Зачем это спрашивают: Интервьюер проверяет, отличаете ли вы механику batch normalization при обучении и инференсе от упрощенных объяснений.
Калиброванный классификатор выдает вероятности, соответствующие наблюдаемой частоте исходов.
- Среди предсказаний около 0,8 при хорошей калибровке примерно 80 процентов объектов должны быть положительными.
- ROC-AUC может быть высоким даже при плохо откалиброванных вероятностях.
- Диаграммы надежности и Brier score помогают оценить калибровку в разных диапазонах вероятностей.
- Platt scaling или изотоническая регрессия могут откалибровать оценки на отложенных данных.
Зачем это спрашивают: Сильный ответ отделяет качество вероятностей от качества ранжирования и называет корректные способы оценки.
Порог классификации должен учитывать стоимость ошибок, долю классов и прикладную цель, а не автоматически равняться 0,5.
- Снижение порога обычно повышает recall, но увеличивает число ложноположительных ответов.
- Повышение порога обычно улучшает precision, но пропускает больше истинно положительных объектов.
- Порог выбирают на валидационных данных по метрике или функции стоимости, связанной с целевым решением.
- Калибровка вероятностей важна, когда порог представляет конкретный уровень риска или ожидаемой ценности.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы преобразовывать вероятностные оценки в решения с явными компромиссами.
Обе метрики являются строго правильными функциями оценки вероятностей, но по-разному штрафуют ошибки.
- Log loss использует отрицательный логарифм вероятности истинного класса и сильно штрафует уверенные ошибочные предсказания.
- Brier score является средней квадратичной ошибкой между предсказанными вероятностями и бинарными исходами.
- Обе метрики учитывают информацию, которую теряет accuracy при преобразовании вероятностей в жесткие метки.
- Результаты следует сравнивать с базовым прогнозом по доле классов и интерпретировать с учетом их баланса.
Зачем это спрашивают: Сильный ответ объясняет, почему вероятностные метрики дают иной сигнал, чем метрики по готовым классам.
Precision-recall кривая часто информативнее при редком положительном классе, когда основное внимание уделяется качеству положительных ответов.
- В ROC используется false positive rate, в знаменателе которого много отрицательных объектов, поэтому при сильном дисбалансе качество может выглядеть завышенным.
- Precision напрямую показывает долю верных положительных предсказаний и тем самым раскрывает нагрузку от ложных срабатываний.
- Recall показывает, какая доля положительного класса найдена при изменении порога.
- PR-AUC зависит от доли положительного класса, поэтому сравниваемые датасеты должны иметь сопоставимые распределения классов.
Зачем это спрашивают: Интервьюер проверяет, понимаете ли вы влияние доли классов на интерпретацию метрик.
Macro-, micro- и weighted-усреднение объединяют результаты по классам с разными приоритетами.
- Macro-усреднение дает каждому классу одинаковый вес, поэтому редкие классы влияют на результат наравне с частыми.
- Micro-усреднение сначала объединяет все решения и тем самым сильнее учитывает частые классы.
- Weighted-усреднение взвешивает метрику каждого класса по числу объектов и может скрыть слабое качество редких классов.
- Выбор зависит от того, должны ли результат определять классы, отдельные объекты или наблюдаемая доля классов.
Зачем это спрашивают: Сильный ответ выбирает способ усреднения исходя из смысла продуктовой цели.
Число блоков и зависимость между разбиениями во многом определяют смещение, разброс и стоимость оценки кросс-валидации.
- Большее число блоков обучает модель на большей доле данных, снижая пессимистичное смещение, но увеличивая вычисления.
- Оценки блоков коррелируют из-за пересечения обучающих выборок, поэтому их стандартное отклонение не является простым доверительным интервалом.
- Повторная кросс-валидация показывает чувствительность к случайному разбиению, но не исправляет неверную стратегию разделения.
- Учет групп, времени или стратификации важнее выбора привычного значения k.
Зачем это спрашивают: Интервьюер ожидает рассуждение о смысле оценки кросс-валидации, а не только описание процедуры k-fold.
Вложенная кросс-валидация отделяет подбор гиперпараметров от оценки качества при ограниченном объеме данных.
- Внутренний цикл настраивает гиперпараметры только на обучающей части внешнего цикла.
- Внешний цикл оценивает всю процедуру выбора на данных, которых не касался внутренний цикл.
- Лучший результат внутреннего цикла оптимистично смещен, потому что сравнивалось много конфигураций.
- Вложенная схема требует намного больше вычислений, но дает более чистую оценку перед итоговым переобучением.
Зачем это спрашивают: Сильный ответ называет смещение выбора модели и объясняет, как два цикла его предотвращают.
Групповая кросс-валидация нужна, когда наблюдения одной сущности зависимы и должны оставаться в одном блоке.
- Строки одного пользователя, пациента, устройства или источника документов могут содержать общие паттерны, которые модель способна запомнить.
- Случайное разделение строк переносит эти паттерны сущности одновременно в обучение и валидацию.
- GroupKFold целиком оставляет каждую группу на одной стороне разбиения и по очереди откладывает разные группы.
- Стратифицированные групповые методы нужны, когда одновременно важны изоляция групп и баланс классов.
Зачем это спрашивают: Интервьюер проверяет, замечаете ли вы зависимости между строками, делающие обычное случайное разбиение некорректным.
Walk-forward валидация сохраняет временной порядок, обучаясь на прошлом и оцениваясь на более позднем интервале.
- Расширяющееся окно сохраняет все ранние наблюдения, а скользящее окно только фиксированный объем недавней истории.
- Несколько точек разделения показывают изменение качества в разных рыночных, сезонных или поведенческих периодах.
- Каждый признак, целевая переменная и статистика предобработки должны быть доступны на момент исторического предсказания.
- Случайные блоки неприемлемы, если будущие наблюдения раскрывают информацию о более ранних.
Зачем это спрашивают: Сильный ответ связывает механику временной валидации с доступностью данных на конкретный момент.
Предобработка создает утечку, если преобразование обучается на валидационных строках до их оценки.
- Масштабирование по всему датасету раскрывает обучению средние и дисперсии валидационной части.
- Заполнение пропусков, отбор признаков, PCA и target encoding могут дать такую же утечку.
- Каждое преобразование обучают внутри обучающей части блока и только применяют к его валидационной части.
- Pipeline в scikit-learn обеспечивает этот порядок при передаче в кросс-валидацию или поиск гиперпараметров.
Зачем это спрашивают: Интервьюер проверяет, считаете ли вы предобработку обучаемым состоянием модели, а не безобидным предварительным шагом.
MCAR, MAR и MNAR описывают, от чего зависит вероятность отсутствия значения.
- MCAR означает независимость пропуска от наблюдаемых и ненаблюдаемых значений, что является сильным и редким предположением.
- MAR означает, что пропуск можно объяснить другими наблюдаемыми переменными, поэтому условное заполнение лучше обосновано.
- MNAR означает зависимость пропуска от самого отсутствующего значения или другой ненаблюдаемой причины.
- Ни один метод заполнения не может полностью устранить MNAR только по наблюдаемой таблице без допущений или дополнительных данных.
Зачем это спрашивают: Сильный ответ связывает предположения о пропусках с ограничениями методов заполнения, а не просто перечисляет аббревиатуры.
Target encoding заменяет категорию статистикой целевой переменной, давая компактный сигнал, но создавая серьезный риск утечки.
- Оценки редких категорий нестабильны, поэтому сглаживание к глобальному среднему снижает разброс.
- Для обучающих строк нужны out-of-fold или leave-one-out значения, чтобы собственная цель строки не определяла ее признак.
- Для неизвестных категорий нужен запасной вариант, например глобальное среднее или обученный априорный уровень.
- Кодирование нужно пересчитывать внутри каждого валидационного разбиения и с учетом времени для временных данных.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы извлекать сигнал из высокой кардинальности без утечки меток.
Признаки взаимодействий и полиномиальные признаки позволяют простой модели представлять зависимости сложнее независимых линейных эффектов.
- Взаимодействие позволяет эффекту одного признака зависеть от значения другого.
- Полиномиальные члены приближают криволинейные зависимости, сохраняя линейный оценщик в расширенном пространстве признаков.
- Расширение быстро увеличивает размерность, мультиколлинеарность, разброс и вычислительную стоимость.
- Масштабирование, регуляризация и отбор на основе предметной области удерживают представление управляемым.
Зачем это спрашивают: Сильный ответ объясняет и дополнительную выразительность, и ее статистическую цену.
Закрытые вопросы
- 21
Чем отличаются фильтрующие, оберточные и встроенные методы отбора признаков?
feature-engineering - 22
Как PCA получает главные компоненты?
components - 23
Что такое проклятие размерности?
dimensionality - 24
Какие предположения важны для интерпретации коэффициентов линейной регрессии?
regression - 25
Как в логистической регрессии возникают шансы и граница решений?
regression - 26
Как дерево решений выбирает разбиение?
trees - 27
Как предварительная и последующая обрезка регулируют сложность дерева решений?
model-compressionalgorithms - 28
Почему бэггинг снижает разброс?
dispersion - 29
Как случайный лес декоррелирует деревья и что такое out-of-bag оценка?
ensembles - 30
Как градиентный бустинг связан с подгонкой остатков и градиентов функции потерь?
boosting - 31
Какие механизмы регуляризации предоставляет XGBoost?
boostingregularization - 32
Чем рост LightGBM по листьям отличается от роста дерева по уровням?
gradient-boosting - 33
Как стекинг и блендинг объединяют модели без утечки?
ensemblesleakage - 34
Почему разнообразие важно для ансамбля?
ensembles - 35
Как параметры C и gamma влияют на SVM с RBF-ядром?
svm - 36
Каковы основные преимущества и ограничения метода k ближайших соседей?
knn - 37
Чем отличаются Gaussian, multinomial и Bernoulli naive Bayes?
bayesian - 38
Какие предположения и ограничения есть у кластеризации k-средних?
clustering - 39
Чем гауссова смесь отличается от k-средних?
clustering - 40
Как DBSCAN находит кластеры и каковы его ограничения?
clustering - 41
Как Pipeline и ColumnTransformer в scikit-learn обеспечивают надежную обработку признаков?
schemaconcurrencyci-cd - 42
Какой контракт должен соблюдать обученный преобразователь признаков?
nlp - 43
Чем концептуально отличаются пакетные и потоковые пайплайны признаков?
streamingbatchci-cd - 44
Почему при построении обучающих признаков критична корректность на конкретный момент времени?
point-in-time - 45
Что должны определять контракты данных и признаков в ML-пайплайне?
ci-cd - 46
Что нужно сохранить для воспроизводимости ML-эксперимента?
reproducibilityexperiments - 47
Как автоматическое дифференцирование вычисляет градиенты в PyTorch или TensorFlow?
competitivepytorch - 48
Чем SGD с моментом отличается от Adam?
optimization - 49
Почему градиенты затухают или взрываются и как помогают инициализация и архитектура?
architecture - 50
Как сравнить линейные модели, ансамбли деревьев и нейронные сети для табличных данных?
neural-netsensembles - 51
Loss модели на PyTorch рано выходит на плато и остается высоким. Как вы будете искать причину?
pytorch - 52
После нескольких тысяч шагов обучения loss иногда становится NaN. Как вы найдете причину?
- 53
Модель хорошо работает на случайной валидации, но плохо на данных за последний месяц. Как вы это исследуете?
validation - 54
После добавления сильной регуляризации качество упало и на обучении, и на валидации. Что вы сделаете?
regularizationvalidation - 55
Validation loss сильно меняется между эпохами, хотя training loss остается плавным. Как вы это диагностируете?
validation - 56
Как предотвратить point-in-time leakage при построении признаков из feature store?
leakagepoint-in-timemlops - 57
Метки появляются через несколько недель и иногда обновляются задним числом. Как построить надежные обучающие данные?
backfill - 58
У вас есть миллионы слабых меток от эвристик и небольшая экспертная разметка. Как вы их используете?
weak-supervision - 59
В середине года бизнес меняет определение положительной метки. Как вы поступите с существующими моделями и датасетами?
- 60
Обучающие данные получены от пользователей, которые включили функцию, но модель будет работать для всех. Что вы сделаете?
- 61
Одна сущность может встречаться через несколько аккаунтов и устройств. Как проверить утечку между выборками?
leakage - 62
Команда антифрода может проверять только 500 сигналов в день. Как вы будете обучать и оценивать модель?
decision-makingalerting - 63
Рисковая модель хорошо ранжирует случаи, но плохо калибрует вероятности. Как вы это исправите?
calibration - 64
Как вы выберете офлайн-метрики для рекомендательной модели, которая показывает десять объектов?
monitoring - 65
Занижение времени доставки обходится дороже, чем завышение. Как вы будете моделировать и оценивать такую задачу?
decision-making - 66
Более точную модель сложно объяснить, и она не выполняет требование по задержке. Как выбрать между ней и простой моделью?
latency - 67
Как для новой задачи классификации табличных данных выбрать между градиентным бустингом и нейросетью?
boostingneural-netsclassification - 68
Ансамбль повышает AUC на 0,3 процентного пункта, но утраивает стоимость сервинга. Вы его внедрите?
evaluationensemblesdeployment - 69
Как вы проверите модель прогнозирования спроса перед заменой текущей модели?
validation - 70
Общее качество на валидации стабильно, но резко ухудшилось для одного сегмента клиентов. Что вы сделаете?
validationperformance - 71
После маркетинговой кампании распределения продакшен-признаков изменились. Как решить, нужно ли переобучать модель?
retrainingdistributions - 72
Сработал алерт дрифта признака, но качество модели остается стабильным. Как вы отреагируете?
alertingiac - 73
Качество модели падает, но распределения отслеживаемых входных данных не изменились. Что вы будете исследовать?
distributionsmonitoring - 74
Как вы будете мониторить новую модель, если истинные метки появятся только через два месяца?
monitoring - 75
Задержанные метки присоединяются к предсказаниям, но метрика меняется при каждом обновлении дашборда. Как это исправить?
monitoring - 76
Как выбрать между переобучением по расписанию и переобучением по событию?
retraining - 77
Какие проверки должна пройти автоматически переобученная модель перед заменой продакшен-версии?
retraining - 78
Часовой пайплайн признаков иногда опаздывает, поэтому онлайн-модель получает устаревшие значения. Как вы поступите?
ci-cd - 79
Один артефакт модели дает разные оценки в пакетном обучающем коде и онлайн-сервисе. Как найти training-serving skew?
batchmodel-servingartifacts - 80
Как проверить согласованность значений в офлайн- и онлайн-частях feature store?
consistency - 81
Airflow DAG обучения перезапускается после записи половины результатов. Как предотвратить поврежденные или дублированные артефакты?
airflowartifacts - 82
Spark-задача расчета признаков работает медленно, часть executors падает по памяти, а большинство быстро завершается. Как вы это диагностируете?
memoryspark - 83
Kafka-события для онлайн-признаков могут опаздывать, приходить не по порядку или дублироваться. Как обеспечить надежность признаков?
kafka - 84
После релиза модели выросла задержка предсказаний, но загрузка CPU выглядит нормально. Как вы будете искать причину?
latency - 85
После конвертации модели PyTorch в ONNX Runtime небольшая доля предсказаний сильно изменилась. Что вы сделаете?
serving-runtimespytorch - 86
Как спроектировать canary-релиз новой real-time модели?
designdeployment-strategies - 87
Когда вы примените теневой деплой и что будете измерять?
deployment - 88
Новая модель требует изменения схемы признаков. Как сохранить совместимость для отката?
schemarollback - 89
Как спроектировать A/B-тест новой модели ранжирования?
ab-testingdesign - 90
A/B-тест улучшает главную метрику в среднем, но ухудшает результат для новых пользователей. Что вы порекомендуете?
ab-testingmonitoring - 91
Онлайн-прирост велик в первую неделю и исчезает во вторую. Как вы это проанализируете?
ab-testing - 92
Модель-кандидат выигрывает офлайн, но проигрывает baseline в онлайне. Как сократить offline-online gap?
offline-online - 93
Рекомендательная модель обучается только на объектах, показанных предыдущей моделью. Как работать с таким feedback loop?
feedback - 94
Решения рисковой модели меняют метки, которые позже используются для переобучения. Как предотвратить самоподкрепляющееся смещение?
retraining - 95
Продакшен-оценки внезапно схлопнулись почти в одно постоянное значение. Как вы проведете инцидент?
incidents - 96
Модель сделала уверенное предсказание, которое эксперт предметной области считает явно неверным. Как вы это исследуете?
- 97
Продукт хочет оптимизировать CTR, а trust-команда беспокоится о вредных рекомендациях. Как определить успех?
optimization - 98
У вас есть неделя на улучшение модели. Как выбрать между сбором лучших данных и настройкой модели?
- 99
Коллега сообщает о большом улучшении модели в pull request. Что вы проверите перед одобрением?
code-review - 100
Как вы проведете постмортем после инцидента с качеством модели?
incidents