0Pricing
Learn AI with Python · Урок

Создание воспроизводимых конвейеров машинного обучения

Конвейер sklearn, сохранение конвейеров с joblib, параметризованные запуски с конфигурационными файлами

«Создание воспроизводимых конвейеров машинного обучения» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Зачем нужна воспроизводимость?

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

Конвейер sklearn

Конвейер scikit-learn объединяет предварительную обработку и модель в один объект. Поэтому при выводе применяются в точности те же преобразования, что и при обучении, а несоответствие между обучением и обслуживанием устраняется.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("model", RandomForestClassifier(n_estimators=200))
])
pipe.fit(X_train, y_train)

Сохранение конвейера как артефакта

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

joblib.dump и load

joblib эффективно сериализует объекты scikit-learn и лучше pickle работает с большими массивами NumPy. Сохраните обученный конвейер, а затем загрузите его заново для обслуживания.

import joblib

joblib.dump(pipe, "pipeline.joblib")        # save
loaded = joblib.load("pipeline.joblib")    # reload
preds = loaded.predict(X_new)

Конфигурация YAML для гиперпараметров

Жёстко заданные значения скрывают настройки, использованные при запуске. Поместите все гиперпараметры в файл YAML, чтобы каждая настройка была явной, контролировалась системой управления версиями и изменялась без редактирования кода.

# config.yaml
model:
  n_estimators: 200
  max_depth: 8
data:
  test_size: 0.2
  random_state: 42

Загрузка конфигурации

Прочитайте YAML один раз при запуске и передайте значения в конвейер, чтобы один файл управлял всем запуском.

import yaml

with open("config.yaml") as f:
    cfg = yaml.safe_load(f)

model = RandomForestClassifier(
    n_estimators=cfg["model"]["n_estimators"],
    max_depth=cfg["model"]["max_depth"]
)

Фиксация случайных начальных значений

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

from sklearn.model_selection import train_test_split

X_tr, X_te, y_tr, y_te = train_test_split(
    X, y, test_size=cfg["data"]["test_size"],
    random_state=cfg["data"]["random_state"]
)

Makefile для повторяемых шагов

Makefile превращает каждый этап конвейера в именованную цель, поэтому любой участник команды может выполнить make train, не запоминая длинные команды. Это унифицирует рабочий процесс команды.

Определение целей Make

Распространённые цели — make data, make train и make evaluate; каждая вызывает соответствующий сценарий.

# Makefile
data:
	python src/prepare_data.py

train:
	python src/train.py --config config.yaml

evaluate:
	python src/evaluate.py --config config.yaml

Связывание зависимостей

Цели Make могут зависеть друг от друга, поэтому make train при необходимости сначала запускает data. Это гарантирует правильный порядок выполнения конвейера.

train: data
	python src/train.py --config config.yaml

Объединение всех компонентов

Воспроизводимая конфигурация включает конвейер, сохранённый с помощью joblib, все гиперпараметры в YAML, фиксированные начальные значения и Makefile с целями make data / train / evaluate. Любой участник может клонировать репозиторий и воспроизвести Вашу модель в точности.

Быстрая проверка

Проверьте свои знания о воспроизводимых конвейерах.

Итоги

Вы создали воспроизводимые конвейеры: конвейер sklearn, сохранённый с помощью joblib.dump/load, конфигурацию YAML со всеми гиперпараметрами, зафиксированные случайные начальные значения и Makefile с целями make data / train / evaluate. Далее: мониторинг моделей в рабочей среде.

Часто задаваемые вопросы

Урок «Создание воспроизводимых конвейеров машинного обучения» бесплатный?

Да — полный текст урока «Создание воспроизводимых конвейеров машинного обучения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Создание воспроизводимых конвейеров машинного обучения»?

Конвейер sklearn, сохранение конвейеров с joblib, параметризованные запуски с конфигурационными файлами Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Создание воспроизводимых конвейеров машинного обучения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Отслеживание экспериментов с MLflow
  2. Реестр моделей и управление версиями
  3. Создание воспроизводимых конвейеров машинного обучения
  4. Мониторинг производительности модели в продуктивной среде
← Назад к Learn AI with Python