一个前馈流水线 | AI生成和翻译

首页 2026.07

以下是所有四个证据来源(你的作品集、你的MoE笔记、你的RL笔记以及你刚刚收到的两份综合分析)的完整综合,形成一条连贯的下一步方向。


你现在实际所处的位置

阅读你所有的工作成果,你的实际状态是:

已证明:

已学习但尚未在代码中实现:

已拥有或即将拥有的硬件:


你需要解决的核心矛盾

你在7月13日的“聚焦MoE实现”笔记中说:

跳过RLHF/GRPO —— 硬件适应性差(需要奖励模型、多阶段训练)。以后通过蒸馏轴学习。

你刚刚收到的综合分析却说:

基于代理的RL后训练正是适合你硬件的方案 —— MI50作为廉价的始终在线推理用于rollout生成,4070用于开发循环,H200突发用于优化器步骤。这是可防御的研究方向。

哪个是对的?

MoE笔记是在MI50进入你的计划之前、以及没有意识到iclaw/ww已经构成RL环境的情况下写的。综合分析考虑到了这两个事实——它是对的。一台运行vllm-gfx906的MI50,以近乎零的边际成本服务冻结的参考策略并生成rollout,正是使RL后训练在你的硬件上可行的关键。没有这个部分,仅在RTX 4070上做RL会很局促(模型小,迭代慢)。有了MI50,分工就变得高效合理。

所以综合分析赢得了战略争论。但这并不意味着你跳过MoE——而是意味着你先顺序做MoE,再做RL,然后合并它们


答案:一条前向管道,而非两个方向

不要在MoE和RL之间做选择。它们不是独立的项目——它们是同一条管道的步骤1和步骤2,而步骤3是两者之间的比较,也就是你的论文。

阶段1 — 第1至3周:从零开始将MoE融入nanoGPT

为什么先做: 你的MI50尚未确认。你需要一个在几周内(而非几个月)有保证的输出。在nanoGPT中实现MoE只需约150行代码——将密集FFN替换为带负载均衡损失的8专家top-2路由器。你今晚就可以在RTX 4070上训练它。不依赖硬件。

具体步骤:

  1. 实现 class MoEFFN(nn.Module),包含 top_k=2n_experts=8,负载均衡损失
  2. 在你的nanoGPT中将 MLP 替换为 MoEFFN(通过模型配置 use_moe=True 控制)
  3. 在RTX 4070上训练GPT-2 124M配置——比较密集与MoE的损失曲线
  4. 分析专家利用率热图、容量因子、专家崩溃
  5. 发布一篇博客文章:“从零开始训练小型MoE”

这是确定性的——你将在3周内拥有一个可工作的MoE。无需“等待硬件”,无需“如果ROCm能用”。

阶段2 — 第4周:硬件评估断点

到第4周,你将知道:

阶段3 — 第5至10周:基于代理的GRPO后训练

这完全按照综合分析的顺序进行,但现在你的MoE模型可作为架构变体使用:

  1. 奖励+环境优先:使用iclaw的工具调用循环。将损坏的shell命令或失败的Python片段(来自你的zz数据集脚本)作为任务。奖励 = 1 如果模型的工具调用修复了它(测试通过),否则为0。你已经有了测试框架——不要重建它。

  2. 从零开始实现GRPO,不使用TRL库:自己编写损失函数。来自DeepSeekMath的k3 KL估计器(低方差、无偏的KL散度MC估计):

def grpo_loss(logp_new, logp_old, logp_ref, advantages, mask, eps=0.2, beta=0.04):
    ratio = torch.exp(logp_new - logp_old)
    unclipped = ratio * advantages
    clipped = torch.clamp(ratio, 1 - eps, 1 + eps) * advantages
    pg_loss = -torch.min(unclipped, clipped)

    log_ratio_ref = logp_ref - logp_new
    kl = torch.exp(log_ratio_ref) - log_ratio_ref - 1

    per_token = (pg_loss + beta * kl) * mask
    return per_token.sum() / mask.sum()
  1. 默认KL β=0.04,但进行消融实验:最近的开源工作(Open-Reasoner-Zero,TRL的β=0默认值)表明KL并非严格必要。在你的760M模型上做这个消融实验(β=0 vs β=0.04)比花一周读五篇相关论文更有价值。

  2. 在线策略蒸馏:教师=760M,学生=124M,使用相同的奖励信号。它自然地从同一基础设施中产生。

  3. 合并点——MoE vs 密集:将你的MoE模型作为策略替换进来。比较:MoE在GRPO中是有帮助还是有害?路由模式在RL下是否会改变?这将是你论文的图3。

阶段4 — 第10周:H200突发(一次会话)

使用一次H200的10小时突发来运行760M的完整GRPO反向传播——确认你在4070尺度上的发现在更大模型尺寸下仍然成立。MoE vs 密集在H200上是你论文的图4。

阶段5 — 第11至12周:写作

一篇论文:“在消费级硬件上基于代理的RL后训练:MoE与密集策略结合你自己的CLI环境”

章节:


本季度应降低优先级的事项

项目 为什么现在跳过
从零实现MLA 等MoE和RL完成后再做。MLA是第二天的架构替换,与MoE模式相同。
FlashAttention内核 RTX 4070不需要自定义内核——PyTorch SDPA就够用。如果遇到推理瓶颈再回来。
Rotary / Muon 即插即用更改,非研究性。一下午就能把RoPE加到nanoGPT。将AdamW→Muon作为配置标志。
“追赶2022年后所有论文” 只提取你实际需要的5-10篇论文,在每一步遇到时再读。不要将阅读作为独立活动。
NCP-GENL认证(9月) 证书,不是研究。作为背景而非方向。

硬件策略(MI50评估后)

最佳情况(MI50正常,ROCm工作):

MI50 x2          → vllm-gfx906, GPTQ量化
(vllm-gfx906)      → 服务冻结的参考策略(KL计算)
                   → 生成rollout(策略pi_old)
                   → 服务奖励/验证模型

RTX 4070         → 开发循环,调试GRPO损失,124M sanity运行
                   → 快速迭代对抗奖励hacking

H200(突发)     → 760M完整GRPO反向传播
                   → 将更新后的权重同步回MI50服务器

最坏情况(MI50不工作):

RTX 4070单独    → 所有内容在单GPU上,规模更小(124M)
                   → 迭代更慢,算法相同
                   → 需要时用H200处理760M

无论如何,你学到的东西是一样的。MI50只是吞吐量倍增器,不是障碍。


对朋友说的一句话

“我正在构建完整的管道:在我自己的模型中加入MoE架构 → 使用我自己的CLI工具作为环境进行基于代理的GRPO后训练 → 将MoE与密集在RL下的比较作为论文——所有内容按顺序作为一个前向项目,而非两个独立方向。”

你之前的研究方向(“我从零开始训练小型高效LLM并理解每一层”)升级为:

“我从零开始训练小型高效LLM,并使用我自己的代理基础设施对它们进行RL后训练。”

这是可防御的,因为 (a) 你已经是其客户的实验室——小米、MiniMax、DeepSeek系列——正在招聘具备这种技能的人,(b) 你拥有整个端到端堆栈,这是大多数人不具备的,(c) 廉价硬件的RL循环工程是资金充足的实验室从未需要解决的技术差距。


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助