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
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Mlopsin Perusteet

bookKokeilujen 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}")
copy

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?

Select all correct answers

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

bookKokeilujen 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}")
copy

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?

Select all correct answers

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5
some-alt