実験の追跡と観察可能性
プレビュー
この機能は パブリック プレビュー段階です。
エクスペリメント tracking and observability are built into AI ランタイム.MLflow is a single place for a ランの パラメーター、 メトリクス、 GPU system メトリクス、 Log、 and アーティファクト.Every ラン lives in an MLflow エクスペリメント that you can share with your team, and a 組み込み GPU リソース pane shows live GPU utilization, memory, and temperature while your code runs.
このページの主要なポイント:
- MLflow は、AI ランタイムのエクスペリメント(メトリクス、パラメーター、システムメトリクス、Log、アーティファクト)の統合インターフェイスです。
- Workloads submitted with the Databricks CLI get an MLflow ラン automatically.In ノートブック and scripts, call
mlflow.start_run()ormlflow.autolog(). - 組み込みの GPU リソースペインには、使用率、メモリ、温度が表示されます。
MLflow がディープラーニング向けに提供する機能
- メトリクスとパラメーター :トレーニング損失、評価メトリクス、学習率、ハイパーパラメータをLogに記録し、MLflow UI でラン間で比較します。
- System metrics : GPU、CPU、およびメモリ使用率は、ランの System metrics tabのトレーニング メトリクスとともに記録されます。
- Logs : ジョブのランからのドライバー出力(ランの Logs tab内)。
- アーティファクト and models : Store model files, configs, and other outputs with the ラン.アーティファクト can be stored in a Unity Catalog volume.
- 共有とコラボレーション :エクスペリメントはワークスペース オブジェクトです。チームメイトにエクスペリメントへのアクセス権を付与して、ランを共有し、結果を比較します。MLflow エクスペリメントを使用したトレーニング ランの整理を参照してください。
- フレームワーク統合 :Hugging Face Transformers、PyTorch Lightning、その他のライブラリからMLflowに直接ログを記録します。
MLflow 3 におけるディープラーニングのパターンについては、MLflow 3 ディープラーニング ワークフローを参照してください。
MLflowコードを追加する必要がありますか?
ワークロードの送信方法によって異なります。
ラン方法 | MLflowランが自動的に作成されましたか? | 追加する内容 |
|---|---|---|
Databricks CLI ( | はい。ワークロード YAML の | オプション。カスタム メトリクスを |
Serverless GPU API( | はい。Each | オプション。関数内からカスタムメトリクスをログに記録します。 |
ノートブック or script on a single node | No. Autologging isn't enabled automatically on Serverless コンピュート. | Call |
使い始める
MLflow 3.7以降を使用してください。次の例は、ノートブック セルまたはPythonスクリプトにコピーしてすぐに使用できます。
トレーニングループからメトリクスをログに記録する
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
with mlflow.start_run(run_name="baseline-lr3e-4"):
mlflow.log_params({"learning_rate": 3e-4, "batch_size": 32, "epochs": 3})
for epoch in range(3):
train_loss = train_one_epoch(model, train_loader, optimizer) # your training code
val_loss = evaluate(model, val_loader)
mlflow.log_metrics({"train_loss": train_loss, "val_loss": val_loss}, step=epoch)
Use autologging
PyTorch Lightning の場合は、トレーニングの前に mlflow.pytorch.autolog() を呼び出します。サポートされているその他のライブラリについては、mlflow.autolog() を呼び出してください。
import mlflow
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Hugging Face TransformersからLogsを記録する
report_to="mlflow"を設定します。run_name引数でMLflowランの名前を設定します。
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
複数の GPU からの Logs
分散トレーニングでは、すべてのプロセスがトレーニング コードを実行します。Logs from rank 0 only so each metric is recorded one time: の翻訳を調整: 各メトリクスが 1 回だけ記録されるように、ランク 0 からのみLogsに記録します。
import os
import mlflow
if int(os.environ.get("RANK", "0")) == 0:
mlflow.log_metric("train_loss", loss, step=step)
ベストプラクティス
stepにグローバルバッチやエポックなどの意味のある値を設定し、すべてのバッチではなく一定の間隔(例:50ステップごと)でログに記録します。MLflow は、ランごとのメトリクス ステップの数に上限を設定します。リソース制限を参照してください。/Users/<username>/my-experimentや/Workspace/Shared/<team>/my-experimentなどの絶対エクスペリメントパスを使用します。共有するエクスペリメントは共有フォルダに配置してください。- 以前のランを再開するには、その ID を渡します:
mlflow.start_run(run_id="<previous-run-id>")。
Serverless GPU API
Serverless GPU API を使用する場合、.distributed() を呼び出すたびに自動的に MLflow ランが作成されます。defaultのエクスペリメントは /Users/{WORKSPACE_USER}/{notebook-name} です。
-
アクティブな MLflow ラン内で
.distributed()を呼び出すと、そのランの下にネストされた子ランが作成されます。Pythonimport mlflow
with mlflow.start_run() as outer_run:
run_train.distributed() # creates a nested child run under outer_run -
別のエクスペリメントを使用するには、
.distributed()の前にmlflow.set_experiment()を呼び出すか、MLFLOW_EXPERIMENT_NAME環境変数を設定します。常に絶対パスを使用してください。Pythonimport os
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
# or: os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
run_train.distributed() -
以前のランを再開するには、
.distributed()を呼び出す前にMLFLOW_RUN_IDを設定します。Pythonos.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
run_train.distributed()
閲覧ログ
- ノートブック出力 : トレーニングコードからの標準出力とエラーは、ノートブックセル出力に表示されます。
- MLflow ログ :MLflow エクスペリメント UI には、トレーニングメトリクス、パラメーター、およびアーティファクトが表示されます。
Logs を表示できない場合
MLflow ラン ページの Log tabには、MLflow ランに関連付けられた Databricks ジョブ ランからのログが Streamされるため、アクセスはそのジョブの権限によって制御されます。tabに You don't have access to these Logs と表示される場合は、十分な権限がありません。
Access to the ラン in MLflow doesn't imply access to the ジョブ.You can hold the MLflow エクスペリメント permission and still be denied the Logs.To get access, ask a user with Can Manage permissions or a ワークスペース admin to grant you at least Can View on the ジョブ.See Control access to a ジョブ for how ジョブ permissions are granted.
GPU リソースを監視する
GPUリソース ペインは、 ノートブックセッション 用の便利な機能です。MLflowのセットアップなしでリアルタイムのGPUのヘルスと使用率を表示するため、ノートブックセッションでMLflowエクスペリメントが作成されない場合に特に便利です。ランに関連付けられたGPU、CPU、およびメモリのメトリクスの永続的なレコードを保持するには、代わりにMLflowの システム メトリクス tabを使用します。ペインは、シングルノードとマルチノードの両方のワークロードをサポートします。
このペインを開くには、ノートブックをAI Runtimeに接続し、右側のペインの GPU リソース 。

このペインには、GPU ごとに次のメトリクスが表示されます。
- GPU使用率
- GPUメモリ使用量
- 温度
このペインは10秒ごとにメトリクスをポーリングし、最大2時間分の履歴を保持します。クリック最新の値をすぐに取得するには、 ページを更新してください 。5 分間何も操作しないと、ペインが停止します。再度開くとモニタリングが再開されます。
Databricksのグローバル制限
リソース制限を参照してください。