监控 RFT 训练
在训练期间监控关键指标,确保有效学习,尽早发现潜在问题。
要跟踪的关键指标
在训练期间使用 MLflow 监控以下指标:
奖励指标:
-
平均奖励分数:模型响应的整体质量(应随时间增加)
-
奖励分布:获得高、中、低奖励的响应百分比
-
训练奖励与验证奖励:通过对比检测过拟合
训练指标:
-
策略更新次数:成功更新权重的次数
-
推演完成率:成功完成评测的样本占比
异常模式:
-
奖励趋于平稳(表明学习效果差)
-
训练奖励上升,而验证奖励下降(过拟合)
-
奖励方差随时间显著增大(不稳定)
-
奖励函数错误率偏高(实现问题)
何时停止训练:
-
已达到目标性能指标
-
奖励趋于平稳且不再提升
-
验证性能下降(检测到过拟合)
-
已达到最大训练预算
RFT 之后的评测
训练完成后,评测经过微调的模型以判断性能提升情况:
-
运行 RFT 评测作业:使用 RFT 训练产出的检查点作为模型
-
与基线对比:在相同的测试集上评测基础模型和经过微调的模型
-
分析指标:查看任务特定指标(准确率、奖励分数等)
-
进行定性审查:人工抽查样本输出质量
有关详细的评测流程,请参阅“评测”一节。
使用经过微调的模型
访问检查点:
训练完成后,找到检查点:
-
进入 S3 中的
output_path -
下载并解压缩
output.tar.gz -
打开
manifest.json -
复制
checkpoint_s3_bucket值
部署用于推理:
使用检查点 S3 路径进行推理或进一步训练:
run: model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"
有关部署和推理的说明,请参阅“推理”一节。
限制与最佳实践
目前的局限性:
Beta 限制:
-
需要为 RFT 创建新的 RIG 组。此限制将在正式发布时解决。
-
实例类型要求:仅支持 P5 实例(至少需要 8x P5.48xlarge)。即将推出:对更小实例类型的支持(预计 2025 年 1 月中旬)。
功能限制:
-
15 分钟 Lambda 超时:奖励函数必须在 15 分钟内完成执行
-
仅支持单轮对话:不支持多轮对话
-
验证数据集:训练期间不支持使用。请使用单独的评测作业来评测训练进度。
训练注意事项:
-
低奖励场景:当只有不到 5% 的示例获得正奖励时,训练可能难以进行,此时建议先使用 SFT
-
数据要求:需具备足够多样性,才能保证学习效果
-
计算成本:比监督式微调更昂贵
Nova Forge 消除了以下部分限制:
-
支持多轮对话
-
允许奖励函数超过 15 分钟超时
-
提供高级算法和调优选项
-
专为复杂企业使用案例设计,专门针对构建前沿模型进行了调优
最佳实践:
从小规模开始逐步扩展:
-
从最小规模数据集(100 – 200 个样本)和少量训练 epoch 开始
-
在扩大规模之前验证方法
-
根据结果逐步增加数据集规模和训练步数
先用 SFT 建立基线:
-
如果奖励分数持续偏低(例如始终为 0),应先执行 SFT,再进行 RFT
-
RFT 需要具备合理的基线性能,才能实现有效优化
设计高效的奖励函数:
-
在几秒钟内执行完毕(而非几分钟)
-
尽量减少外部 API 调用
-
使用高效的算法与数据结构
-
实现完善的错误处理机制
-
训练前进行充分测试
-
充分利用 Lambda 的并行扩展能力
主动监控训练:
-
跟踪平均奖励分数随时间的变化
-
观察各样本之间的奖励分布
-
对比训练奖励与验证奖励
-
留意异常模式(平稳、过拟合、不稳定)
根据结果进行迭代:
-
如果多次迭代后奖励仍无提升,请调整奖励函数的设计
-
提升数据集的多样性以提供更清晰的学习信号
-
如果奖励仍接近零,建议改用 SFT
-
尝试不同的超参数(学习率、批次大小)
优化数据质量:
-
确保样本多样且具有代表性
-
包含边界情况和困难样本
-
验证奖励函数能够对各类样本进行正确评分
-
移除或修复会干扰奖励函数的样本
问题排查
奖励函数错误:
症状:训练期间奖励函数调用的错误率较高
问题 |
症状 |
解决方案 |
|---|---|---|
Lambda 超时 |
15 分钟后频繁超时 |
优化函数性能;对于复杂评测,建议使用 Nova Forge |
并发不足 |
Lambda 节流错误 |
提高 lambda_concurrency_limit 或申请提高配额 |
返回格式无效 |
训练失败并出现格式错误 |
验证返回结构是否符合要求的接口规范 |
未处理的异常 |
间歇性错误 |
添加完善的错误处理与日志记录 |
外部 API 故障 |
评分不一致 |
实现重试逻辑和备用策略 |
训练表现不佳:
症状:奖励没有提升或停留在较低水平
解决方法:
-
验证奖励函数正确性:使用已知的优/劣样本进行测试
-
检查基线性能:评测基础模型;如果准确率接近零,建议先进行 SFT
-
提升数据多样性:添加更多覆盖不同场景的多样化样本
-
调整超参数:尝试不同学习率或批次大小
-
检查奖励信号质量:确保奖励可区分优劣响应
过拟合:
症状:训练奖励上升,而验证奖励下降
解决方法:
-
减少训练步数:提前停止训练
-
扩大数据集规模:增加训练样本数量
-
添加正则化:调整
weight_decay或entropy_coeff -
提升数据多样性:确保训练集代表完整的数据分布