

# 各イテレーションにおける進行状況のモニタリング
<a name="nova-model-monitor"></a>

MLflow を使用してメトリクスを追跡できます。

## Nova Customization - SageMaker HyperPod の MLFlow セットアップ
<a name="nova-customization-mlflow-setup"></a>

SageMaker HyperPod 環境がメトリクスを MLFlow に出力できるようにするには、追加のセットアップを行う必要があります。

1. Amazon SageMaker AI を開きます

1. SageMaker Studio を選択します

   1. 既に作成されたプロファイルがある場合は、[Studio を開く] を選択します。

   1. プロファイルが作成されていない場合は、[SageMaker ドメインを作成] を選択して設定します

1. MLFlow を選択します。作成された MLFlow アプリがない場合は、[MLFlow アプリを作成] を選択します

1. ARN を取得するには、ML フローアプリのコピー/貼り付けボタンまたは [詳細を表示] メニュー項目をクリックします。これは、トレーニングジョブを送信するときに必要になります。  
![\[ARN が表示された ML フローアプリの [詳細を表示] ボタン。\]](http://docs.aws.amazon.com/ja_jp/nova/latest/nova2-userguide/images/how-it-works.png)

1. HyperPod クラスター実行ロールで、以下のポリシーを追加します。これにより、HyperPod クラスターは MLFlow API を呼び出してメトリクスを発行できます。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sagemaker-mlflow:*",
            "Resource": [
                "arn:aws:sagemaker:us-east-1:372836560492:mlflow-app/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListMlflowTrackingServers",
                "sagemaker:CallMlflowAppApi"
            ],
            "Resource": "*"
        }
    ]
}
```

### CLI を介してジョブを送信する
<a name="submitting-job-cli"></a>

コマンドラインまたはレシピ yaml で 4 つの新しいオーバーライドパラメータを指定します。

1. `mlflow_tracking_uri`: MLFlow アプリの ARN

1. `mlflow_experiment_name`: この実験実行の名前

1. `mlflow_experiment_name`: メトリクスが MLFlow に保存される実験名

1. `mlflow_run_name`: この実験の名前

コマンドライン

```
--override-parameters '{"recipes.run.mlflow_tracking_uri": "arn:aws:sagemaker:us-east-1:925548216816:mlflow-app/app-B6XOUNCHQM4W", "recipes.run.mlflow_experiment_name": "myuser-sft-lora-exp1", "recipes.run.mlflow_run_name": "myuser-sft-lora-exp1-202512181940"}'
```

yaml:

```
## Run config
run:
  mlflow_tracking_uri: "arn:aws:sagemaker:us-east-1:925548216816:mlflow-app/app-B6XOUNCHQM4W" 
  mlflow_experiment_name: "myuser-sft-lora-exp1"
  mlflow_run_name: "myuser-sft-lora-exp1-202512181940"
```

### SageMaker Studio UI を介してジョブを送信する
<a name="submitting-job-ui"></a>

MLFlow 統合は既に SageMaker Studio UI エクスペリエンスに組み込まれています。トレーニングジョブを送信するときは、使用する MLFlow アプリインスタンスを指定するだけです。

1. SageMaker Studio で、[モデル] > [Nova 2.0 Lite] > [カスタマイズ] > [UI でカスタマイズ] に移動します。

1. [高度な設定] セクションを展開します

1. トレーニングメトリクスを送信する MLFlow アプリを選択します。ここで実験名と実験実行を設定することもできます。

![\[ML フローアプリ。\]](http://docs.aws.amazon.com/ja_jp/nova/latest/nova2-userguide/images/MLFlow-App.png)


### AWS AWS CLI を介してジョブを送信する
<a name="submitting-job-cli-aws"></a>

AWS AWS CLI を使用する場合は、MLflow アプリを作成し、トレーニングジョブ API リクエストへの入力として渡す必要があります。

```
mlflow_app_name="<enter your MLflow app name>"
role_arn="<enter your role ARN>"
bucket_name="<enter your bucket name>"
region="<enter your region>"

mlflow_app_arn=$(aws sagemaker create-mlflow-app \
  --name $mlflow_app_name \
  --artifact-store-uri "s3://$bucket_name" \
  --role-arn $role_arn \
  --region $region)
```

## MLflow アプリを作成する
<a name="nova-model-monitor-mlflow-create"></a>

**Studio UI の使用**: Studio UI を使用してトレーニングジョブを作成すると、デフォルトの MLflow アプリが自動的に作成され、[詳細オプション] でデフォルトで選択されます。

**CLI の使用**: CLI を使用する場合は、MLflow アプリを作成し、トレーニングジョブ API リクエストへの入力として渡す必要があります。

```
mlflow_app_name="<enter your MLflow app name>"
role_arn="<enter your role ARN>" 
bucket_name="<enter your bucket name>" 
region="<enter your region>"

mlflow_app_arn=$(aws sagemaker create-mlflow-app \
  --name $mlflow_app_name \
  --artifact-store-uri "s3://$bucket_name" \
  --role-arn $role_arn \
  --region $region)
```

## MLflow アプリにアクセスする
<a name="nova-model-monitor-mlflow-access"></a>

**CLI の使用:** MLflow アプリ UI にアクセスするための署名付き URL を作成します。

```
aws sagemaker create-presigned-mlflow-app-url \
  --arn $mlflow_app_arn \
  --region $region \
  --output text
```

**Studio UI の使用:** Studio UI は、MLflow に保存されている主要なメトリクスを表示し、MLflow アプリ UI へのリンクを提供します。

## 追跡する主要なメトリクス
<a name="nova-model-monitor-mlflow-metircs"></a>

これらのメトリクスをイテレーションごとにモニタリングして改善を評価し、ジョブの進行状況を追跡します。

**SFT の場合**
+ トレーニング損失の曲線
+ 消費されたサンプルの数とサンプルを処理するまでの時間
+ ホールドアウトテストセットのパフォーマンス精度
+ 形式コンプライアンス (有効な JSON 出力レートなど)
+ ドメイン固有の評価データの Perplexity

**RFT の場合**
+ トレーニング中の平均報酬スコア
+ 報酬分布 (高報酬レスポンスの割合)
+ 検証データにおける報酬の傾向 (オーバーフィットに注意)
+ タスク固有の成功率 (コード実行の合格率、数学の問題の精度など)

**全般**
+ イテレーション間のベンチマークパフォーマンス差分
+ 代表的なサンプルに対する人間の評価スコア
+ 本番メトリクス (反復的にデプロイする場合)

## 停止するタイミングの判断
<a name="nova-model-monitor-mlflow-stop"></a>

以下の場合に反復処理を停止します。
+ **パフォーマンスが頭打ちになった場合**: 追加のトレーニングを行っても、ターゲットメトリクスに有意な改善が見られない
+ **手法の切り替えが有効な場合**: ある手法でパフォーマンスが停滞した場合は、パフォーマンスの上限を突破するために別の手法に切り替えてみてください (例: SFT → RFT → SFT)
+ **ターゲットメトリクスに達成した場合**: 成功基準が満たされた
+ **リグレッションが検出された場合**: 新しいイテレーションによってパフォーマンスが低下した (以下のロールバック手順を参照)

詳細な評価手順については、「**評価**」セクションを参照してください。