Skip to content

Вопросы на собеседовании: MLOps-инженер

100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.

Смотреть пример резюме: MLOps-инженер

Тренировка флешкарточками

Интервальное повторение · Hunter Pass

Вопросы

mlops-practice

MLOps представляет собой дисциплину надёжной разработки, развёртывания и эксплуатации систем машинного обучения.

  • Она объединяет практики машинного обучения, программной инженерии и эксплуатации.
  • Она превращает эксперименты в повторяемые пайплайны и готовые к развёртыванию артефакты моделей.
  • Она добавляет версионирование, автоматизацию, тестирование, мониторинг и ответственность на всём жизненном цикле модели.

Зачем это спрашивают: Интервьюер проверяет, считаете ли вы MLOps эксплуатацией целых ML-систем, а не только развёртыванием моделей.

ml

Жизненный цикл ML начинается с постановки задачи и подготовки данных, а затем включает обучение, развёртывание и эксплуатацию.

  • Данные собирают, проверяют, преобразуют и разделяют для обучения и оценки.
  • Модели-кандидаты обучают, оценивают по критериям приёмки и упаковывают.
  • Одобренную модель развёртывают для пакетного или онлайн-инференса.
  • Данные и качество в продакшене отслеживают, чтобы решать, когда нужны проверка или переобучение.

Зачем это спрашивают: Сильный ответ связывает разработку модели с продакшеном и обратной связью, которые должен поддерживать MLOps.

mlops-practice

MLOps применяет принципы DevOps, но учитывает данные, эксперименты и модели как дополнительные изменяемые части системы.

  • DevOps обычно сосредоточен на исходном коде, сборках приложений, релизах и инфраструктуре.
  • В MLOps также нужно версионировать датасеты, признаки, параметры, метрики и артефакты моделей.
  • Поведение ML зависит и от кода, и от данных, поэтому тесты должны проверять качество данных и модели.
  • Помимо непрерывной интеграции и доставки, MLOps часто включает непрерывное обучение.

Зачем это спрашивают: Интервьюер ожидает ясного описания общих принципов автоматизации и особенностей, характерных для ML.

versioning

Одного исходного кода недостаточно для идентификации результата ML, потому что на него также влияют данные, конфигурация, зависимости и входы обучения.

  • Один и тот же код может создать другую модель при изменении датасета или определений признаков.
  • Гиперпараметры и случайные начальные значения могут изменить результат обучения без изменения кода.
  • Версии библиотек и среды выполнения могут изменить предобработку или численные вычисления.
  • Воспроизводимая версия модели должна связывать все эти входы с итоговым артефактом.

Зачем это спрашивают: Вопрос проверяет понимание того, что результат ML-модели зависит от большего числа факторов, чем обычная сборка приложения.

ci-cd

Непрерывная интеграция в ML автоматически проверяет каждое предложенное изменение до слияния с основной веткой.

  • Она запускает проверки кода, например форматирование, модульные и интеграционные тесты.
  • Она может проверять схемы, пропущенные значения, диапазоны и другие контракты данных.
  • Она может выполнить небольшое тестовое обучение, чтобы подтвердить завершение пайплайна и получение ожидаемых результатов.
  • Она быстро сообщает команде о проблемах без полного продакшен-обучения.

Зачем это спрашивают: Интервьюер проверяет, охватывает ли CI код и входы ML-пайплайна и не путаете ли вы его с полным переобучением или развёртыванием.

mlci-cd

Непрерывная доставка готовит проверенный релиз модели к развёртыванию через контролируемый и повторяемый процесс.

  • Пайплайн упаковывает модель с нужным кодом инференса и зависимостями.
  • Автоматические проверки подтверждают качество модели, совместимость и наличие обязательных метаданных.
  • Одобренный артефакт продвигают между средами, а не пересобирают по-разному на каждом этапе.
  • Выпуск в продакшен может требовать ручного одобрения, даже если все предыдущие шаги автоматизированы.

Зачем это спрашивают: Сильный ответ отличает готовый к развёртыванию релиз модели от автоматической отправки каждой обученной модели в продакшен.

mlops-practicecontinuous-training

Непрерывное обучение представляет собой автоматизированный процесс переобучения и оценки модели при наступлении заданного триггера.

  • Триггером может быть расписание, появление новых размеченных данных или отслеживаемый сигнал качества.
  • Пайплайн повторяет подготовку данных, обучение, оценку и регистрацию модели.
  • Новый кандидат должен пройти критерии приёмки, прежде чем сможет заменить текущую модель.
  • Непрерывное обучение автоматически создаёт кандидатов, но не требует их автоматического продвижения в продакшен.

Зачем это спрашивают: Интервьюер оценивает, отделяет ли кандидат автоматическое переобучение от бесконтрольной замены модели.

CI проверяет изменения, CT создаёт подходящие модели-кандидаты, а CD упаковывает и продвигает одобренные релизы.

  • CI защищает общую кодовую базу и определения пайплайнов до слияния изменений.
  • CT повторно запускает обучение с заданными версиями данных и конфигурации.
  • CD проводит один и тот же проверенный артефакт через этапы контроля в тестовой среде и продакшене.
  • Вместе они обеспечивают трассируемость от изменения или триггера данных до развёрнутой версии модели.

Зачем это спрашивают: Вопрос проверяет, может ли кандидат назвать отдельное назначение каждого цикла автоматизации.

В системе контроля версий должны храниться текстовые определения, необходимые для ревью и повторной сборки ML-процесса.

  • Храните код обучения, оценки, предобработки и инференса.
  • Храните определения пайплайнов, тесты, описания окружения и небольшие конфигурационные файлы.
  • Храните определения схем и ссылки или манифесты, идентифицирующие внешние датасеты и артефакты.
  • Большие датасеты, бинарные файлы моделей, секреты и сгенерированные результаты храните в специализированных системах, а не в Git.

Зачем это спрашивают: Интервьюер проверяет, знает ли кандидат границу между удобными для ревью исходными файлами и крупными или конфиденциальными ресурсами.

config

Версионируемая конфигурация делает изменения поведения обучения явными и не прячет их в исходном коде.

  • В конфигурации можно записать гиперпараметры, выбранные признаки, расположение данных и настройки ресурсов.
  • Для запуска нужно сохранять фактически применённые значения, включая значения по умолчанию и переопределения.
  • Сравнение версий конфигурации помогает понять изменения между экспериментами.
  • Связь версии конфигурации с каждым запуском помогает воспроизводить и сравнивать результаты.

Зачем это спрашивают: Сильный ответ рассматривает конфигурацию как полноценный вход обучения, а не как незадокументированную локальную настройку.

mlreproducibility

Воспроизводимость означает возможность повторить записанный процесс в тех же заданных условиях и получить согласованный результат.

  • Запуск должен определять код, данные, конфигурацию, зависимости и среду выполнения.
  • Случайные начальные значения и детерминированные режимы нужно записывать там, где фреймворк их поддерживает.
  • Итоговые метрики могут совпадать в пределах принятого допуска, а не побитово.
  • Воспроизводимость помогает проверять, сравнивать, аудировать и надёжно обновлять модели.

Зачем это спрашивают: Интервьюер ожидает практическое определение на основе контролируемых входов и допустимого совпадения результатов.

reproducibility

Случайное начальное значение контролирует часть случайности, но само по себе не делает все этапы обучения детерминированными.

  • Воркеры загрузки данных и параллельное выполнение могут использовать случайные операции в разном порядке.
  • Некоторые GPU-ядра и численные библиотеки используют недетерминированные алгоритмы.
  • Оборудование, драйверы и версии библиотек могут изменить результаты вычислений с плавающей точкой.
  • Для воспроизводимости также нужны зафиксированные входы, сведения об окружении и доступные детерминированные настройки.

Зачем это спрашивают: Вопрос проверяет понимание пользы и ограничений случайных начальных значений.

experimentsexperiment-tracking

Отслеживание экспериментов записывает входы, результаты и контекст запусков разработки моделей в доступной для поиска системе.

  • К входам относятся ревизия кода, версия датасета, параметры и сведения об окружении.
  • К результатам относятся метрики, графики, логи, контрольные точки и итоговые артефакты моделей.
  • Запуски можно группировать и сравнивать, чтобы понять влияние изменений на результаты.
  • Такие инструменты, как MLflow и Weights & Biases, предоставляют интерфейсы и API для отслеживания.

Зачем это спрашивают: Интервьюер проверяет, описывает ли кандидат отслеживание как структурированную историю запусков, а не список итоговых оценок.

monitoringartifactsexperiment-tracking

MLflow Tracking объединяет связанную работу в эксперименты, а отдельные выполнения внутри них называет запусками.

  • Параметры представляют собой входные настройки вроде скорости обучения или размера батча, которые обычно неизменны в рамках запуска.
  • Метрики представляют собой числовые результаты вроде функции потерь или точности, которые можно многократно записывать на разных шагах.
  • Артефакты представляют собой выходные файлы, например графики, отчёты, контрольные точки и сериализованные модели.
  • Каждый запуск получает идентификатор, связывающий эти записи и метаданные выполнения.

Зачем это спрашивают: Сильный ответ правильно использует основные сущности MLflow Tracking и объясняет их связь.

Weights & Biases используют для отслеживания, сравнения и визуализации экспериментов машинного обучения и связанных артефактов.

  • SDK записывает параметры, метрики, системные показатели, таблицы и медиафайлы из кода обучения.
  • Дашборды помогают сравнивать запуски и изучать кривые обучения или использование ресурсов.
  • Артефакты позволяют версионировать датасеты и модели с сохранением связей между ними.
  • Общие проекты и отчёты делают результаты экспериментов доступными команде.

Зачем это спрашивают: Интервьюер проверяет практическое знание W&B как инструмента совместной работы и отслеживания, а не фреймворка обучения.

Для запуска обучения нужно записать достаточно информации, чтобы сравнить результат и проследить, как он был получен.

  • Запишите ревизию кода, версию датасета, версию признаков или предобработки и итоговую конфигурацию.
  • Запишите гиперпараметры, случайные начальные значения, версии зависимостей, оборудование и параметры среды выполнения.
  • Запишите динамику метрик обучения и валидации, а также итоговые метрики оценки.
  • Сохраните нужные логи, графики, контрольные точки и итоговый артефакт модели с идентификатором запуска.

Зачем это спрашивают: Интервьюер оценивает, сохраняет ли кандидат и результаты модели, и происхождение, необходимое для их объяснения.

registriesmodel-registry

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

  • Он связывает каждую версию модели с её артефактом, исходным запуском, метриками и метаданными.
  • Команды могут записывать статус проверки, владельца, назначение и ссылки на развёртывания.
  • Псевдонимы или стадии могут обозначать версии, одобренные для тестирования или продакшена.
  • Такие системы, как MLflow Model Registry, отделяют продвижение модели от её обучения.

Зачем это спрашивают: Интервьюер проверяет понимание реестра как слоя управления и жизненного цикла, а не простого файлового хранилища.

deployment

Псевдоним или стадия дают системе развёртывания контролируемую логическую ссылку на одобренную версию модели.

  • Имя вроде champion или production может одновременно указывать только на одну неизменяемую версию.
  • При продвижении меняется ссылка, поэтому код инференса не нужно редактировать и пересобирать.
  • Реестр сохраняет, какая версия использовала ссылку и когда она изменилась.
  • Для отката псевдоним можно снова направить на ранее одобренную версию.

Зачем это спрашивают: Сильный ответ связывает логические ссылки с безопасным продвижением, трассируемостью и откатом.

mlops-practicesystem-design

Метаданные представляют собой структурированные сведения, описывающие ML-ресурсы, выполнения и связи между ними.

  • Метаданные запуска могут включать время, владельца, ревизию кода, параметры и окружение.
  • Метаданные датасета и модели могут включать версии, схемы, результаты оценки и назначение.
  • Связи образуют происхождение от исходных данных через запуск обучения к зарегистрированной модели и развёртыванию.
  • Метаданные позволяют искать, сравнивать, аудировать и воспроизводить ресурсы.

Зачем это спрашивают: Интервьюер проверяет, отличает ли кандидат описательные сведения о происхождении от самих файлов данных и моделей.

artifactsmlops-practice

Управление артефактами обеспечивает хранение, версионирование и получение файлов, которые создают или используют 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