Kokeilujen Kirjaaminen MLflow'n Avulla
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import 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.
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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 6.67
Kokeilujen Kirjaaminen MLflow'n Avulla
Pyyhkäise näyttääksesi valikon
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import 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.
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.
Kiitos palautteestasi!