Настройка ClearML для трекинга экспериментов
ClearML (ранее Trains) — полноценная MLOps-платформа с открытым исходным кодом: трекинг, оркестрация задач, data versioning, model serving. Преимущество перед MLflow: встроенная очередь задач и автоматическое воспроизведение экспериментов.
Установка self-hosted сервера
# Docker Compose для self-hosted
git clone https://github.com/allegroai/clearml-server
cd clearml-server
docker compose -f docker-compose.yml up -d
# Веб-интерфейс: http://localhost:8080
Базовое использование
from clearml import Task, Logger
# Инициализация — автоматически захватывает git status, pip packages, конфигурацию
task = Task.init(
project_name="Fraud Detection",
task_name="LGBM Baseline",
task_type=Task.TaskTypes.training,
)
# Параметры
task.connect({
"learning_rate": 0.05,
"n_estimators": 500,
"dataset_version": "v2.3"
})
# Логирование метрик
logger = task.get_logger()
for epoch in range(100):
logger.report_scalar("Loss", "train", iteration=epoch, value=train_loss)
logger.report_scalar("Loss", "val", iteration=epoch, value=val_loss)
logger.report_scalar("F1", "val", iteration=epoch, value=val_f1)
# Таблицы и изображения
logger.report_table("Test Predictions", "Confusion Matrix", iteration=0, table_plot=cm_df)
logger.report_matplotlib_figure("ROC Curve", "ROC", iteration=0, figure=fig)
ClearML Agent для воспроизведения
Уникальная фича: автоматическое воспроизведение любого эксперимента:
# Запуск агента (на другой машине, включая GPU)
clearml-agent daemon --queue default --detached
# Клонирование и повторный запуск эксперимента
clearml-agent execute --id <task_id>
Hyperparameter Optimization
from clearml.automation import HyperParameterOptimizer, RandomSearch
optimizer = HyperParameterOptimizer(
base_task_id=task.id,
hyper_parameters=[
UniformParameterRange("learning_rate", min_value=0.001, max_value=0.1),
DiscreteParameterRange("n_estimators", values=[100, 200, 500]),
],
objective_metric_title="F1",
objective_metric_series="val",
objective_metric_sign="max",
max_number_of_concurrent_tasks=4,
optimizer_class=RandomSearch,
total_max_jobs=50,
)
optimizer.start()
ClearML хорошо подходит для команд с ограниченным бюджетом на SaaS-инструменты — полноценный MLOps self-hosted без enterprise лицензий.







