Зачем это нужно
DS запускает 50 обучений с разными learning rate, фичами и seed. Без системы учёта через неделю никто не вспомнит: какой run дал лучший F1? какие hyperparameters? какой commit? какой snapshot данных? Experiment tracking — журнал экспериментов с метриками, параметрами, артефактами и связью с кодом.
Для MLOps это мост между исследованием и prod: champion model выбирается не по памяти, а по записи в tracker, которую можно приложить к заявке в MMS.
Основные идеи
Что логировать в каждый experiment (run).
Parameters — lr, max_depth, список фич, random_seed.
Metrics — train/val F1, loss по эпохам (time series).
Artifacts — model file, plots, confusion matrix.
Source — git commit, script name, Docker image.
Tags / notes — «baseline», «added tenure feature», author.
Experiment vs Run vs Project.
Project — продукт или задача («churn-v2»).
Experiment — группа runs («july-feature-sweep»).
Run — одно конкретное обучение.
Сравнение runs. Таблица: отсортировать по val F1, фильтр «tag=approved_candidate». Без tracker — Excel на общем диске, который устарел.
Reproducibility link. Run хранит не только metrics, но и URI датасета, requirements, command line. «Повтори run #442» — одна кнопка или скрипт.
Не путать с MMS. Tracker — для исследований (сотни runs). MMS — для approved production models (единицы записей с governance). Связь: run_id → promoted → model_id в MMS.
Интеграция в pipeline. Train job в Argo Workflows в начале создаёт task в ClearML, в конце логирует metrics и upload model. Jenkins CI может читать «лучший run за nightly» — advanced.
Что tracker не решает. Качество данных, compliance, автоматический deploy — это отдельные gates. Tracker отвечает на «что мы пробовали и что получилось».
Как это выглядит на практике
DS работает над NLP-классификатором:
Создаёт project
ticket-classifierв ClearML.Каждый запуск
train.pyсTask.init()создаёт run; hyperparameters из argparse автоматически логируются.После epoch —
logger.report_scalar('val', 'f1', value, iteration=epoch).Лучший run #118: F1=0.84 — artifact
model.onnxuploaded.На demo DS открывает Compare view: run 118 vs 97 — разница только в
max_features.MLE берёт task ID
118для регистрации в MMS и сборки inference образа с тем же ONNX.
Без tracking: «кажется, вторая версия с tf-idf 10k была лучше» — в prod уехала не та.
Что сделать после занятия
Перечислите 5 параметров и 3 метрики, которые вы будете логировать в учебном train script.
Опишите правило: когда run может стать кандидатом в prod (threshold + manual review).
Сравните роли experiment tracker и Git: что хранится где.