Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Registrazione di log per metriche, parametri e modelli MLflow durante l’addestramento
Dopo la connessione al server di tracciamento MLflow, puoi utilizzare l’MLflow SDK per registrare log per metriche, parametri e modelli MLflow.
Registrazione di log per metriche di addestramento
Utilizza mlflow.log_metric all’interno di un’esecuzione di addestramento MLflow per tenere traccia delle metriche. Per maggiori informazioni sulla registrazione di log per metriche con MLflow, consulta mlflow.log_metric.
with mlflow.start_run(): mlflow.log_metric("foo",1) print(mlflow.search_runs())
Questo script deve generare un’esecuzione di esperimento e stampare un output simile al seguente:
run_id experiment_id status artifact_uri ... tags.mlflow.source.name tags.mlflow.user tags.mlflow.source.type tags.mlflow.runName 0 607eb5c558c148dea176d8929bd44869 0 FINISHED s3://dddd/0/607eb5c558c148dea176d8929bd44869/a... ... file.py user-id LOCAL experiment-code-name
All’interno dell’interfaccia utente MLflow, questo esempio deve apparire simile al seguente:
Scegli Nome dell’esecuzione per visualizzare ulteriori dettagli sull’esecuzione.
Registrazione di log per parametri e modelli
Nota
L’esempio seguente richiede che il tuo ambiente disponga di un’autorizzazione s3:PutObject. Questa autorizzazione deve essere associata al ruolo IAM che l'utente MLFlow SDK assume quando accede o si federa al proprio account. AWS Per ulteriori informazioni, consulta Esempi di policy utente e dei ruoli.
Il seguente esempio illustra un flusso di lavoro di addestramento dei modelli di base con SKLearn e mostra come monitorare tali modelli all’interno di un’esecuzione di esperimento MLflow. Questo esempio registra log per parametri, metriche e artefatti del modello.
import mlflow from mlflow.models import infer_signature import pandas as pd from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score # This is the ARN of the MLflow Tracking Server you created mlflow.set_tracking_uri(your-tracking-server-arn) mlflow.set_experiment("some-experiment") # Load the Iris dataset X, y = datasets.load_iris(return_X_y=True) # Split the data into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Define the model hyperparameters params = {"solver": "lbfgs", "max_iter": 1000, "multi_class": "auto", "random_state": 8888} # Train the model lr = LogisticRegression(**params) lr.fit(X_train, y_train) # Predict on the test set y_pred = lr.predict(X_test) # Calculate accuracy as a target loss metric accuracy = accuracy_score(y_test, y_pred) # Start an MLflow run and log parameters, metrics, and model artifacts with mlflow.start_run(): # Log the hyperparameters mlflow.log_params(params) # Log the loss metric mlflow.log_metric("accuracy",accuracy) # Set a tag that we can use to remind ourselves what this run was for mlflow.set_tag("Training Info","Basic LR model for iris data") # Infer the model signature signature = infer_signature(X_train, lr.predict(X_train)) # Log the model model_info = mlflow.sklearn.log_model( sk_model=lr, name="iris_model", # Changed from artifact_path to name for MLflow 3.0 signature=signature, input_example=X_train, registered_model_name="tracking-quickstart", )
Nell’interfaccia utente MLflow, scegli il nome dell’esperimento nel riquadro di navigazione a sinistra per esplorare tutte le esecuzioni associate. Seleziona Nome dell’esecuzione per visualizzare ulteriori informazioni su ciascuna esecuzione. Per questo esempio, la pagina di esecuzione di esperimento per questa esecuzione deve essere simile alla seguente.
Questo esempio registra log per il modello di regressione logistica. All’interno dell’interfaccia utente MLflow, devi visualizzare anche gli artefatti del modello registrati.