Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kokeilujen Kirjaaminen MLflow'n Avulla | Osio
Mlopsin Perusteet

Kokeilujen Kirjaaminen MLflow'n Avulla

Pyyhkäise näyttääksesi valikon

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")

Kokeilujen lokituksen toimintaperiaatteen ymmärtämiseksi voit seurata tämän koodin vaiheittaista etenemistä. Aluksi koodi lataa esimerkkiaineiston käyttäen scikit-learnin load_diabetes-funktiota ja jakaa sen opetus- ja testijoukkoihin. Kokeelle annetaan nimi mlflow.set_experiment-komennolla, joka valitsee olemassa olevan kokeen tai luo uuden tarvittaessa.

Työnkulun pääosa alkaa mlflow.start_run()-komennolla, joka alustaa uuden ajon ja varmistaa, että kaikki myöhemmät lokitiedot ryhmitellään yhteen. Tämän ajon sisällä määritellään Ridge-regressiomalli tietyllä alpha-parametrilla ja koulutetaan opetusdatalla. Koulutuksen jälkeen tehdään ennusteet testidatalla ja lasketaan suorituskykymittarina keskineliövirhe (MSE).

MLflow:n lokitusfunktioilla tallennetaan kokeen keskeiset tiedot. alpha-parametri kirjataan mlflow.log_param-komennolla ja laskettu mse tallennetaan metriikkana mlflow.log_metric-komennolla. Koulutettu malli tallennetaan artefaktina mlflow.sklearn.log_model-komennolla, mikä helpottaa mallin hakemista tai käyttöönottoa myöhemmin. Toistettavuuden varmistamiseksi koodi kirjaa myös data_version-parametrin, joka tallentaa käytetyn aineiston alkuperän tai version.

Note
Varoitus

Varoitus: kirjaa aina olennaiset metatiedot, kuten aineiston version, satunnaissiementen ja ympäristötiedot. Ilman näitä tulosten toistaminen tai ongelmien selvittäminen on huomattavasti vaikeampaa.

question mark

Mitkä seuraavista väittämistä kuvaavat oikein MLflow-kokeen lokituksen työnkulun vaiheet, kuten koodiesimerkissä esitettiin?

Valitse kaikki oikeat vastaukset

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Kokeilujen Kirjaaminen MLflow'n Avulla

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")

Kokeilujen lokituksen toimintaperiaatteen ymmärtämiseksi voit seurata tämän koodin vaiheittaista etenemistä. Aluksi koodi lataa esimerkkiaineiston käyttäen scikit-learnin load_diabetes-funktiota ja jakaa sen opetus- ja testijoukkoihin. Kokeelle annetaan nimi mlflow.set_experiment-komennolla, joka valitsee olemassa olevan kokeen tai luo uuden tarvittaessa.

Työnkulun pääosa alkaa mlflow.start_run()-komennolla, joka alustaa uuden ajon ja varmistaa, että kaikki myöhemmät lokitiedot ryhmitellään yhteen. Tämän ajon sisällä määritellään Ridge-regressiomalli tietyllä alpha-parametrilla ja koulutetaan opetusdatalla. Koulutuksen jälkeen tehdään ennusteet testidatalla ja lasketaan suorituskykymittarina keskineliövirhe (MSE).

MLflow:n lokitusfunktioilla tallennetaan kokeen keskeiset tiedot. alpha-parametri kirjataan mlflow.log_param-komennolla ja laskettu mse tallennetaan metriikkana mlflow.log_metric-komennolla. Koulutettu malli tallennetaan artefaktina mlflow.sklearn.log_model-komennolla, mikä helpottaa mallin hakemista tai käyttöönottoa myöhemmin. Toistettavuuden varmistamiseksi koodi kirjaa myös data_version-parametrin, joka tallentaa käytetyn aineiston alkuperän tai version.

Note
Varoitus

Varoitus: kirjaa aina olennaiset metatiedot, kuten aineiston version, satunnaissiementen ja ympäristötiedot. Ilman näitä tulosten toistaminen tai ongelmien selvittäminen on huomattavasti vaikeampaa.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5
some-alt