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.sklearnstart_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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- MLflowによる実験管理
- モデルレジストリとバージョニング
- 再現可能なMLパイプラインの構築
- 本番環境でのモデル性能監視