メインコンテンツまでスキップ

MLflow 記録済みモデル (ベータ) を使用したモデルの追跡と比較

備考

ベータ版

この機能は ベータ版です。

MLflow 記録済みモデルは、モデルのライフサイクル全体を通じてモデルの進行状況を追跡するのに役立ちます。 モデルをトレーニングするときは、 mlflow.<model-flavor>.log_model() を使用して、一意の ID を使用してすべての重要な情報を結び付ける LoggedModel を作成します。

LoggedModelオブジェクトは、モデルのライフサイクル全体を通じて、さまざまな環境や実行にわたって保持され、メタデータ、メトリクス、パラメーター、モデルの生成に使用されたコードなどのアーティファクトへのリンクが含まれています。

記録済みモデル トラッキングを使用すると、モデルを相互に比較し、最もパフォーマンスの高いモデルを見つけ、デバッグ中に情報を追跡できます。

ジェネレーション AI、ディープラーニング、従来の ML のモデル追跡フロー。

ジェネレーションAIおよびディープラーニングモデルの追跡の改善

生成AI とディープラーニング ワークフローは、特に記録済みモデルが提供する詳細な追跡の恩恵を受けます。

Gen AI - 統合された評価データとトレースデータ:

  • Gen AI モデルは、評価とデプロイ中に、レビューアーのフィードバックデータやトレースなど、追加のメトリクスを生成します。
  • LoggedModelエンティティを使用すると、モデルによって生成されたすべての情報を 1 つのインターフェイスを使用してクエリできます。

ディープラーニング - 効率的なチェックポイント管理:

  • ディープラーニングのトレーニングでは、トレーニング中の特定のポイントでのモデルの状態のスナップショットである複数のチェックポイントが作成されます。
  • MLflow 、チェックポイントごとに個別の LoggedModel を作成し、モデルのメトリクスとパフォーマンスデータを含めます。 これにより、チェックポイントを比較および評価して、最もパフォーマンスの高いモデルを効率的に特定できます。

記録済みモデルの作成

記録済みモデルを作成するには、既存の ワークロードと同じlog_model()API MLflowを使用します。次のコード スニペットは、gen AI、ディープラーニング、および従来の ML ワークフローの記録済みモデルを作成する方法を示しています。

実行可能なノートブックの完全な例については、「 ノートブックの例」を参照してください。

The following code snippet shows how to log a LangChain agent. Use the log_model() method for your flavor of agent.

Python
# Log the chain with MLflow, specifying its parameters
# As a new feature, the LoggedModel entity is linked to its name and params
model_info = mlflow.langchain.log_model(
lc_model=chain,
artifact_path="basic_chain",
params={
"temperature": 0.1,
"max_tokens": 2000,
"prompt_template": str(prompt)
},
model_type="agent",
input_example={"messages": "What is MLflow?"},
)

# Inspect the LoggedModel and its properties
logged_model = mlflow.get_logged_model(model_info.model_id)
print(logged_model.model_id, logged_model.params)

Start an evaluation job and link the metrics to a Logged Model by providing the unique model_id for the LoggedModel:

Python
# Start a run to represent the evaluation job
with mlflow.start_run() as evaluation_run:
eval_dataset: mlflow.entities.Dataset = mlflow.data.from_pandas(
df=eval_df,
name="eval_dataset",
)
# Run the agent evaluation
result = mlflow.evaluate(
model=f"models:/{logged_model.model_id}",
data=eval_dataset,
model_type="databricks-agent"
)
# Log evaluation metrics and associate with agent
mlflow.log_metrics(
metrics=result.metrics,
dataset=eval_dataset,
# Specify the ID of the agent logged above
model_id=logged_model.model_id
)

ノートブックの例

たとえば、 LoggedModelsの使用方法を示すノートブックについては、次のページを参照してください。

モデルの表示と進行状況の追跡

記録済みモデルは、ワークスペース UI で表示できます。

  1. ワークスペースの エクスペリメント タブに移動します。
  2. エクスペリメントを選択します。 次に、[ モデル ] タブを選択します。

このページには、エクスペリメントに関連付けられているすべての記録済みモデルと、そのメトリクス、パラメーター、アーティファクトが含まれています。

モデル追跡 UI。

記録済みモデルで検索およびフィルタリングし、実行全体でメトリクスを追跡するためのチャートを生成できます。

Model Tracking UI メトリクス チャート。

Search 記録済みモデル programmatically

UIに加えて、次の MLflow APIを使用して記録済みモデルを検索します。

Python
## Get a Logged Model using a model_id
mlflow.get_logged_model(model_id = <my-model-id>)

## Get all Logged Models that you have access to
mlflow.search_logged_models()

詳細情報と追加の検索パラメーターについては、 MLflow 3.0 API のドキュメントを参照してください。