0Pricing
Learn AI with Python · レッスン

MLflowによる実験管理

mlflow.start_run()、log_param()、log_metric()、log_artifact()、MLflow UIの確認方法について学習します。

「MLflowによる実験管理」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

実験を追跡する理由

機械学習の作業では、異なるパラメータやデータを使って何十回も実行します。追跡しなければ、どの設定で最良のモデルが得られたのか分からなくなります。MLflowは、再現性と比較可能性を確保するため、各実行のパラメータ、メトリクス、アーティファクトを記録します。

インストールとインポート

MLflowは、pipでインストールしてインポートするだけで使えます。

# pip install mlflow
import mlflow
import mlflow.sklearn

start_runコンテキスト

mlflow.start_run()は、コンテキストマネージャーとして実行を開始します。withブロック内でログに記録したすべての情報がその実行に属し、ブロックを抜けると自動的に終了します。

with mlflow.start_run():
    # log params, metrics, model here
    pass

パラメータの記録

log_paramは、1つのハイパーパラメータ(自分で選択した入力値)を記録します。後で実行を再現できるよう、実行を定義するすべての情報を記録しましょう。

with mlflow.start_run():
    mlflow.log_param("n_estimators", 200)
    mlflow.log_param("max_depth", 8)

メトリクスの記録

log_metricは、精度や損失などの数値結果(出力値)を記録します。stepを指定すれば、メトリクスを繰り返し記録して学習曲線を追跡できます。

mlflow.log_metric("accuracy", 0.93)
mlflow.log_metric("val_loss", 0.21, step=epoch)

パラメータとメトリクス

  • Parameters: 設定した入力値(学習率、深さなど)です。1回記録します。
  • Metrics: 測定した出力値(精度、RMSEなど)です。ステップごとに変化する可能性があります。

これらを分けて管理すると、MLflowで実行結果を表やグラフで比較できます。

アーティファクトの記録

log_artifactは、プロット、混同行列、データサンプル、設定ファイルなど、任意のファイルを実行とともに保存します。アーティファクトを使うと、実行に根拠となる資料を添付できます。

mlflow.log_artifact("confusion_matrix.png")
mlflow.log_artifact("feature_importance.csv")

モデルの記録

mlflow.sklearn.log_modelは、学習済みのscikit-learnモデルをアーティファクトとしてシリアライズし、依存関係とともにパッケージ化します。そのため、後で再読み込みやデプロイができます。各フレームワークには独自のフレーバー(mlflow.keras、mlflow.pytorch)があります。

mlflow.sklearn.log_model(model, artifact_path="model")

run_id

すべての実行には一意のrun_idが付与されます。これを使って、特定の実行をプログラムから参照、再読み込み、比較できます。

with mlflow.start_run() as run:
    mlflow.log_metric("accuracy", 0.93)
    print("Run ID:", run.info.run_id)

完全な実行

一連の流れは、1つのブロック内で実行を開始し、パラメータを記録し、学習を行い、メトリクスを記録し、モデルを記録することです。

with mlflow.start_run():
    mlflow.log_param("max_depth", 8)
    model.fit(X_train, y_train)
    acc = model.score(X_test, y_test)
    mlflow.log_metric("accuracy", acc)
    mlflow.sklearn.log_model(model, "model")

実験の表示

ターミナルでmlflow uiを実行すると、ローカルのWebダッシュボード(デフォルトではhttp://localhost:5000)が起動します。ここで実行結果の閲覧、メトリクスによる並べ替え、パラメータの横並び比較ができます。

# terminal
mlflow ui

クイックチェック

MLflowの追跡機能に関する知識をテストしましょう。

まとめ

MLflowで実験を追跡しました。start_run()で実行を開始し、log_param/log_metricで入力値と出力値を記録し、log_artifactでファイルを保存し、mlflow.sklearn.log_modelでモデルを保存します。各実行にはrun_idが付与され、mlflow uiですべてを確認できます。次は、モデルレジストリとバージョン管理です。

よくある質問

「MLflowによる実験管理」レッスンは無料ですか?

はい。「MLflowによる実験管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「MLflowによる実験管理」で何を学びますか?

mlflow.start_run()、log_param()、log_metric()、log_artifact()、MLflow UIの確認方法について学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「MLflowによる実験管理」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. MLflowによる実験管理
  2. モデルレジストリとバージョニング
  3. 再現可能なMLパイプラインの構築
  4. 本番環境でのモデル性能監視
← Learn AI with Pythonに戻る