大模型应用
任务成功可算法验证时,用 TRL GRPO+RLVR…
适用于数学、代码、工具调用、结构化输出等有可验证 pass/fail 信号的任务,通过 GRPO 和可验证奖励放大模型已有的正确行为。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
任务成功可算法验证时,用 TRL GRP特定
解决思路
- 使用 TRL 的 GRPOTrainer,并启用 vLLM-backed generation 作为参考 recipe。
- 配置 GRPOConfig 的关键参数:output_dir='./outputs-grpo',use_vllm=True,num_generations=8,learning_rate=5e-7,beta=0.01,per_device_train_batch_size=8,gradient_accumulation_steps=4,bf16=True,logging_steps=10,seed=3407。
- 在 GRPOConfig 中设置 vllm_mode:单 GPU 用 'colocate';多 GPU 用 'server'。
- vllm_mode='colocate':在同一 GPU 上运行生成和训练,这是单 GPU 机器的默认路径。
- vllm_mode='server':指向独立 vLLM server 进程,这是多 GPU 路径,让生成和训练不竞争同一设备。
- num_generations 至少设为 8;这是下限,不是建议。GRPO 的 advantage 估计相对于 group mean,少于 8 个样本会让 baseline 噪声过大。
- 使用复合 reward:format_reward 加 correctness_reward。格式正确但答案错误和格式错误不应得相同分数;只用 correctness 会丢失格式信号。
- 从 learning_rate=5e-7 和 beta=0.01 开始;只有在基础运行稳定且完成 reward inspection 之后才偏离这些值。
- 按目标模型规模类别查 references/grpo-memory.md 做内存 sizing。
- 实例化 GRPOTrainer:model=SFT_CHECKPOINT,args=grpo_args,reward_funcs=[format_reward, correctness_reward],train_dataset=prompts,processing_class=tokenizer。
- train_dataset 只放 prompt;GRPO 会自己生成 completions。
- 调用 trainer.train() 启动训练。
- 训练前,先对 50–100 个 sampled outputs 运行 reward function,并人工阅读结果;这是 gate,不是一次性 sanity check。
- 如果 reward function 的判断与人工阅读样本不一致,先修 reward function。
- 不要训练未经检查的 reward,也不要通过调超参数来补偿一个静默打错分的 reward;否则模型会干净地优化错误目标并 reward-hack。
- 把该 inspection 作为 /finetune 的 Phase 1 gate input;同一个 50–100 样本阅读会在放行 GRPO brief 前检查 reward function 是否损坏。
- 按 Inspection Rule 对照 references/reward-functions.md 中的完整实现:exact-match correctness、schema validation、unit-test execution、length-penalty wrapper、rubric-as-reward judge pattern。
- 默认使用上述基础 GRPO recipe;只在实际出现特定 failure mode 时才换 variant,不要预先选择。
- 如果出现 entropy collapse 或退化的长 chain-of-thought,换 DAPO:它解耦 clip bounds,并放宽会过度正则化长推理轨迹探索的 KL penalty。
- 如果 reward 或输出长度无论质量如何都上升,换 Dr.GRPO:它移除 GRPO 的长度归一化偏差,让 reward 跟踪 correctness 而不是 completion length。
- 如果训练 mixture-of-experts 模型,换 GSPO:它把 importance-sampling ratio 从 per-token 移到 sequence level;per-token ratios 在 MoE routing 上不稳定,因此这里 GSPO 是必需的,不是可选的。
- 从 plain GRPO 开始,观察具体症状(长 CoT entropy collapse、length-reward correlation、MoE instability),确认后再换成匹配的 variant。
- VLM RL 在 v1 不可执行:不要把它当作 The Recipe 的变体。VLM RL 工具链碎片化在 ms-swift 和 EasyR1-derived forks 中,尚无一行 TRL 命令;naive text-only GRPO 用于 VLM 容易 reward-hack,优化文本推理痕迹而忽略图像。
- VLM RL 只能作为 supported recipe 之外的研究 spike,不是本 skill 的可运行路径。
- 使用 references/grpo-memory.md 中的内存与性能技巧:vLLM sleep-mode、optimizer-state 策略、Unsloth 长上下文 RL chunking;DGX Spark 上注意 decode-heavy rollouts 的 bandwidth caveat。
- 在 DGX Spark 上,若安装了 dgx-spark-ops plugin,则遵循其 skills 处理内存/热 remediation ladder。
适用边界 · 注意事项
- 任务成功不能由代码执行器、测试套件、schema checker 或 grader 算法验证,而需要人工判断或主观 rubric 时,不适用;先处理 eval-harness 和 judge-calibration。
- 模型在低温度、多采样下从未成功时,不适用;先回到 SFT(lora-qlora-recipes),等基础成功率为非零后再返回 GRPO。
- 信号是两组可接受输出之间的偏好,而不是可验证 pass/fail 时,不适用;应使用 preference-optimization/DPO,遵循 DPO for taste、GRPO for reasoning。