用途
本技能用于指导使用 Transformer Reinforcement Learning(TRL)库实现 GRPO(Group Relative Policy Optimization)微调语言模型。适用于以下需求:强制特定输出格式(如 XML 标签、JSON、结构化推理);教授具有客观正确性指标的可验证任务(数学、编程、事实核查);通过奖励思维链模式提升推理能力;在无标注偏好数据的情况下将模型对齐到领域特定行为;同时优化多个目标(格式 + 正确性 + 风格)。
不适用场景:简单的监督微调任务(应使用 SFT);没有明确奖励信号的任务;已有高质量偏好对时(应使用 DPO/PPO)。
主要能力
- 讲解 GRPO 算法核心机制:为每个提示生成多个补全(组大小 4-16),在组内用奖励函数比较补全,更新策略以偏向组内高奖励响应。与 PPO 的关键区别是不需要单独的奖励模型,样本效率更高,实现和调试更简单。
- 奖励函数设计:建议组合多个奖励函数,每个处理一个方面(格式、正确性、风格);适当缩放奖励权重;使用增量奖励给予部分合规的分数;独立测试每个奖励函数。奖励类型包括正确性(权重 2.0)、格式(0.5-1.0)、长度(0.1-0.5)、风格(-0.5 到 0.5)。
- 数据集准备:提示需为聊天格式(包含 role 和 content 的字典列表),包含系统提示,可验证任务需包含真实答案列。
- 训练配置:提供内存优化配置(小 GPU)和高性能配置(大 GPU)两套模板,涵盖学习率、批大小、num_generations、max_prompt_length、max_completion_length、bf16、optim、use_vllm 等参数。
- 模型设置与训练:支持标准 Transformers 设置和 Unsloth 设置(快 2-3 倍),支持 LoRA/PEFT 参数高效训练。
- 部署与推理:保存和合并 LoRA 适配器,使用 pipeline 进行推理。
- 最佳实践清单:训练前验证数据集格式、测试奖励函数、计算 max_prompt_length、选择 num_generations、设置日志;训练中监控奖励进展和 reward_std、检查 OOM、采样生成、验证格式合规;训练后合并 LoRA 权重、测试、对比基线、记录超参数。
- 故障排查:隔离奖励函数、检查数据分布、降低复杂度、监控生成、验证提取逻辑。
使用方式
技能加载后,应先阅读完整文件再实现 GRPO 训练;从最简单的奖励函数(如基于长度)开始验证设置;使用 templates/ 目录中的模板作为起点;参考 examples/ 中的任务特定实现;按顺序遵循工作流,不要跳过步骤;增量调试,一次添加一个奖励函数。关键提醒:始终使用多个奖励函数(3-5 个为佳);监控奖励指标而非损失;训练前测试奖励函数;从小规模开始(num_generations=4)逐步扩大;频繁保存检查点(每 100 步)。
适用场景
需要强制输出格式、教授可验证任务、提升推理能力、对齐领域行为或多目标优化的语言模型微调场景。
限制
本技能面向专家级实现,初学者应先从监督微调开始再尝试 GRPO。不适用于简单 SFT、无明确奖励信号或已有高质量偏好对的任务。