用强化学习调教小模型学会"动脑筋"——手把手带你用PyTorch训练GRPO推理模型
作者:Avishek Biswas
最近,大模型们(DeepSeek-R1、Gemini-2.5、OpenAI-o1、Claude、Qwen3……)都流行“先想后答”:先噼里啪啦写一段内心独白,再给答案。
我就琢磨:能不能给只有 1.35 亿参数的“小不点”模型也教会这招?
结果:想得太美!小模型脑容量太小,常识不够,纯靠算力硬灌行不通,得耍点“杂技”。
本文就是一篇“杂技说明书”,外加 50 分钟配套视频(文章末尾有链接)。
———
目录(5 大关卡)
1. 新招式 RLVR:用“可验证答案”当奖励(大白话:答对给糖,答错打手心)
2. 招式核心 GRPO:把 PPO 剪剪贴贴,省掉大模型才有的“价值网络”
3. 代码走读:PyTorch 现场撸一个训练循环
4. 热身赛:先让模型做“有答案的例题”(监督微调 SFT)
5. 成绩单:小模型从 46% → 60% → 81% 的逆袭
———
关卡 1:RLVR——“答案能打分”的强化学习
• 传统 RLHF:让人类老师打分,主观题如“哪部 iPhone 好?”
• 新玩法 RLVR:让“标准答案”打分,客观题如“strawberry 里有几个 r?”
示例:
让我数一下 s-t-r-a-w-b-e-r-r-y …… 一共 3 个 r!
奖励函数简单粗暴:
python
def 数字母(单词, 字母):
return 单词.count(字母)
reward = +1 if 模型答案 == 数字母("strawberry", "r") else -1
只要最终答案对,中间推理过程不用人工管,模型自己会学着“脑内打草稿”。
———
关卡 2:GRPO 算法——“组队比高低”
把 PPO(Proximal Policy Optimization)剪成“迷你版”:
1. 经验收集
• 环境发题(数学题、逻辑题)
• 小模型一次写 G 份答案(比如同一题写 6 种解法)
• 环境给每份答案打分
• 计算“相对优势”:在一组 6 份答案里,谁高谁低,内部 PK,不跟别组比
• 把题目、答案、分数塞进“记忆仓库”
2. 训练阶段
• 从仓库里随机抓一把记忆
• 用 PPO 公式更新模型:把高分答案里每个 token 的出现概率抬高,低分答案压低
• 重复 N 次
省掉大模型才用的“价值网络”,内存立省一半。
———
关卡 3:代码现场秀(极简伪代码)
1. 召唤小模型
python
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("HuggingfaceTB/SmolLM-135M-Instruct")
tokenizer = AutoTokenizer.from_pretrained("HuggingfaceTB/SmolLM-135M-Instruct")
2. 召唤题库
python
from reasoning_gym import create_dataset
dataset = create_dataset("propositional_logic", size=1000)
3. 生成 6 份答案
python
inputs = tokenizer([题目], return_tensors="pt")
outs = model.generate(**inputs, num_return_sequences=6, temperature=0.7, max_new_tokens=300)
4. 打分两连击
• 格式分:有没有乖乖写 和
• 正确分:答案对不对
5. 算优势、存记忆、刷 loss
(详见 GitHub,文章末尾有链接)
———
关卡 4:先热身——监督微调 SFT
直接上 RL?小模型连格式都不会,奖励全是 0,训练信号 = 0。
步骤:
1. 用 GPT-4o-mini 生成 200 道带思考过程的“示范作业”
2. 给小模型做“抄作业”训练(LoRA 低秩适配,显存友好)
3. 结果:原本乱写,46% 能蒙对;抄完作业,60% 能答对,且格式稳了。
———
关卡 5:成绩单 & 实战技巧
• 135M 模型:46% → 60%(SFT)→ 再加 RL 小刷一波
• 360M 模型:同上流程,再涨一点
• 0.6B 模型:飙到 81%!
调参小贴士(背下来考试加分):
• 温度 0.7、top_p 0.95,保证答案多样性
• 每题 6 份答案,太少没对比,太多算力爆炸
• 学习率 1e-6~1e-7,步子小点不掉坑
• 缓存 500 条经验再训练,稳!
• 别忘了删 pad token,省显存
———
彩蛋:50 分钟手把手视频
B 站/YouTube 搜 “Train Tiny Reasoning Models from Scratch” 或戳文末链接。
———
结语
只要套路对,1 亿参数的小模型也能变身“推理小怪兽”。
下次老师问你“AI 为什么能做题”,你就说:“先给它一堆能判分的题,让它自己刷经验升级,打完怪就学会啦!”
References
Author’s YouTube channel: https://www.youtube.com/@avb_fj
Author’s Patreon: www.patreon.com/NeuralBreakdownwithAVB
Author’s Twitter (X) account: https://x.com/neural_avb
Deepseek Math: https://arxiv.org/pdf/2402.03300DeepSeek R1: https://arxiv.org/abs/2501.12948DAPO: https://arxiv.org/abs/2503.14476Critical Perspectives on R1: https://arxiv.org/abs/2503.20783Reasoning Gym Library: github.com/open-thought/reasoning-gym
A good place to read about Reasoning: https://github.com/willccbb/verifiersA great place to study code: https://github.com/huggingface/trl/blob/main/trl/trainer/grpo_trainer.py