Rastreamento de Experimentos
O rastreamento de experimentos registra parâmetros, métricas e artefatos para cada execução de treinamento. MLflow e Weights & Biases são as ferramentas padrão para comparar execuções e reproduzir resultados.
Receita
import mlflow
with mlflow.start_run(run_name="rf_baseline"):
mlflow.log_params({"n_estimators": 100, "max_depth": 10})
mlflow.log_metric("f1", 0.87)
mlflow.sklearn.log_model(model, "model")Exemplo de Trabalho
"""experiment_tracking.py - Rastreamento MLflow com sklearn."""
from __future__ import annotations
import mlflow
import mlflow.sklearn
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score, train_test_split
mlflow.set_experiment("breast-cancer-classification")
Armadilhas
- Não registrar a versão dos dados - impossível reproduzir execuções. Correção: registrar hash dos dados ou revisão DVC.
- Registrar em notebooks sem contexto de execução - métricas órfãs. Correção:
with mlflow.start_run()em scripts. - Muitas execuções sem nome - impossível comparar. Correção:
run_namee tags.
Alternativas
| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| MLflow | ML Geral, auto-hospedado | Precisa de UI de colaboração integrada |
| W&B | Dashboards de equipe, deep learning | Configuração local mínima |
| TensorBoard | Curvas de treinamento PyTorch | Experimentos não-deep-learning |
| Log CSV | Experimentos pessoais rápidos | Colaboração em equipe |
FAQs
MLflow local vs servidor?
`mlflow ui` para local; servidor de rastreamento para compartilhamento em equipe.Como comparar execuções?
Aba Experimentos da UI do MLflow; ordenar por métrica.O que registrar?
Parâmetros, métricas, artefato do modelo, hash dos dados, commit git, versões de bibliotecas.Configuração W&B?
`wandb.init(project="...")` então `wandb.log({"f1": 0.9})`.Registrar artefatos?
`mlflow.log_artifact("confusion_matrix.png")`.Execuções aninhadas?
Busca de hiperparâmetros com execuções pai/filho no MLflow.Auto-registro?
`mlflow.sklearn.autolog()` registra parâmetros/métricas automaticamente.Por quanto tempo manter execuções?
Definir política de retenção; arquivar experimentos antigos.Rastrear uso de GPU?
Registrar como parâmetro; W&B rastreia métricas do sistema automaticamente.Integração CI?
Registrar métricas de avaliação de execuções de treinamento em CI para detecção de regressão.Múltiplos experimentos?
`mlflow.set_experiment("nome")` separa execuções do projeto.Reproduzir uma execução?
Carregar parâmetros registrados, versão dos dados e seed dos metadados da execução.Relacionados
- Registros e Versionamento de Modelos
- Ajuste de Hiperparâmetros
- Melhores Práticas de MLOps
- Versionamento de Dados e Modelos (DVC)
- Monitoramento e Drift
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.