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

推荐订阅源

V
Visual Studio Blog
爱范儿
爱范儿
GbyAI
GbyAI
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
C
Check Point Blog
H
Help Net Security
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Y
Y Combinator Blog
U
Unit 42
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

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,显存占用低但梯度方差可能更大。