给问题和示范答案。模型预测答案的 token,损失告诉优化器怎样调整参数。
LOCAL MODEL LAB / LESSON 0001 / 约 8 分钟
示范与奖励,
怎样教同一个模型
本课的小胜利:看到一次训练的数据流,能判断它在做监督微调,还是强化学习。
你最终要交付什么
把一个小模型训练成能接受订单规则、返回应付金额的本地服务。全过程留下数据、更新后的权重、独立题评估和真实 API 回包。这个任务的标准答案可以用程序算出,方便你检查训练是否发生、效果是否改善。完整 mission
真实计价通常交给确定性程序。本课借它学习模型训练:题目可生成、答案可核验,训练信号能观察。以下规则是教学定义。
例子:单价 9900 分、买 3 件,满 20000 减 3000;基础运费 600,优惠前满 30000 才包邮。小计 29700,优惠后 26700,加运费后 27300。
{"payable_cents":27300}
只记住两条学习路径
让当前模型对同题生成多份答案,程序评分,用相对奖励形成学习信号。
加载更新后的权重,接受请求并生成输出。普通服务推理没有训练更新。
SFT 像“照着示范练”;GRPO 像“自己尝试后,按反馈调整”。这只是入门类比,两阶段真正发生的都是参数优化。SFT 原理 · GRPO 原论文
GRPO 数据里仍然可以保存标准金额,供评分器核验;它与 SFT 的区别在于,优化使用的是当前模型采样的输出及其奖励。只给生成答案打分,没有参数更新,还没有完成强化学习。
关掉上面的类比,再判断
根据数据流选择;每题都有即时反馈,可以重试。三个选项统一为四个汉字。
1. 给模型 600 道订单题和正确 JSON,计算示范答案 token 的损失,然后更新 LoRA。
选择后查看理由。
练习后核对答案(无 JS 也可读)
答案:监督微调。更新针对示范答案的损失。
2. 同一题生成 4 个答案,分别评分,用相对奖励构造优势,然后更新 LoRA。
选择后查看理由。
练习后核对答案(无 JS 也可读)
答案:强化学习。采样输出、奖励和参数更新形成闭环。
3. 用固定权重接收 HTTP 请求,返回一个 JSON,之后权重保持原样。
选择后查看理由。
练习后核对答案(无 JS 也可读)
答案:提供服务。推理回包不等于训练。
亲手试一个奖励漏洞
本实验规则:格式和金额都正确得 1.0;格式正确但金额错误得 0.2;其他得 0.0。分数由我们设计,具体协议见 奖励速查。
先试初始错误金额,再改为正确金额,最后加入一个额外键。
评分规则核对(无 JS 也可读)
27000 的严格 JSON 得 0.2;27300 得 1.0;额外键或解释文字得 0.0。可用 Python 的 self-check 检查。
再试 {"payable_cents":1,"payable_cents":27300}。它含有重复键,应得 0;用“输出里包含 27300”评分会接受错误结果。
可选:提前看一眼“相对奖励”
这是简化的分组优势演示,不执行训练。把四行奖励全部改成 0.2,观察信号;再把一行改成 1.0。正式算法与采样配置之后再学。GRPO 官方原理
| 输出编号 | 奖励 | 相对优势 |
|---|---|---|
| A | ||
| B | ||
| C | ||
| D |
课后只做这三件事
- 不看页面,用自己的话解释:SFT 与 GRPO 各从什么信号学习?
- 指出“格式正确但金额错误”和“包含答案数字的垃圾文本”各得多少奖励,并解释理由。
- 说明为什么给答案打分,却不更新权重,还不能叫完成强化学习。
把这三项回答发给 agent,我们再进入数据与首次基线实验。页面不会自动写学习记录;只有你展示理解或真实实验后,才保存新的学习起点。
主读资料:Hugging Face 官方 SFT Trainer,先读 Overview 和数据格式即可。GRPO 原论文留到强化学习课。
任何地方不清楚,继续向 agent 提问,例如“为什么 SFT 预测 token 的损失能影响金额?”或“奖励怎样变成梯度?”