

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 強化ファインチューニングによる Amazon Nova モデルのファインチューニング
<a name="rft-nova-models"></a>

ファインチューニングする前に、Amazon Bedrock にはファインチューニングプロセスを作成および管理するための特定のアクセス許可が必要なため、前提条件があることを確認してください。セキュリティとアクセス許可の包括的な情報については、「」を参照してください[Amazon Nova モデルのアクセスとセキュリティ](rft-access-security.md)。

Amazon Nova モデルの強化ファインチューニングを 5 つのステップで実行します。

1. **トレーニングデータセットの提供** – 強化ファインチューニングトレーニングデータセットとして、必要な形式 (JSONL など) でプロンプトをアップロードします。詳細については、「[Amazon Nova モデルのデータを準備する](rft-prepare-data.md)」を参照してください。

1. **Configure Reward Function (grader)** – 正確性、構造、トーン、またはその他の目標に基づいてモデルレスポンスをスコアリングするグレーダーを定義します。報酬関数は、Lambda を使用して目標スコアを計算するために実行できます。モデルを審査員として (コンソールを介して) 選択し、設定した基準と原則に基づいてレスポンスをランク付けすることもできます (コンソールはこれらを自動的に Lambda 関数に変換します）。詳細については、「[Amazon Nova モデルの報酬関数の設定](reward-functions.md)」を参照してください。

1. **強化ファインチューニングジョブを送信する** – ベースモデル、データセット、報酬関数、ハイパーパラメータなどのその他のオプション設定を指定して、強化ファインチューニングジョブを起動します。詳細については、「[Amazon Nova モデルのファインチューニングジョブの作成と管理](rft-submit-job.md)」を参照してください。

1. **トレーニングのモニタリング** – 完了するまでジョブのステータス、報酬メトリクス、トレーニングの進行状況を追跡します。詳細については、「[RFT トレーニングジョブをモニタリングする](rft-submit-job.md#rft-monitor-job)」を参照してください。

1. **ファインチューニングモデル**を使用する – ジョブが完了したら、オンデマンド推論のためにワンクリックで結果の RFT モデルをデプロイします。一貫したパフォーマンスを必要とするミッションクリティカルなワークロードには、プロビジョンドスループットを使用することもできます。「[カスタムモデルの推論を設定する](model-customization-use.md)」を参照してください。**プレイグラウンドでテスト**を使用して、レスポンスを評価し、ベースモデルと比較します。

**重要**  
Amazon Bedrock に最大 20K 個のプロンプトを提供して、モデルの微調整を強化できます。

## サポートされている Nova モデル
<a name="rft-nova-supported-models"></a>

次の表は、強化ファインチューニングでカスタマイズできる Amazon Nova モデルを示しています。

**注記**  
オープンウェイトモデルなど、サポートされているその他のモデルについては、「」を参照してください[OpenAI互換 APIs](fine-tuning-openai-apis.md)。


**強化ファインチューニングでサポートされているモデル**  

| プロバイダー | モデル | モデル ID | 単一リージョンモデルのサポート | 
| --- | --- | --- | --- | 
| Amazon | ノバ 2 ライト | amazon.nova-2-lite-v1:0:256k | us–east–1 | 

# Amazon Nova モデルのアクセスとセキュリティ
<a name="rft-access-security"></a>

強化ファインチューニングを開始する前に、Amazon Bedrock が RFT 固有のオペレーションに必要なアクセスの種類を理解していることを確認してください。RFT には、報酬関数の実行機能のため、標準のファインチューニングを超える追加のアクセス許可が必要です。

信頼関係、Amazon S3 アクセス許可、KMS 暗号化などの基本的なモデルカスタマイズセキュリティ設定については、「」を参照してください[モデルのカスタマイズ用のサービスロールを作成する](custom-model-job-access-security.md#custom-model-job-service-role)。

## 前提条件
<a name="rft-access-prerequisites"></a>

RFT 固有の IAM アクセス許可を追加する前に、次の IAM サービスロールを追加する必要があります。
+ [信頼関係](custom-model-job-access-security.md#custom-model-job-service-role-trust-relationship)
+ [S3 のトレーニングファイルや検証ファイルにアクセスし、出力ファイルを書き込むアクセス許可](custom-model-job-access-security.md#custom-model-job-service-role-s3-permissions)

## RFT 固有の IAM アクセス許可
<a name="rft-iam-permissions"></a>

RFT 機能の既存のモデルカスタマイズサービスロールにこれらのアクセス許可を追加します。

### 報酬関数の Lambda アクセス許可
<a name="rft-lambda-permissions"></a>

Lambda 呼び出しのアクセス許可を追加する必要があります。使用できるポリシーの例を次に示します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:reward-function-name"
            ]
        }
    ]
}
```

### 呼び出しログへのアクセス
<a name="rft-api-log-permissions"></a>

既存の Amazon Bedrock モデル呼び出しログをトレーニングデータとして使用するには、呼び出しログが保存されている Amazon S3 バケットにアクセスするためのアクセス許可を追加します。

入力バケットの Amazon S3 バケットアクセス許可を付与する必要があります。使用できるポリシーの例を次に示します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::s3-invocation-logs-bucket",
                "arn:aws:s3:::s3-invocation-logs-bucket/*"
            ]
        }
    ]
}
```

基本的な IAM ロール、Amazon S3 アクセス許可、暗号化などのセキュリティ設定については、「」を参照してください[モデルのカスタマイズ用のサービスロールを作成する](custom-model-job-access-security.md#custom-model-job-service-role)。

## RLAIF の grader Lambda 関数のアクセス許可
<a name="rft-grader-lambda-permissions"></a>

AI フィードバックからの強化学習 (RLAIF) 報酬関数用に独自の Lambda 関数を作成する場合は、Lambda 実行ロールに特定のアクセス許可を追加する必要があります。

### LLM 審査員の Bedrock アクセス許可
<a name="rft-bedrock-permissions"></a>

LLM-as-Judge 報酬関数 (RLAIF) の場合、基盤モデルを呼び出すアクセス許可を追加します。Lambda 実行ロールに使用できるポリシーの例を次に示します。

**注記**  
独自の Lambda 関数を作成する場合にのみ、これらのアクセス許可を Lambda 実行ロールに追加します。コンソールを使用して Lambda 関数を作成すると、コンソールによって自動的に処理されます。

基盤モデルを使用した審査員呼び出しとしての基盤 LLM の例を次に示します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

推論プロファイルを使用した判事呼び出しとしての bedrock LLM の例を次に示します。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0"
            ],
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
            ]
        }
    ]
}
```

推論プロファイルの前提条件については、[「推論プロファイルの前提条件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html)」を参照してください。

# Amazon Nova モデルのデータを準備する
<a name="rft-prepare-data"></a>

強化ファインチューニングを使用して Amazon Nova モデルをファインチューニングする場合、独自のプロンプトを使用するか、既存の Amazon Bedrock API 呼び出しログをトレーニングデータとして使用できます。

## トレーニングデータの要件とソース
<a name="rft-data-source-options"></a>

トレーニングデータは、次のいずれかのオプションを使用して提供できます。

**注記**  
OpenAI チャット完了形式のみがサポートされています。

### オプション 1: 独自のプロンプトを提供する
<a name="w2aac15c25c17c15b5b7b1"></a>

プロンプトを収集し、`.jsonl` ファイル形式で保存します。カスタムデータセットを JSONL 形式でアップロードすることも、Amazon S3 から既存のデータセットを選択することもできます。JSONL の各レコードは、次の構造で OpenAI チャット完了形式を使用する必要があります。
+ `messages`: このフィールドには、モデルに提供される入力プロンプトを含むユーザー、システム、またはアシスタントロールを含めます。
+ `reference_answer`: このフィールドには、報酬関数がモデルのレスポンスをスコアリングするために使用する期待される出力または評価基準が含まれている必要があります。これは構造化された出力に限定されず、報酬関数が品質を評価するのに役立つ任意の形式を含めることができます。
+ [オプション] グレーディングにグレーダー Lambda が使用するフィールドを追加できます。

**要件:**
+ OpenAI チャット完了形式のプロンプトを含む JSONL 形式 (1 行あたり 1 つのプロンプト)
+ トレーニングデータセットに最低 100 レコード
+ Amazon Bedrock はトレーニングデータセットの形式を自動的に検証します

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  }
}
```

------

### オプション 2: 呼び出しログを使用する
<a name="w2aac15c25c17c15b5b7b3"></a>

強化ファインチューニングジョブを作成すると、Amazon Bedrock に S3 バケットからの既存の呼び出しログをトレーニングデータとして使用させることができます。Amazon Bedrock の場合、呼び出しログはモデル呼び出しの詳細なレコードです。

Amazon S3 からカスタマー側で保存された Invoke/Converse API 呼び出しログをトレーニングに使用できます。

**要件:**
+ Amazon Bedrock の使用に対して API ログ記録を有効にする必要があります
+ ログはサポートされている形式である必要があります (Amazon Bedrock Invoke/Converse API)
+ 少なくとも 100 個のプロンプト例

呼び出しログを使用して強化ファインチューニングを行うには、モデルの呼び出しログをオンに設定し、モデルの呼び出しオペレーションのいずれかを使用して、Amazon S3 バケットをログの送信先として設定していることを確認します。呼び出しログの設定の詳細については、[CloudWatch Logs と Amazon S3 を使用したモデル呼び出しのモニタリング](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html)」を参照してください。

S3 バケットからの呼び出しログを入力として強化ファインチューニングジョブを開始する前に、S3 バケットからログにアクセスするためのアクセス許可を Amazon Bedrock に付与する必要があります。詳細については、「[モデルのカスタマイズのアクセスとセキュリティ](custom-model-job-access-security.md)」を参照してください。

必要に応じて、いずれかのモデル呼び出しオペレーションを使用して呼び出しログのプロンプトと応答のペアにリクエストメタデータを追加し、後でそれを使用してログをフィルタリングできます。Amazon Bedrock は、フィルタリングされたログを使用してモデルを微調整できます。

#### 呼び出しログのプロンプトとレスポンスにリクエストメタデータを追加する
<a name="rft-request-metadata"></a>

呼び出しログを使用すると、Amazon Bedrock が呼び出しログにアタッチされたリクエストメタデータを使用して強化ファインチューニングに使用するトレーニングデータセットプロンプトを特定できます。

以下は、 を使用した `InvokeModel`呼び出しからの呼び出しログの例です`requestMetadata`。

```
{
"schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "2024-09-11T17:16:18Z",
    "accountId": "XXXXX",
    "identity": {
"arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX"
    },
    "region": "us-east-1",
    "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5",
    "operation": "InvokeModel",
    "modelId": "meta.llama3-1-405b-instruct-v1:0",
    "input": {
"inputContentType": "application/json",
        "inputBodyJson": {
"prompt": "story of two dogs",
            "max_tokens_to_sample": 300
        },
        "inputTokenCount": 13
    },
    "output": {
"outputContentType": "application/json",
        "outputBodyJson": {
"type": "completion",
            "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little",
            "stop_reason": "max_tokens",
            "stop": null
        },
        "outputTokenCount": 300
    },
    "requestMetadata": {
"project": "CustomerService",
        "intent": "ComplaintResolution",
        "priority": "High"
    }
}
```

強化ファインチューニングジョブを開始するときに、呼び出しログを入力データソースとして指定できます。Amazon Bedrock コンソール、 API、または SDK を使用して AWS CLI、強化ファインチューニングジョブを開始できます。

##### リクエストメタデータを提供するための要件
<a name="rft-metadata-requirements"></a>

リクエストメタデータは、次の要件を満たしている必要があります。
+ JSON `key:value` 形式で提供されている。
+ キーと値のペアは、最大 256 文字の文字列である必要がある。
+ 最大 16 個のキーと値のペアを指定する。

##### リクエストメタデータのフィルターの使用
<a name="rft-metadata-filters"></a>

リクエストメタデータを含む呼び出しログが利用可能になったら、リクエストメタデータに基づいてフィルターを適用して、モデルを微調整するために含めるプロンプトを選択的に選択できます。たとえば、 `"project": "CustomerService"`および `"priority": "High"`リクエストメタデータを持つもののみを含めることができます。

複数のリクエストメタデータを使用してログをフィルタリングするには、単一のブール演算子`AND`または を使用します`OR`。これらの演算子を組み合わせることはできません。単一リクエストのメタデータフィルタリングには、 `Equals` または `Not Equals`演算子を使用します。

## 効果的なトレーニングデータの特徴
<a name="rft-data-characteristics"></a>

効果的な RFT トレーニングデータには、次の 3 つの主要な特性が必要です。
+ **明確性と一貫性** – 明確であいまいなプロンプトを一貫したフォーマットで使用します。トレーニングを誤解する矛盾するラベル、あいまいな指示、または矛盾する参照回答は避けてください。
+ **多様性** – さまざまな入力形式、エッジケース、およびさまざまなユーザータイプやシナリオにわたる本番稼働用の使用パターンを反映する難易度レベルが含まれます。
+ **効率的な報酬関数 – **迅速に (数分ではなく秒単位で) 実行され、 と並列化され AWS Lambda、費用対効果の高いトレーニングのために一貫したスコアを返す関数を設計します。

## その他のプロパティ
<a name="rft-additional-properties"></a>

RFT データ形式は、コアスキーマ要件 (`messages` および ) を超えるカスタムフィールドをサポートします`reference_answer`。この柔軟性により、報酬関数が適切な評価に必要な追加データを追加できます。

**注記**  
レシピでこれを設定する必要はありません。データ形式は、本質的に追加のフィールドをサポートします。トレーニングデータ JSON に含めるだけで、 `metadata`フィールドの報酬関数に渡されます。

**一般的な追加プロパティ**
+ `task_id` – 追跡用の一意の識別子
+ `difficulty_level` – 問題の複雑さインジケータ
+ `domain` – サブジェクトエリアまたはカテゴリ
+ `expected_reasoning_steps` – ソリューションのステップ数

これらの追加フィールドは評価中に報酬関数に渡されるため、特定のユースケースに合わせた高度なスコアリングロジックが可能になります。

**追加プロパティの例**

------
#### [ Chemistry problem ]

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

`reference_answer` フィールドには、報酬関数がモデルのレスポンスをスコアリングするために使用する期待される出力または評価基準が含まれます。構造化された出力に限定されず、報酬関数が品質を評価するのに役立つ任意の形式を含めることができます。

------
#### [ Math problem with metadata ]

```
{
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  },
  "task_id": "algebra_001",
  "difficulty_level": "easy",
  "domain": "algebra",
  "expected_reasoning_steps": 3
}
```

------

# Amazon Nova モデルの報酬関数の設定
<a name="reward-functions"></a>

報酬関数は、応答品質を評価し、モデルトレーニングのフィードバックシグナルを提供します。カスタム Lambda 関数または Amazon Bedrock がホストする基盤モデルを審査員として使用して報酬関数を設定できます。ガイド付きテンプレートを使用すると、指示に従う、形式検証などの一般的なタスクの報酬関数の作成を簡素化できます。タスク要件に一致するアプローチを選択します。

## Verifiable Rewards (RLVR) による強化学習
<a name="rft-rlvr"></a>

RLVR は、検証可能なルールベースのグレーダーまたはready-to-useテンプレートを使用して、コード生成や数学の推論などの目標タスクのモデルを最適化します。

RLVR (カスタムコード) には 2 つのオプションがあります。

### オプション 1: コンソール提供のテンプレートを使用する
<a name="w2aac15c25c17c17b5b7b1"></a>

Amazon Bedrock コンソールには、grader Lambda 関数のサンプルテンプレートが用意されています。
+ グラウンドトゥルース検証による数学的推論
+ 形式検証と制約チェック
+ 定型コードを使用した汎用グレーダー Lambda テンプレート

[Amazon Bedrock コンソール](https://console.aws.amazon.com/bedrock)の **RFT ジョブの作成**ページで提供されているテンプレートの指示に従います。

### オプション 2: 独自の Lambda 関数を使用する
<a name="w2aac15c25c17c17b5b7b3"></a>

複雑なロジック、外部 APIs、複数ステップの計算、または複数の評価基準の組み合わせに独自の Lambda ARN を使用してカスタム報酬関数を作成します。

**注記**  
独自の Lambda 関数を使用する場合は、次の点に注意してください。  
複雑な評価では、Lambda タイムアウトをデフォルトの 3 秒から最大 15 分に増やします。
Lambda 実行ロールには、「」で説明されているようにモデルを呼び出すためのアクセス許可が必要です[Amazon Nova モデルのアクセスとセキュリティ](rft-access-security.md)。

## AI フィードバックによる強化学習 (RLAIF)
<a name="rft-rlaif"></a>

RLAIF は、ready-to-useテンプレートを持つ AI ベースの審査員を使用した指示フォローやチャットボットとのやり取りなどの主観的なタスクのモデルを最適化します。

**RLAIF (モデルを審査員として):**
+ Amazon Bedrock がホストするベースモデルを審査員として選択する
+ 評価の手順を設定する
+ 評価基準とスコアリングガイドラインを定義する

Amazon Bedrock コンソールで使用可能な LLM-as-Judge プロンプトテンプレート:
+ 指示に従う (モデルのトレーニングを判断する)
+ 要約 (複数ターンダイアログ)
+ 推論評価 (専用ドメインの CoT)
+ RAG の忠実度 (コンテキストベースの Q&A)

**注記**  
コンソールの **Model as Judge** オプションは、トレーニング中に設定を Lambda 関数に自動的に変換します。

## Lambda 関数の実装の詳細
<a name="rft-lambda-implementation"></a>

カスタム Lambda 報酬関数を実装する場合、関数は次の形式でデータを受け入れて返す必要があります。

------
#### [ Input structure ]

```
[{
  "id": "123",
  "messages": [
    {
      "role": "user",
      "content": "Do you have a dedicated security team?"
    },
    {
      "role": "assistant",
      "content": "As an AI developed by Amazon, I don not have a dedicated security team..."
    }
  ],
  "metadata": {
    "reference_answer": {
      "compliant": "No",
      "explanation": "As an AI developed by Company, I do not have a traditional security team..."
    },
    "my_key": "sample-001"
  }
}]
```

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**設計ガイドライン**
+ **回答をランク**付けする – 最も良い回答に明らかに高いスコアを付けます
+ **一貫したチェックを使用する** – タスクの完了、形式の遵守、安全性、妥当な長さを評価する
+ **安定したスケーリングを維持する** – スコアを正規化し、爆発させない

# Amazon Nova モデルのファインチューニングジョブの作成と管理
<a name="rft-submit-job"></a>

Amazon Bedrock コンソールまたは API を使用して、強化ファインチューニング (RFT) ジョブを作成できます。RFT ジョブは、トレーニングデータのサイズ、エポック数、報酬関数の複雑さに応じて、数時間かかる場合があります。

## 前提条件
<a name="rft-prerequisites"></a>
+ 必要なアクセス許可を持つ IAM サービスロールを作成します。RFT 固有のアクセス許可を含む包括的なセキュリティとアクセス許可の情報については、「」を参照してください[Amazon Nova モデルのアクセスとセキュリティ](rft-access-security.md)。
+ (オプション) カスタムモデルに対して行われた入出力データ、RFT ジョブ、または推論リクエストを暗号化します。詳細については、[「カスタムモデルの暗号化](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-custom-job.html)」を参照してください。

## RFT ジョブを作成する
<a name="rft-submit-job-how-to"></a>

任意の方法のタブを選択し、その手順に従います。

------
#### [ Console ]

コンソールで RFT ジョブを送信するには、次の手順を実行します。

1. Amazon Bedrock コンソールを開き、**Tune** で**カスタムモデル**に移動します。

1. **作成**を選択し、次に**強化ファインチューニングジョブを作成します**。

1. **モデルの詳細**セクションで、ベースモデルとして **Amazon Nova 2 Lite** を選択します。

1. **「カスタマイズの詳細**」セクションに、カスタマイズ名を入力します。

1. **トレーニングデータ**セクションで、データソースを選択します。Amazon S3 に保存されている使用可能な呼び出しログから選択するか、トレーニングデータセットファイルの Amazon S3 の場所を選択するか、デバイスから直接ファイルをアップロードします。
**注記**  
トレーニングデータセットは OpenAI Chat Completions データ形式である必要があります。Amazon Bedrock の呼び出し形式または逆形式で呼び出しログを指定すると、Amazon Bedrock は自動的にそれらをチャット完了形式に変換します。

1. **報酬関数**セクションで、報酬メカニズムを設定します。
   + **Model as judge (RLAIF)** - Bedrock がホストするベースモデルを審査者として選択し、評価の手順を設定します。これは、コンテンツモデレーションなどの主観的なタスクに使用します。
**注記**  
コンソールの **Model as judge** オプションは、トレーニング中に設定を Lambda 関数に自動的に変換します。
   + **カスタムコード (RLVR)** - Lambda 関数を介して実行される Python コードを使用してカスタム報酬関数を作成します。これは、コード生成などの目標タスクに使用します。

   詳細については、「[Amazon Nova モデルの報酬関数の設定](reward-functions.md)」を参照してください。

1. (オプション) **Hyperparameters** セクションで、トレーニングパラメータを調整するか、デフォルト値を使用します。

1. **出力データ**セクションに、Amazon Bedrock がジョブ出力を保存する Amazon S3 の場所を入力します。

1. **ロール設定**セクションで、ドロップダウンリストから既存のロールを選択するか、作成するサービスロールの名前を入力します。

1. (オプション) **追加設定**セクションで、Amazon S3 バケット、KMS 暗号化設定、ジョブタグとモデルタグをポイントして検証データを設定します。

1. **強化ファインチューニングジョブの作成**を選択してジョブを開始します。

------
#### [ API ]

を `customizationType`に設定して CreateModelCustomizationJob リクエストを送信します`REINFORCEMENT_FINE_TUNING`。

**必須フィールド:** `roleArn`、`baseModelIdentifier`、、`customModelName`、`jobName`、`trainingDataConfig``outputDataConfig`、 `rftConfig`

**リクエストの例:**

```
{
    "roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole",
    "baseModelIdentifier": "amazon.nova-2.0",
    "customModelName": "my-rft-model",
    "jobName": "my-rft-job",
    "customizationType": "REINFORCEMENT_FINE_TUNING",
    "trainingDataConfig": {
        "s3Uri": "s3://my-bucket/training-data.jsonl"
    },
    "customizationConfig": {
        "rftConfig" : {
            "graderConfig": {
                "lambdaGrader": {
                    "lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name"
                }
            },
            "hyperParameters": {
                "batchSize": 64,
                "epochCount": 2,
                "evalInterval": 10,
                "inferenceMaxTokens": 8192,
                "learningRate": 0.00001,
                "maxPromptLength": 4096,
                "reasoningEffort": "high",
                "trainingSamplePerPrompt": 4
            }
        }
    },
    "outputDataConfig": {
        "s3Uri": "s3://my-bucket/rft-output/"
    }
}
```

**Python API サンプルリクエスト:**

```
import boto3

bedrock = boto3.client(service_name='bedrock')
    
# Set parameters
customizationType = "REINFORCEMENT_FINE_TUNING"
baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k"
roleArn = "${your-customization-role-arn}"
jobName = "MyFineTuningJob"
customModelName = "MyCustomModel"

customizationConfig = {
    'rftConfig' : {
        'graderConfig': {
            'lambdaGrader': {
                'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name'
            }
        },
        'hyperParameters': {
            'batchSize': 64,
            'epochCount': 2,
            'evalInterval': 10,
            'inferenceMaxTokens': 8192,
            'learningRate':0.00001,
            'maxPromptLength': 4096,
            'reasoningEffort': 'high',
            'trainingSamplePerPrompt':4
        }
    }
}

trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"}
outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"}

# Create job
response_ft = bedrock.create_model_customization_job(
    jobName=jobName, 
    customModelName=customModelName,
    roleArn=roleArn,
    baseModelIdentifier=baseModelIdentifier,
    customizationConfig=customizationConfig,
    trainingDataConfig=trainingDataConfig,
    outputDataConfig=outputDataConfig,
    customizationType=customizationType
)

jobArn = response_ft['jobArn']
```

------

## RFT トレーニングジョブをモニタリングする
<a name="rft-monitor-job"></a>

Amazon Bedrock は、RFT トレーニング中にビジュアルグラフとメトリクスによるリアルタイムモニタリングを提供します。これらのメトリクスは、モデルが適切に収束するかどうか、および報酬関数が学習プロセスを効果的に導くかどうかを理解するのに役立ちます。

### ジョブステータスの追跡
<a name="rft-job-status"></a>

Amazon Bedrock コンソールで検証フェーズとトレーニングフェーズを通じて RFT ジョブのステータスをモニタリングできます。

**完了インジケータ:**
+ トレーニングが正常に完了すると、ジョブのステータスは**完了**に変わります
+ カスタムモデル ARN がデプロイ可能になる
+ トレーニングメトリクスが収束しきい値に達する

### リアルタイムトレーニングメトリクス
<a name="rft-real-time-metrics"></a>

Amazon Bedrock は、トレーニングと検証のメトリクスを表示するビジュアルグラフを使用して、RFT トレーニング中にリアルタイムモニタリングを提供します。

#### コアトレーニングメトリクス
<a name="rft-core-metrics"></a>
+ **トレーニング損失** - モデルがトレーニングデータからどの程度学習しているかを測定します
+ **トレーニング報酬統計** - 報酬関数によって割り当てられた報酬スコアを表示します
+ **報酬マージン** - 良い応答報酬と悪い応答報酬の差を測定します
+ **トレーニングセットと検証セットの精度** - トレーニングデータとホールドアウトデータの両方でモデルのパフォーマンスを表示します。

**詳細なメトリクスカテゴリ**
+ **報酬メトリクス** – `critic/rewards/mean`、`critic/rewards/max`、 `critic/rewards/min` (報酬分散）、 `val-score/rewards/mean@1` (検証報酬)
+ **モデルの動作** – `actor/entropy` (ポリシーのバリエーション、高いほど探索的)
+ **トレーニングの状態** — `actor/pg_loss` (ポリシー勾配損失）、 `actor/pg_clipfrac` (クリップされた更新の頻度）、 `actor/grad_norm` (勾配の大きさ)
+ **レスポンス特性** – `prompt_length/mean`、`prompt_length/max`、 `prompt_length/min` (入力トークン統計)`response_length/mean`、、 `response_length/min` (出力トークン統計)`response_length/max`、および `response/aborted_ratio` (不完全な生成レート、0 はすべての完了に等しくなります)
+ **パフォーマンス** — `perf/throughput` (トレーニングスループット）、 `perf/time_per_step` (トレーニングステップあたりの時間）、 `timing_per_token_ms/*` (トークンあたりの処理時間)
+ **リソース使用量** – `perf/max_memory_allocated_gb`、 `perf/max_memory_reserved_gb` (GPU メモリ）、 `perf/cpu_memory_used_gb` (CPU メモリ)

#### トレーニングの進行状況の視覚化
<a name="rft-progress-visualization"></a>

コンソールには、RFT ジョブの進行に応じてリアルタイムで更新されるインタラクティブなグラフが表示されます。これらの視覚化は、以下に役立ちます。
+ 最適なパフォーマンスへの収束を追跡する
+ 潜在的なトレーニング問題を早期に特定する
+ 最適な停止ポイントを決定する
+ 異なるエポック間でパフォーマンスを比較する

## 推論をセットアップする
<a name="rft-setup-inference"></a>

ジョブが完了したら、オンデマンド推論用の RFT モデルをデプロイするか、プロビジョンドスループットを使用して一貫したパフォーマンスを実現します。推論の設定については、「」を参照してください[カスタムモデルの推論を設定する](model-customization-use.md)。

**プレイグラウンドでテスト**を使用してレスポンスを評価し、ベースモデルと比較します。完了した RFT モデルの評価については、「」を参照してください[RFT モデルを評価する](rft-evaluate-model.md)。