

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为开放式权重模型设置奖励函数
<a name="reward-functions-open-weight"></a>

奖励函数评估响应质量并为模型训练提供反馈信号。您可以使用自定义 Lambda 函数设置奖励函数。选择符合您的任务要求的方法。

## 用于奖励评估的自定义 Lambda 函数
<a name="rft-custom-lambda-functions"></a>

您可以使用自定义 Lambda 函数设置奖励函数。在您的 Lambda 函数中，您可以灵活地实现评估逻辑：
+ **目标任务** — 对于代码生成或数学推理等客观任务，请使用基于规则的可验证评分器，根据已知标准或测试用例检查正确性。
+ **主观任务** — 对于主观任务，例如指导关注或聊天机器人互动，请在 Lambda 函数中调用 Amazon Bedrock 基础模型作为评委，根据您的标准评估响应质量。

根据您的任务要求，您的 Lambda 函数可以实现复杂逻辑、集成外部 API、执行多步骤计算或组合多个评估标准。

**注意**  
使用自定义 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"
    }
  ]
}]
```

------

**设计指南**
+ **对回复进行排名** — 给最佳答案一个明显更高的分数
+ **使用一致的检查** — 评估任务完成情况、格式遵守情况、安全性和合理的长度
+ **保持稳定的缩放比例** — 保持分数标准化且不可被利用