

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

# オープンウェイトモデルの報酬関数の設定
<a name="reward-functions-open-weight"></a>

報酬関数は、応答品質を評価し、モデルトレーニングのフィードバックシグナルを提供します。カスタム Lambda 関数を使用して報酬関数を設定できます。タスク要件に一致するアプローチを選択します。

## 報酬評価用のカスタム Lambda 関数
<a name="rft-custom-lambda-functions"></a>

カスタム Lambda 関数を使用して報酬関数を設定できます。Lambda 関数内では、評価ロジックの実装方法に柔軟性があります。
+ **目標タスク** – コード生成や数学の推論などの目標タスクでは、既知の標準やテストケースに照らして正確性をチェックする検証可能なルールベースのグレーダーを使用します。
+ **主観的なタスク** – 指示に従うタスクやチャットボットとのやり取りなどの主観的なタスクについては、Lambda 関数内の審査者として Amazon Bedrock 基盤モデルを呼び出して、基準に基づいてレスポンスの品質を評価します。

Lambda 関数は、複雑なロジックを実装したり、外部 APIs、複数ステップの計算を実行したり、タスクの要件に応じて複数の評価基準を組み合わせることができます。

**注記**  
カスタム Lambda 関数を使用する場合:  
複雑な評価では、Lambda タイムアウトをデフォルトの 3 秒から最大 15 分に増やします。
Lambda 実行ロールには、「」で説明されているように Lambda 関数を呼び出すためのアクセス許可が必要です[報酬関数の Lambda アクセス許可](rft-open-weight-access-security.md#openai-fine-tuning-lambda-permissions)。

## Lambda 関数の実装の詳細
<a name="rft-lambda-implementation-open-weight"></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"
    }
  ]
}]
```

------

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