

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

# 通过增强微调来微调 Amazon Nova 型号
微调 Amazon Nova 机型

在微调之前，请确保您具备先决条件，因为 Amazon Bedrock 需要特定的权限才能创建和管理微调流程。有关全面的安全和权限信息，请参阅[Amazon Nova 机型的访问和安全](rft-access-security.md)。

通过 5 个步骤对 Amazon Nova 型号进行强化微调：

1. **提供训练数据集**-上传所需格式（例如 JSONL）的提示作为强化微调训练数据集。有关更多信息，请参阅 [为 Amazon Nova 机型准备数据](rft-prepare-data.md)。

1. **配置奖励功能（评分器）**-定义评分者以根据正确性、结构、语气或其他目标对模型响应进行评分。可以使用 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)。使用 Playg **round 中的测试**来评估响应并将其与基础模型进行比较。

**重要**  
您最多可以向 Amazon Bedrock 提供 2 万条提示，用于对模型进行加固微调。

## 支持的新星型号


下表显示了您可以通过钢筋微调进行自定义的 Amazon Nova 型号：

**注意**  
有关其他支持的型号（包括开放式重量型号）的信息，请参阅[使用兼容功能微调开放式重量模型 OpenAI APIs](fine-tuning-openai-apis.md)。


**支持钢筋微调的模型**  

| Provider | 模型 | 模型 ID | 支持单区域模型 | 
| --- | --- | --- | --- | 
| Amazon | 新星 2 精简版 | amazon.nova-2-lite-v 1:0:256 k | us-east-1 | 

# Amazon Nova 机型的访问和安全
访问和安全

在开始强化微调之前，请务必了解 Amazon Bedrock 需要什么样的访问权限才能进行 RFT 特定的操作。由于RFT具有奖励功能执行功能，因此除了标准微调外，还需要其他权限。

有关基本模型自定义安全设置，包括信任关系、Amazon S3 权限和 KMS 加密，请参阅[为模型自定义创建 IAM 服务角色](custom-model-job-access-security.md#custom-model-job-service-role)。

## 先决条件


在添加特定于 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 权限


将这些权限添加到您现有的模型自定义服务角色中，以实现 RFT 功能。

### 奖励函数的 Lambda 权限


您必须添加 Lambda 调用权限。以下显示了您可以使用的策略示例：

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

### 调用日志访问权限


要使用现有 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 权限和加密在内的安全设置，请参阅[为模型自定义创建 IAM 服务角色](custom-model-job-access-security.md#custom-model-job-service-role)。

## RLAIF 的评分者 Lambda 函数权限


如果您为通过 AI 反馈进行强化学习 (RLAIF) 奖励函数创建自己的 Lambda 函数，则需要向 Lambda 执行角色添加特定权限。

### 法学硕士评委的基石权限


对于 LLM-as-Judge奖励函数 (RLAIF)，添加调用基础模型的权限。下面显示了您可以用于 Lambda 执行角色的示例策略。

**注意**  
只有在您创建自己的 Lambda 函数时，才会将这些权限添加到您的 Lambda 执行角色中。通过控制台创建 Lambda 函数时，控制台会自动处理此问题。

以下是使用基础模型作为判断调用的基岩法学硕士的示例：

```
{
    "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 机型准备数据
准备数据

当您通过强化微调对 Amazon Nova 模型进行微调时，您可以自带提示或使用现有的 Amazon Bedrock API 调用日志作为训练数据。

## 训练数据要求和来源


您可以通过以下选项之一提供训练数据：

**注意**  
我们仅支持 OpenAI 聊天完成格式。

### 选项 1：提供您自己的提示


收集您的提示并以 `.jsonl` 文件格式存储它们。您可以上传 JSONL 格式的自定义数据集，也可以从 Amazon S3 中选择现有数据集。JSONL 中的每条记录都必须使用以下结构的 OpenAI 聊天完成格式：
+ `messages`：在此字段中，包括包含向模型提供的输入提示的用户、系统或助手角色。
+ `reference_answer`：在此字段中，它应包含您的奖励函数用来对模型的响应进行评分的预期输出或评估标准。它不仅限于结构化输出，还可以包含任何有助于您的奖励功能评估质量的格式。
+ [可选] 您可以添加评分者 Lambda 用于评分的字段。

**要求：**
+ JSONL 格式，提示符采用 OpenAI 聊天完成格式（每行一个提示）
+ 训练数据集中至少有 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：使用调用日志


在创建强化微调任务时，您可以让 Amazon Bedrock 使用您的 S3 存储桶中的现有调用日志作为训练数据。对于 Amazon Bedrock，调用日志是模型调用的详细记录。

您可以使用来自 Amazon S3 的客户端存储 Invoke/Converse 的 API 调用日志进行培训。

**要求：**
+ 必须启用 API 日志才能使用 Amazon Bedrock
+ 日志必须采用支持的格式（Amazon Bedrock Invoke/Converse API）
+ 至少 100 个提示示例

要使用调用日志进行强化微调，请将模型调用日志设置为开启，使用其中一个模型调用操作，并确保已将 Amazon S3 存储桶设置为日志的目标。有关设置调用日志的更多信息，请参阅[使用 CloudWatch 日志和 Amazon S3 监控模型调用](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html)。

在以 S3 存储桶中的调用日志作为输入开始强化微调任务之前，必须提供 Amazon Bedrock 访问来自 S3 存储桶的日志的权限。有关更多信息，请参阅 [模型自定义访问权限和安全性](custom-model-job-access-security.md)。

您可以选择使用其中一个模型调用操作向调用日志中的提示-响应对添加请求元数据，稍后再使用该元数据来筛选日志。Amazon Bedrock 可以使用筛选后的日志来微调模型。

#### 在调用日志中的提示和响应中添加请求元数据


通过调用日志，您可以使用附加到调用日志的请求元数据来识别您希望 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 控制台、 AWS CLI API 或 SDK 开始钢筋微调工作。

##### 提供请求元数据的要求


请求元数据必须满足以下要求：
+ 以 JSON `key:value` 格式提供。
+ 键值对必须是长度不超过 256 个字符的字符串。
+ 最多提供 16 个键值对。

##### 使用请求元数据筛选条件


一旦包含请求元数据的调用日志可用，您就可以根据请求元数据应用过滤器，有选择地选择要包含哪些提示以微调模型。例如，您可能只想包含那些带有`"project": "CustomerService"`和`"priority": "High"`请求元数据的内容。

要使用多个请求元数据筛选日志，请使用单个布尔运算符`AND`或`OR`。您不能组合这些运算符。要筛选单个请求的元数据，请使用`Equals`或`Not Equals`运算符。

## 有效训练数据的特征


有效的 RFT 训练数据需要三个关键特征：
+ **清晰度和一致性** — 使用格式一致的清晰、毫不含糊的提示。避免使用相互矛盾的标签、模棱两可的说明或相互矛盾的参考答案，从而误导培训。
+ **多样性** — 包括不同的输入格式、边缘案例和难度级别，以反映不同用户类型和场景的生产使用模式。
+ **高效的奖励函数** — 设计可快速执行（几秒钟，而不是几分钟）、与之并行并行并返回一致分数的函数 AWS Lambda，从而实现经济高效的训练。

## 其它属性


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 机型设置奖励功能
设置奖励功能

奖励函数评估响应质量并为模型训练提供反馈信号。您可以使用自定义 Lambda 函数或 Amazon Bedrock 托管的基础模型作为评委来设置奖励函数。引导式模板可用于简化常见任务的奖励功能创建，例如指导跟踪和格式验证。选择符合您的任务要求的方法。

## 通过可验证奖励 (RLVR) 进行强化学习


RLVR 使用可验证的基于规则的评分器或模板来优化目标任务（例如代码生成或数学推理）的模型。 ready-to-use

RLVR（自定义代码）有两个选项：

### 选项 1：使用控制台提供的模板


Amazon Bedrock 控制台为平地机 Lambda 函数提供了示例模板：
+ 具有真实性验证的数学推理
+ 格式验证和约束检查
+ 带有样板代码的通用评分器 Lambda 模板

按照 [Amazon Bedrock](https://console.aws.amazon.com/bedrock) 控制台中**创建 RFT 任务**页面上提供的模板中的说明进行操作。

### 选项 2：自带自己的 Lambda 函数


使用您自己的 Lambda ARN 创建自定义奖励函数，用于复杂逻辑、外部计算 APIs、多步骤计算或组合多个评估标准。

**注意**  
如果您自带了 Lambda 函数，请记住以下几点：  
将复杂评估的 Lambda 超时时间从默认 3 秒增加到最长 15 分钟。
Lambda 执行角色需要权限才能调用模型，如中所述。[Amazon Nova 机型的访问和安全](rft-access-security.md)

## 通过人工智能反馈进行强化学习 (RLAIF)


RLAIF使用带有模板的基于人工智能的评委来优化主观任务的模型，例如教学跟踪或聊天机器人互动。 ready-to-use

**对于 RLAIF（模特作为评委）：**
+ 选择 Amazon Bedrock 托管的基本模型作为评委
+ 配置评估指令
+ 定义评估标准和评分指南

Amazon Bedrock 控制台中可用的 LLM-as-Judge提示模板：
+ 指导如下（裁判模型训练）
+ 摘要（多回合对话框）
+ 推理评估（专门领域的 CoT）
+ RAG 忠诚度（基于情境的问答）

**注意**  
在训练期间，控制台的 “**模型即判断**” 选项会自动将您的配置转换为 Lambda 函数。

## Lambda 函数实现细节


实现自定义 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 机型创建和管理微调任务
创建微调作业

您可以使用 Amazon Bedrock 控制台或 API 创建钢筋微调 (RFT) 任务。RFT 作业可能需要几个小时，具体取决于训练数据的大小、周期数和奖励函数的复杂性。

## 先决条件

+ 创建具有所需权限的 IAM 服务角色。有关全面的安全和权限信息，包括特定于 RFT 的权限，请参阅。[Amazon Nova 机型的访问和安全](rft-access-security.md)
+ （可选）加密输入和输出数据、您的 RFT 作业或向自定义模型发出的推理请求。有关更多信息，请参阅[自定义模型的加密](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-custom-job.html)。

## 创建你的 RFT 作业


选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

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

要在控制台中提交 RFT 作业，请执行以下步骤：

1. 打开 Amazon Bedrock 控制台，然后导航到 **Tune** 下的**自定义模型**。

1. 选择**创建**，然后选择**创建钢筋微调作业**。

1. 在**型号详情**部分，选择 **Amazon Nova 2 Lite** 作为您的基本型号。

1. 在**自定义详细信息**部分中，输入自定义名称。

1. 在**训练数据**部分，选择您的数据源。您可以从存储在 Amazon S3 中的可用调用日志中进行选择，也可以选择训练数据集文件的 Amazon S3 位置，或者直接从您的设备上传文件。
**注意**  
您的训练数据集应采用 OpenAI 聊天完成数据格式。如果您以 Amazon Bedrock 调用或对话格式提供调用日志，Amazon Bedrock 会自动将其转换为 “聊天完成” 格式。

1. 在**奖励功能**部分，设置您的奖励机制：
   + **Model as judge (RLAIF)**-选择 Bedrock 托管的基本模型作为评判并配置评估说明。将其用于主观任务，例如内容审核。
**注意**  
在训练期间，控制台的 “**模型即判断**” 选项会自动将您的配置转换为 Lambda 函数。
   + **自定义代码 (RLVR)-使用通过 L** ambda 函数执行的 Python 代码创建自定义奖励函数。将其用于诸如代码生成之类的客观任务。

   有关更多信息，请参阅 [为 Amazon Nova 机型设置奖励功能](reward-functions.md)。

1. （可选）在 “**超参数**” 部分中，调整训练参数或使用默认值。

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 训练作业
监控您的 RFT 训练作业

Amazon Bedrock 在 RFT 训练期间通过可视化图表和指标提供实时监控。这些指标可以帮助您了解模型是否正确收敛以及奖励功能是否有效地指导了学习过程。

### Job 状态跟踪


您可以在 Amazon Bedrock 控制台中通过验证和培训阶段监控您的 RFT 作业状态。

**完成指标：**
+ 训练成功**完成**后，Job 状态更改为 “已完成”
+ 自定义模型 ARN 可供部署
+ 训练指标达到收敛阈值

### 实时训练指标


Amazon Bedrock 通过显示训练和验证指标的可视化图表在 RFT 训练期间提供实时监控。

#### 核心训练指标

+ **训练损失**-衡量模型从训练数据中学习的程度
+ **训练奖励统计信息**-显示由您的奖励函数分配的奖励分数
+ **奖励幅度**-衡量好坏回应奖励之间的区别
+ **训练集和验证集的精度**-显示模型在训练和保留数据上的性能

**详细的指标类别**
+ **奖励指标** — `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/max`、`response_length/min`（输出令牌统计信息）和`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 内存）

#### 训练进度可视化


控制台显示交互式图表，这些图表会随着您的 RFT 任务进行实时更新。这些可视化可以帮助您：
+ 追踪趋同以实现最佳性能
+ 尽早发现潜在的培训问题
+ 确定最佳停靠点
+ 比较不同时期的表现

## 设置推理


任务完成后，部署 RFT 模型以进行按需推理，或者使用预配置吞吐量以获得稳定的性能。有关设置推理的信息，请参阅[为自定义模型设置推理](model-customization-use.md)。

使用 Playg **round 中的测试**来评估响应并将其与基础模型进行比较。要评估已完成的 RFT 模型，请参阅[评估您的 RFT 模型](rft-evaluate-model.md)。