Вопросы на собеседовании: MLOps-инженер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.
Смотреть пример резюме: MLOps-инженер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
MLOps представляет собой дисциплину надёжной разработки, развёртывания и эксплуатации систем машинного обучения.
- Она объединяет практики машинного обучения, программной инженерии и эксплуатации.
- Она превращает эксперименты в повторяемые пайплайны и готовые к развёртыванию артефакты моделей.
- Она добавляет версионирование, автоматизацию, тестирование, мониторинг и ответственность на всём жизненном цикле модели.
Зачем это спрашивают: Интервьюер проверяет, считаете ли вы MLOps эксплуатацией целых ML-систем, а не только развёртыванием моделей.
Жизненный цикл ML начинается с постановки задачи и подготовки данных, а затем включает обучение, развёртывание и эксплуатацию.
- Данные собирают, проверяют, преобразуют и разделяют для обучения и оценки.
- Модели-кандидаты обучают, оценивают по критериям приёмки и упаковывают.
- Одобренную модель развёртывают для пакетного или онлайн-инференса.
- Данные и качество в продакшене отслеживают, чтобы решать, когда нужны проверка или переобучение.
Зачем это спрашивают: Сильный ответ связывает разработку модели с продакшеном и обратной связью, которые должен поддерживать MLOps.
MLOps применяет принципы DevOps, но учитывает данные, эксперименты и модели как дополнительные изменяемые части системы.
- DevOps обычно сосредоточен на исходном коде, сборках приложений, релизах и инфраструктуре.
- В MLOps также нужно версионировать датасеты, признаки, параметры, метрики и артефакты моделей.
- Поведение ML зависит и от кода, и от данных, поэтому тесты должны проверять качество данных и модели.
- Помимо непрерывной интеграции и доставки, MLOps часто включает непрерывное обучение.
Зачем это спрашивают: Интервьюер ожидает ясного описания общих принципов автоматизации и особенностей, характерных для ML.
Одного исходного кода недостаточно для идентификации результата ML, потому что на него также влияют данные, конфигурация, зависимости и входы обучения.
- Один и тот же код может создать другую модель при изменении датасета или определений признаков.
- Гиперпараметры и случайные начальные значения могут изменить результат обучения без изменения кода.
- Версии библиотек и среды выполнения могут изменить предобработку или численные вычисления.
- Воспроизводимая версия модели должна связывать все эти входы с итоговым артефактом.
Зачем это спрашивают: Вопрос проверяет понимание того, что результат ML-модели зависит от большего числа факторов, чем обычная сборка приложения.
Непрерывная интеграция в ML автоматически проверяет каждое предложенное изменение до слияния с основной веткой.
- Она запускает проверки кода, например форматирование, модульные и интеграционные тесты.
- Она может проверять схемы, пропущенные значения, диапазоны и другие контракты данных.
- Она может выполнить небольшое тестовое обучение, чтобы подтвердить завершение пайплайна и получение ожидаемых результатов.
- Она быстро сообщает команде о проблемах без полного продакшен-обучения.
Зачем это спрашивают: Интервьюер проверяет, охватывает ли CI код и входы ML-пайплайна и не путаете ли вы его с полным переобучением или развёртыванием.
Непрерывная доставка готовит проверенный релиз модели к развёртыванию через контролируемый и повторяемый процесс.
- Пайплайн упаковывает модель с нужным кодом инференса и зависимостями.
- Автоматические проверки подтверждают качество модели, совместимость и наличие обязательных метаданных.
- Одобренный артефакт продвигают между средами, а не пересобирают по-разному на каждом этапе.
- Выпуск в продакшен может требовать ручного одобрения, даже если все предыдущие шаги автоматизированы.
Зачем это спрашивают: Сильный ответ отличает готовый к развёртыванию релиз модели от автоматической отправки каждой обученной модели в продакшен.
Непрерывное обучение представляет собой автоматизированный процесс переобучения и оценки модели при наступлении заданного триггера.
- Триггером может быть расписание, появление новых размеченных данных или отслеживаемый сигнал качества.
- Пайплайн повторяет подготовку данных, обучение, оценку и регистрацию модели.
- Новый кандидат должен пройти критерии приёмки, прежде чем сможет заменить текущую модель.
- Непрерывное обучение автоматически создаёт кандидатов, но не требует их автоматического продвижения в продакшен.
Зачем это спрашивают: Интервьюер оценивает, отделяет ли кандидат автоматическое переобучение от бесконтрольной замены модели.
CI проверяет изменения, CT создаёт подходящие модели-кандидаты, а CD упаковывает и продвигает одобренные релизы.
- CI защищает общую кодовую базу и определения пайплайнов до слияния изменений.
- CT повторно запускает обучение с заданными версиями данных и конфигурации.
- CD проводит один и тот же проверенный артефакт через этапы контроля в тестовой среде и продакшене.
- Вместе они обеспечивают трассируемость от изменения или триггера данных до развёрнутой версии модели.
Зачем это спрашивают: Вопрос проверяет, может ли кандидат назвать отдельное назначение каждого цикла автоматизации.
В системе контроля версий должны храниться текстовые определения, необходимые для ревью и повторной сборки ML-процесса.
- Храните код обучения, оценки, предобработки и инференса.
- Храните определения пайплайнов, тесты, описания окружения и небольшие конфигурационные файлы.
- Храните определения схем и ссылки или манифесты, идентифицирующие внешние датасеты и артефакты.
- Большие датасеты, бинарные файлы моделей, секреты и сгенерированные результаты храните в специализированных системах, а не в Git.
Зачем это спрашивают: Интервьюер проверяет, знает ли кандидат границу между удобными для ревью исходными файлами и крупными или конфиденциальными ресурсами.
Версионируемая конфигурация делает изменения поведения обучения явными и не прячет их в исходном коде.
- В конфигурации можно записать гиперпараметры, выбранные признаки, расположение данных и настройки ресурсов.
- Для запуска нужно сохранять фактически применённые значения, включая значения по умолчанию и переопределения.
- Сравнение версий конфигурации помогает понять изменения между экспериментами.
- Связь версии конфигурации с каждым запуском помогает воспроизводить и сравнивать результаты.
Зачем это спрашивают: Сильный ответ рассматривает конфигурацию как полноценный вход обучения, а не как незадокументированную локальную настройку.
Воспроизводимость означает возможность повторить записанный процесс в тех же заданных условиях и получить согласованный результат.
- Запуск должен определять код, данные, конфигурацию, зависимости и среду выполнения.
- Случайные начальные значения и детерминированные режимы нужно записывать там, где фреймворк их поддерживает.
- Итоговые метрики могут совпадать в пределах принятого допуска, а не побитово.
- Воспроизводимость помогает проверять, сравнивать, аудировать и надёжно обновлять модели.
Зачем это спрашивают: Интервьюер ожидает практическое определение на основе контролируемых входов и допустимого совпадения результатов.
Случайное начальное значение контролирует часть случайности, но само по себе не делает все этапы обучения детерминированными.
- Воркеры загрузки данных и параллельное выполнение могут использовать случайные операции в разном порядке.
- Некоторые GPU-ядра и численные библиотеки используют недетерминированные алгоритмы.
- Оборудование, драйверы и версии библиотек могут изменить результаты вычислений с плавающей точкой.
- Для воспроизводимости также нужны зафиксированные входы, сведения об окружении и доступные детерминированные настройки.
Зачем это спрашивают: Вопрос проверяет понимание пользы и ограничений случайных начальных значений.
Отслеживание экспериментов записывает входы, результаты и контекст запусков разработки моделей в доступной для поиска системе.
- К входам относятся ревизия кода, версия датасета, параметры и сведения об окружении.
- К результатам относятся метрики, графики, логи, контрольные точки и итоговые артефакты моделей.
- Запуски можно группировать и сравнивать, чтобы понять влияние изменений на результаты.
- Такие инструменты, как MLflow и Weights & Biases, предоставляют интерфейсы и API для отслеживания.
Зачем это спрашивают: Интервьюер проверяет, описывает ли кандидат отслеживание как структурированную историю запусков, а не список итоговых оценок.
MLflow Tracking объединяет связанную работу в эксперименты, а отдельные выполнения внутри них называет запусками.
- Параметры представляют собой входные настройки вроде скорости обучения или размера батча, которые обычно неизменны в рамках запуска.
- Метрики представляют собой числовые результаты вроде функции потерь или точности, которые можно многократно записывать на разных шагах.
- Артефакты представляют собой выходные файлы, например графики, отчёты, контрольные точки и сериализованные модели.
- Каждый запуск получает идентификатор, связывающий эти записи и метаданные выполнения.
Зачем это спрашивают: Сильный ответ правильно использует основные сущности MLflow Tracking и объясняет их связь.
Weights & Biases используют для отслеживания, сравнения и визуализации экспериментов машинного обучения и связанных артефактов.
- SDK записывает параметры, метрики, системные показатели, таблицы и медиафайлы из кода обучения.
- Дашборды помогают сравнивать запуски и изучать кривые обучения или использование ресурсов.
- Артефакты позволяют версионировать датасеты и модели с сохранением связей между ними.
- Общие проекты и отчёты делают результаты экспериментов доступными команде.
Зачем это спрашивают: Интервьюер проверяет практическое знание W&B как инструмента совместной работы и отслеживания, а не фреймворка обучения.
Для запуска обучения нужно записать достаточно информации, чтобы сравнить результат и проследить, как он был получен.
- Запишите ревизию кода, версию датасета, версию признаков или предобработки и итоговую конфигурацию.
- Запишите гиперпараметры, случайные начальные значения, версии зависимостей, оборудование и параметры среды выполнения.
- Запишите динамику метрик обучения и валидации, а также итоговые метрики оценки.
- Сохраните нужные логи, графики, контрольные точки и итоговый артефакт модели с идентификатором запуска.
Зачем это спрашивают: Интервьюер оценивает, сохраняет ли кандидат и результаты модели, и происхождение, необходимое для их объяснения.
Реестр моделей представляет собой каталог, который версионирует обученные модели и управляет сведениями для их контролируемого использования.
- Он связывает каждую версию модели с её артефактом, исходным запуском, метриками и метаданными.
- Команды могут записывать статус проверки, владельца, назначение и ссылки на развёртывания.
- Псевдонимы или стадии могут обозначать версии, одобренные для тестирования или продакшена.
- Такие системы, как MLflow Model Registry, отделяют продвижение модели от её обучения.
Зачем это спрашивают: Интервьюер проверяет понимание реестра как слоя управления и жизненного цикла, а не простого файлового хранилища.
Псевдоним или стадия дают системе развёртывания контролируемую логическую ссылку на одобренную версию модели.
- Имя вроде champion или production может одновременно указывать только на одну неизменяемую версию.
- При продвижении меняется ссылка, поэтому код инференса не нужно редактировать и пересобирать.
- Реестр сохраняет, какая версия использовала ссылку и когда она изменилась.
- Для отката псевдоним можно снова направить на ранее одобренную версию.
Зачем это спрашивают: Сильный ответ связывает логические ссылки с безопасным продвижением, трассируемостью и откатом.
Метаданные представляют собой структурированные сведения, описывающие ML-ресурсы, выполнения и связи между ними.
- Метаданные запуска могут включать время, владельца, ревизию кода, параметры и окружение.
- Метаданные датасета и модели могут включать версии, схемы, результаты оценки и назначение.
- Связи образуют происхождение от исходных данных через запуск обучения к зарегистрированной модели и развёртыванию.
- Метаданные позволяют искать, сравнивать, аудировать и воспроизводить ресурсы.
Зачем это спрашивают: Интервьюер проверяет, отличает ли кандидат описательные сведения о происхождении от самих файлов данных и моделей.
Управление артефактами обеспечивает хранение, версионирование и получение файлов, которые создают или используют ML-процессы.
- Артефактами могут быть датасеты, снимки признаков, контрольные точки, модели, отчёты об оценке и графики.
- Крупные файлы обычно хранятся в объектном хранилище, а системы отслеживания сохраняют их идентификаторы и метаданные.
- Неизменяемые версии и контрольные суммы помогают подтвердить, что получен ожидаемый артефакт.
- Контроль доступа, правила хранения и связи с запусками поддерживают безопасное и трассируемое повторное использование.
Зачем это спрашивают: Сильный ответ охватывает надёжное хранение и идентификацию, а также связь артефактов с создавшими их запусками.
Закрытые вопросы
- 21
Почему контейнеры полезны в MLOps?
containersmlops-practice - 22
Чем образ Docker отличается от контейнера?
dockercontainers - 23
Что определяет Dockerfile?
docker - 24
Что такое тег контейнерного образа и реестр образов?
containersregistries - 25
Как изоляция зависимостей повышает воспроизводимость ML-проектов?
reproducibilitydependencies - 26
Что означает оркестрация рабочих процессов в MLOps?
mlops-practiceorchestration - 27
Для чего Apache Airflow обычно используют в ML-пайплайне?
airflowci-cdpipelines - 28
Чем на базовом уровне различаются Airflow и Kubeflow Pipelines?
airflowci-cdkubeflow - 29
Чем Argo Workflows отличается от Airflow и Kubeflow Pipelines?
airflowci-cdkubeflow - 30
Что такое DAG в оркестраторе рабочих процессов?
orchestration - 31
Как связаны рабочий процесс, задача и зависимость между задачами?
schedulingdependencies - 32
Что означают повторные попытки в оркестрированном ML-процессе?
orchestration - 33
Что такое хранилище признаков и зачем оно нужно?
mlopsfeature-store - 34
Что такое Feast на базовом уровне?
feature-store - 35
Чем различаются офлайн- и онлайн-хранилища признаков?
- 36
Что означает версионирование данных в ML-проекте?
versioning - 37
Что означает версионирование моделей?
versioning - 38
Что такое происхождение данных и артефактов в ML-системе?
system-designlineage - 39
Что означает согласованность обучения и инференса?
consistencymodel-serving - 40
Чем различаются пакетный и онлайн-инференс модели?
batch - 41
Что такое потоковый инференс?
streaming - 42
Для чего используют NVIDIA Triton Inference Server?
serving-tools - 43
Какую роль FastAPI может выполнять в обслуживании моделей?
frameworksmodel-servingmlops - 44
Для чего используют BentoML?
serving-tools - 45
Что такое vLLM на базовом уровне?
serving-tools - 46
Что должен охватывать базовый мониторинг модели в продакшене?
mlopsmonitoring - 47
Что такое дрейф данных?
mlopsiacdrift - 48
Чем различаются дрейф концепции и дрейф предсказаний?
mlopsiacdrift - 49
Что такое train-serve skew?
train-serve-skew - 50
Чем Prometheus и Evidently различаются в базовом ML-мониторинге?
monitoring - 51
Задача обучения в Airflow остается в состоянии queued, хотя другие задачи выполняются; что вы проверите сначала?
airflowdata-structures - 52
Шаг обучения в Argo завершился со статусом OOMKilled; что вы предпримете?
resource-managementargo - 53
Пайплайн обучения упал после изменения типа исходного столбца с integer на string; что вы сделаете?
pipelinesschemaci-cd - 54
Ежедневный запуск обучения в Airflow начинается до появления последней партиции данных; как предотвратить обучение на неполных данных?
airflowpartitioningtest-data - 55
После изменения пайплайна признаков validation accuracy резко выросла; как вы проверите возможную утечку данных?
leakagevalidationci-cd - 56
Два запуска с одним коммитом обучения и датасетом дали разные метрики; что вы проверите?
monitoring - 57
Как сделать повторно запускаемую задачу обучения безопасной, если она записывает признаки и артефакты модели?
artifacts - 58
Обучение завершилось, но загрузка артефакта модели не удалась; должен ли пайплайн отметить запуск успешным?
ci-cdartifactspipelines - 59
Задача обучения на GPU выполняется в Airflow намного медленнее, чем в ноутбуке; как вы найдёте узкое место?
airflowtrackinggpu - 60
Вам нужно развернуть первую версию модели из MLflow в тестовом окружении; какую последовательность действий вы выберете?
deploymentexperiment-trackingtest-environments - 61
Как вы предоставите доступ к небольшой модели scikit-learn через FastAPI для первого внутреннего деплоя?
frameworksdeployment - 62
Triton запустился, но ваша модель недоступна; что вы изучите?
serving-tools - 63
Новый inference-под работает, но получает трафик до загрузки модели; как это исправить?
- 64
Офлайн-оценка прошла успешно, но развернутая модель возвращает явно неверные прогнозы; что вы сравните сначала?
deployment - 65
Сразу после первого rollout модели выросла доля ошибок; что вы сделаете?
- 66
Повторная попытка batch inference создает дубли прогнозов; как вы исправите пайплайн?
pipelinesbatchci-cd - 67
Задаче Airflow нужны учетные данные объектного хранилища для чтения обучающих данных; как вы их предоставите?
airflow - 68
Под с задачей обучения остается в состоянии pending, потому что ни один узел не удовлетворяет его запросу; как вы будете искать причину?
- 69
Вам нужно пересчитать семь дней пайплайна признаков в Airflow; как не навредить текущим запускам?
airflowci-cdbackfill - 70
Шаг предобработки в Argo завершился успешно, но шаг обучения не находит его результат; как вы проверите передачу данных?
argo - 71
Online-прогнозы используют устаревшие признаки Feast, хотя офлайн-данные обучения актуальны; что вы проверите?
feature-store - 72
После нескольких батчей loss при обучении становится NaN; как вы будете искать причину?
batch - 73
Docker-образ локально отдает прогнозы, но падает в Kubernetes; как вы сузите круг различий?
dockerkubernetes - 74
Inference-под за несколько часов потребляет всё больше памяти и в итоге перезапускается; как вы проведёте расследование?
consistencymemory - 75
Что вы подготовите при передаче нового пайплайна обучения в on-call ротацию?
pipelineson-callci-cd - 76
Новая модель прошла офлайн-проверки, но её нужно безопасно развернуть в inference-сервисе; какую стратегию вы выберете?
deployment - 77
Data scientist хочет проверить новую модель на production-запросах без влияния на пользователей; как вы это организуете?
decision-making - 78
Release job собирает inference-образ, но не может отправить его в container registry из-за ошибки permission denied; как вы найдёте причину?
containersregistries - 79
После обновления модели p95 latency inference выросла вдвое при прежней частоте запросов; как вы проведёте расследование?
latency - 80
В GPU inference-сервисе растёт очередь запросов, но GPU загружен лишь на 25 процентов; какие практические проверки вы выполните?
gpudata-structures - 81
Inference endpoint периодически возвращает ошибки при чтении онлайн-признаков из Feast; как вы найдёте причину?
feature-storeendpoints - 82
Вас попросили добавить базовый production-мониторинг новой онлайн-модели; что вы реализуете в первую очередь?
monitoring - 83
Каждое утро срабатывает drift-алерт из-за изменения регионального состава трафика; как сделать его полезным?
alertingiacdrift - 84
Production-метки приходят с задержкой в четыре недели, но команде нужно раннее предупреждение о возможном снижении качества модели; что вы будете отслеживать?
monitoring - 85
EvidentlyAI показывает сильный сдвиг двух важных признаков после изменения потока данных партнёром; что вы сделаете дальше?
- 86
Алерт по распределению прогнозов сработал одновременно с ростом latency и ошибок; как отличить drift от сбоя сервиса?
alertingiaclatency - 87
Тест упаковки модели проходит на вашем ноутбуке, но падает в CI из-за невозможности загрузить файл модели; как вы найдёте причину?
debugging - 88
Тест ML-пайплайна падает случайным образом из-за обращения к внешнему feature service; как сделать CI надёжным?
pipelinesci-cd - 89
Deployment job продвинул в production неправильную версию модели из MLflow; что вы измените после восстановления сервиса?
deploymentexperiment-tracking - 90
Коллега не может воспроизвести артефакт модели, созданный training-пайплайном; какие данные вы соберёте?
ci-cdartifactsdebugging - 91
Плановый DAG переобучения упал через час вычислений, выполнив половину работы; как безопасно его восстановить?
retraining - 92
Во время on-call приходит алерт о превышении целевого p99 latency inference; какими будут ваши первые действия?
on-calllatencyalerting - 93
Во время inference-инцидента data scientist просит подробно назвать корневую причину, пока сервис всё ещё деградирован; как вы ответите?
incidents - 94
После деплоя немного выросла доля ошибок, но пока неизвестно, виноват ли релиз; будете ли вы откатываться?
deploymentrollback - 95
Какой вклад вы внесёте в постмортем после неудачного rollout модели?
incidents - 96
Data scientist передаёт вам файл модели и просит развернуть его в production к завтрашнему дню; какую информацию вы запросите до начала работы?
deployment - 97
Data scientist считает drift-алерт безвредным и просит его отключить; как вы разрешите разногласие?
alertingiacconflict - 98
Data engineer планирует переименовать признак, используемый при обучении и serving, и изменить его тип; как вы скоординируете изменение?
model-serving - 99
Инженер просит обойти валидацию модели из-за близкого продуктового дедлайна; что вы сделаете?
estimationvalidation - 100
Пользователи сообщают о плохих предсказаниях, но платформенные метрики зелёные, а data scientist не может воспроизвести проблему; как вы организуете расследование?
debuggingmonitoring