Вопрос с собеседования · AI и LLM

Как перенести код из Jupyter-ноутбука в рабочий проект?

JuniorMLOps и модели в продакшене
Ещё спрашивают так:
  • Почему ноутбук нельзя отдавать в продакшен?
Коротко

Ноутбук хорош для исследования, но плох для работы: скрытое состояние (порядок ячеек), нет тестов, сложное ревью, параметры зашиты в код. Перенос: вынести логику в функции в модулях (загрузка, признаки, обучение, оценка), параметры — в конфигурацию, точку входа — в скрипт с аргументами, добавить тесты на признаки и обработку данных, зависимости — в lock-файл. Ноутбук остаётся для анализа и импортирует функции из модулей.

  • Функции признаков должны быть одни и те же при обучении и в сервисе
  • Пути и константы — не в коде, а в конфигурации
  • Тест на маленьком наборе данных ловит поломки до долгого обучения

А ещё Инструменты: nbconvert для черновика, но структура пишется руками

Подробно

Структура проекта:

churn/
  data.py       # загрузка и очистка
  features.py   # признаки
  train.py      # обучение, точка входа
  evaluate.py   # метрики
configs/train.yaml
tests/test_features.py
notebooks/eda.ipynb   # импортирует churn.*

Порядок: сначала выделить функции признаков (их будет использовать сервис), покрыть тестами на крайних случаях (пропуски, пустые группы), затем обучение и оценку.

Что хотят услышать

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Запускать ноутбук в продакшене по расписанию как есть
  • ✓Логику — в функции модулей, параметры — в конфиг, добавить тесты
  • ✗Скопировать все ячейки подряд в один файл main.py без изменений
  • ✗Тесты для кода признаков не нужны — модель всё равно обучается

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования