惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
V
V2EX
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
小众软件
小众软件
Vercel News
Vercel News
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
J
Java Code Geeks
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
B
Blog
美团技术团队
量子位

StudyingLover's Blog

Diffusion Policy笔记 rwkv笔记 act笔记 nanovllm-block_manager opencode多智能体 nanobot-pre-train nanobot-sft nanobot-checkpoint_manager nanobot-gpt nanobot-mid-train Vision Mamba (Vim)笔记 BPE演示 最后一遍学习Transformer YOLOv5 目标检测笔记 下载根服务器解析记录 Dynaseal A Backend-Controlled LLM API Key Distribution Scheme with Constrained Invocation Parameters 判断链表有环 王道25数据结构勘误 关于perplexity的open-sourcing-r1-1776 AI为什么不像人类一样进行多轮对话 新博客改造日记和功能测试 linuxqq只显示登陆背景图 数字设计和计算机体系结构(机械工业出版社)勘误(自制) Dynaseal:面向未来端侧llm agent的llm api key分发机制 A Definitive Guide to Markdown Style This post is using MDX, Where you can embed JSX and Astro components RT-Patch学习 pydantic实现的LLM ReAct fastapi 和 uvicorn 设置监听 ipv6 pydantic+openai+json 控制大模型输出的最佳范式
nanobot-rl
About the Author StudyingLover · 2026-01-18 · via StudyingLover's Blog

nanobot

rl

reinforcement learning

Published on

这里没有使用GRPO,而是使用了简化版的GRPO,更接近REINFORCE

特性REINFORCEGRPO (标准)GRPO (简化版,这里用的)
Policy Gradient
KL Divergence约束✅ (有reference model)❌ 删除了
PPO Clip✅ (importance ratio)
On/Off PolicyOnOffOn
Advantage计算基础z-score仅减均值

和标准的GRPO相比

  • 保留了
    • 分组采样:对每个 GSM8K 问题,生成 num_samples 个回答(默认为16),确实是 group-based。
    • 相对优势,但只减均值,不除方差
    • 无 Critic / 无 Value Model:这里完全没有价值网络。
  • 去除了
    • 没有 std 归一化:GRPO 公式中的 (r - mean)/std 在这里被简化成 (r - mean)
    • 没有 KL 正则 / 没有参考模型:代码没有 KL(π_new || π_ref),也没有 trust region。
    • 没有 PPO ratio + clip:没有 min(ratio _ A, clip(ratio) _ A),直接用 logprob * advantage。
    • On-policy:不做 importance sampling(没有 ratio),直接对当前策略的样本做 PG。
  • 奖励函数 和 R1-Zero 规则奖励的对比
    • 这里的奖励来自 GSM8K.reward(...),本质是“答案对/错”的规则奖励;没有单独的“格式奖励” ( 之类)。
    • 也没有训练 Reward Model,直接规则打分(推理即可)。
  • 优化目标 实际用的目标:loss = - (logp * (r - mean)).sum_normalized。 没有 KL、没有 std 归一化、没有 PPO clip。

经验

不会了,直接贴ai写的

  • 整体范式:这是“带分组、均值基线的 on-policy REINFORCE”,不是全功能 GRPO/PPO。没有 KL 正则、没有 ratio/clip、没有 reference/critic,只用 (r - mean) 当 advantage。
  • 数据流:每道 GSM8K 题 -> 生成 num_samples 条回答 -> 规则 reward(对/错) -> 组内均值做基线 -> 计算 advantage。
  • 目标函数
    • inputs/targets 对齐 [ :-1 ]/[ 1: ],mask==0 的目标被置 -1 忽略。
    • logp = -model(inputs, targets, loss_reduction='none')
    • pg_obj = (logp * advantages[:, None]).sum() / (有效token数 * num_passes * examples_per_rank)
    • loss = -pg_obj(最大化期望回报)。
  • 分组与采样:group sampling 体现 GRPO 风味,但 advantage 只减均值、不做 /std;on-policy,无 importance ratio。
  • 奖励设计:规则打分(answer correctness),无格式奖励、无训练 RM,方差相对可控。
  • 终止与mask:Engine 生成时 prompt 和强制 tokens 的 mask=0,不计入 loss;padding 用 <|assistant_end|>,同样 mask 0。
  • 调度与批次examples_per_step 跨 GPU 平分,可能多 pass 堆叠到 device_batch_size;LR 线性衰减到 0。
  • 评估指标:周期性 pass@k(基于采样正确率),监控 mean_reward / mean_sequence_length。
  • 缺失的经典部件:无 KL、无 reference model、无 std 归一、无 PPO clip,显存占用低但梯度方差可能更大。