我从零训练了一个 21B MoE 模型(3.36B 激活参数),使用 70B tokens(涌现能力观察)
摘要
一位独立研究者从零训练了 Apex-3,一个 21B 参数的 MoE 模型(3.36B 激活参数),使用 70B tokens,发布了稳定的检查点并分享了训练日志中涌现行为的证据。最明确的发现是在上下文学习中约 1.3B-1.5B tokens 处出现了一个尖锐的相变,而算术能力的提升虽然在精确匹配上看起来是突变的,但在概率上是连续的。
由于预算限制,训练只进行到 70B tokens。通过 SuperBPE 分词提供了大约 +27% 的 token 效率,这实际上等效于在约 100B tokens 上训练。还发布了一个稳定的检查点,任何人都可以在此基础上继续训练。https://huggingface.co/YOON1v/Apex-3-59B-stable 我从零训练了 Apex-3,一个 20.99B 参数的 MoE 模型(每个 token 激活 3.36B 参数),使用 70B tokens。没有使用任何外部预训练权重。它使用 64 个路由专家加 1 个共享专家(top-4),采用 SuperBPE 分词器,在 GH200 上使用 Muon 和 DiLoCo 训练。模型卡片:https://huggingface.co/YOON1v/Apex-3 代码和训练笔记:https://github.com/DW-dev-UE/LLM-from-scratch 本文涵盖的是训练日志中出现的现象,而非最终 SFT 分数。证据来自 run_logs/apex3_20261026/ 中的 A、B、C 三次运行(icl、arith、val 和 moe 日志)以及 70B 基座模型的基准测试。以下数据来自运行 A。B 和 C 几乎相同。最终算术完整准确率:A 为 0.665,B 为 0.655,C 为 0.655。上下文学习(归纳头)——唯一清晰的相变 在 0.4B 到 1.16B tokens 之间,ICL 分数(后词元 CE 减前词元 CE)在 -0.08 到 -0.14 之间。随后在 1.27B 时变为 -0.32,1.38B 时为 -0.55,1.49B 时为 -0.69。1.7B 之后停滞在 -0.69 到 -0.76 之间。它在约 0.33B tokens(约 150 步)内增长了约 5 倍。在同一窗口中,训练 CE 下降速率从每步 -0.0048 加快到 -0.0066,损失曲线出现了弯曲。这大约是原始 1.1T 训练计划的 0.1%。后来漂移回 -0.62 是因为前词元预测改善导致差距缩小,而不是因为能力退化了。算术 精确匹配看起来像突然跳跃,但底层正确词元的概率是持续上升的。对于 add3,正确概率从 15B 时的 0.003 上升到 22B 时的 0.021,然后是 30B 时的 0.080 和 40B 时的 0.224。当概率越过决策阈值时,精确匹配就跳变了。这主要是度量指标的假象。从 60B 到 70B 的衰减带来了更大的提升。从 49B 到 59B,add3 概率保持在 0.28 到 0.29 左右,add4 保持在 0.11 左右。衰减后分别提升到 0.60 和 0.38。整体精确匹配从 0.52 升到 0.67,add3 从 0.44 升到 0.78,chain3(a+b+c)从 0.13 升到 0.38。领域特定的语言建模(验证 CE) 每个领域都平滑下降,没有出现相变。教科书从 2.77 降到 1.75,数学从 2.76 降到 2.07,问答从 2.54 降到 1.92,网页从 4.22 降到 3.35。约 40B 之后曲线基本趋于平坦。在衰减期间,数据混合发生了变化:指令数据从 1.09 改善到 0.86,而网页数据从 3.35 恶化到 3.49,书籍从 2.74 恶化到 3.04。没有明显的 grokking 信号。代码验证 CE 保持在较高水平,这看起来像是分布不匹配。MoE 负载均衡 早期(运行 B)中某一层的最大专家负载达到了平均值的 12.8 倍。到 70B 结束时,已稳定在平均值的 1.07 到 1.38 倍之间——基本均匀。最终基座模型基准测试(70B Apex-3-Base,贪心 pass@1)HumanEval+ 为 19.5%,MBPP 为 38.9%,MBPP+ 为 32.3%,GSM8K 8-shot 严格模式 19.9% / 灵活模式 21.5%。这些只在最后进行了测量,所以我不知道这些能力实际是什么时候出现的。注意事项 每个算术任务使用了 64 个问题,所以精确匹配的标准误差可达约正负 6 个百分点。单点噪声没有意义,因此数据为 3 点平均值。算术分数是 teacher-forced 的(正确答案已在上下文中),而非自由生成。8.15B 之前没有进行任何测量。总结:我观察到的唯一清晰的相变是约 1.3B 到 1.5B tokens 处的 ICL / 归纳头跳跃。算术在精确匹配上看起来是突变的,但在概率上是连续的。其余一切都是渐进的。欢迎就设置或日志提问。
相似文章
我仅用 86.5B tokens 从零训练了一个 3.87B 参数的 MoE 模型(激活参数 1.45B)
YOON1v 发布了 Apex-2,一个从零训练的 decoder-only 混合专家(MoE)大语言模型,总参数 3.87B / 激活参数 1.45B,使用 86.5B tokens 进行预训练并做了 SFT 微调,完整的代码、架构详解和基准测试结果(HumanEval 43.9)已在 Hugging Face 和 GitHub 上公开。
@sheriyuo: 仅3B活跃参数的35B参数MoE代理模型,声称通过后训练即可匹配或超越100B级模型
一个35B参数的MoE模型,仅3B活跃参数,通过后训练强化学习匹配或超越100B级模型,实现显著效率提升。
我实测了:将密集27B模型换成30B-A3B MoE模型如何改变本地并发上限(与先前测试相同平台,仅改变一个变量)
作者在MacBook Pro上测试并比较了密集与MoE AI模型的并发性能,发现由于每个token的内存带宽使用更低,MoE模型的扩展性显著更好。
通过增加MOE(Qwen 35B A4B+)中每个token的活跃参数,推理token减少8.5%——无需训练或微调!
一篇论文介绍了一种针对稀疏MoE模型的推理时优化方法,通过调整后期transformer层中的专家选择,在无需重新训练的情况下,将推理token减少8.5%,延迟降低10.9%,同时保持准确性。
@0x0SojalSec: 最终观点:腾讯最近发布了一个295B参数的模型,每个token仅激活21B参数。而大多数实验室仍在……
腾讯发布了Hy3,一个295B参数的MoE模型,每个token激活21B参数,在代理编程和工具使用任务上与更大的模型相竞争,并提供了Apache 2.0权重。