メトリックの表示とモデルの評価

完了

Azure Machine Learning で MLflow を使用してモデルのトレーニングと追跡を行った後、メトリックを調べてモデルを評価できます。

  • Azure Machine Learning Studio でメトリックを確認します。
  • MLflow を使用して実行とメトリックを取得します。

Azure Machine Learning では、スクリプトを実行するときにジョブの概念が使用されます。 Azure Machine Learning の複数のジョブ実行は、1 つの実験内でグループ化できます。 MLflow では、各スクリプトが実行されるのと同様の構文が使用されます。これは実験の一部です。

Azure Machine Learning Studio でメトリックを表示する

ジョブが完了したら、Azure Machine Learning Studio でログに記録されたパラメーター、メトリック、成果物を確認できます。

Azure Machine Learning Studio でジョブの実行を確認するときは、実験の一部であるジョブ実行のメトリックを調べることができます。

直感的なユーザー インターフェイスを使用してメトリックを表示するには、次の操作を行います。

  1. https://ml.azure.comに移動して Studio を開きます。
  2. 実験結果を見つけて開き、その詳細を表示します。
  3. [ 詳細 ] タブの [ パラメーター] に、ログに記録されたすべてのパラメーターが表示されます。
  4. [ メトリック ] タブを選択し、探索するメトリックを選択します。
  5. 成果物としてログに記録されるすべてのプロットは、[ イメージ] の下にあります。
  6. モデルの登録とデプロイに使用できるモデル資産は、Outputs + logs の下の models フォルダーに格納されます。

ヒント

MLflow を使用してモデルを追跡する方法の詳細については、ドキュメントを参照してください。

ノートブックで MLflow を使用してメトリックを取得する

Azure Machine Learning でトレーニング スクリプトをジョブとして実行し、MLflow を使用してモデル トレーニングを追跡する場合は、MLflow を使用してノートブック内の実行に対してクエリを実行できます。 ノートブックで MLflow を使用すると、比較のために取得したい実行をより細かく制御できます。

MLflow を使用してランをクエリする場合は、実験とランを参照します。

すべての実験を検索する

MLFlow を使用して、ワークスペース内のすべてのアクティブな実験を取得できます。

experiments = mlflow.search_experiments(max_results=2)
for exp in experiments:
    print(exp.name)

アーカイブされた実験も取得する場合は、次のオプション ViewType.ALL含めます。

from mlflow.entities import ViewType

experiments = mlflow.search_experiments(view_type=ViewType.ALL)
for exp in experiments:
    print(exp.name)

特定の実験を取得するには、次のコマンドを実行します。

exp = mlflow.get_experiment_by_name(experiment_name)
print(exp)

ヒント

MLflow を使用して実験を検索する方法に関するドキュメントを確認する

実行結果の取得

MLflow を使用すると、任意の実験内で実行を検索できます。 実験 ID または実験名が必要です。

たとえば、特定の実行のメトリックを取得する場合は、次のようになります。

mlflow.search_runs(exp.experiment_id)

必要に応じて複数の実験で実行を検索できます。これは、異なる実験間で同じモデルの実行を比較する場合に便利です。 たとえば、異なるユーザーや異なるプロジェクトイテレーションで、同じモデルを別々の実験に記録できます。

ワークスペース内のすべての実験を検索する場合は、 search_all_experiments=True を使用できます。

既定では、実験は start_time順に並べ替えられます。これは、実験が Azure Machine Learning でキューに登録された時刻です。 ただし、この既定値はパラメーター order_by を使用して変更できます。

たとえば、開始時刻で並べ替え、最後の 2 つの結果のみを表示する場合は、次のようにします。

mlflow.search_runs(exp.experiment_id, order_by=["start_time DESC"], max_results=2)

ハイパーパラメーターで特定の組み合わせを持つ実行を検索することもできます。

mlflow.search_runs(
    exp.experiment_id, filter_string="params.num_boost_round='100'", max_results=2
)

ヒント

MLflow を使用して実行を検索する方法に関するドキュメントを確認する