热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
# 为什么训练 MoEs 如此困难
最近,我发现自己想要一个小型、专注于研究的训练库,
可以快速轻松地进行小实验。这些实验范围
从尝试新的注意力架构(MLA、SWA、NSA、KDA - 所有可插拔)到多精度训练,
再到最近的多优化器设置,使用“新”优化器。我尝试了三大
竞争者(Nemo、Megatron 和 Torchtitan),但由于许多原因,它们
都不适合我的目的,设置、使用和稳定运行都相当痛苦。我再次怀念谷歌的工具,
为此重写我的生产训练堆栈(专为大型基础设施监控和稳定性量身定制)
也感觉是浪费时间,并且会使旧库和新库都变得更糟。
然而,这让我思考,为什么训练前沿质量的“小型”
MoEs(比如总参数少于 20B)如此困难?我想要的库/库为什么还不存在?经过一段时间的思考,我能想到的大多数
挑战归结为三件事:
- flops / flop 效率
- 负载均衡 / 路由器稳定性
- 数据质量和数量
Flops
训练稠密模型现在相当简单。训练
dynamics 大多是耦合的,如果你的架构中有足够的参数,
模型几乎会在你犯下许多错误的情况下学习(这让我吃过亏不止一次)。[DeepSeek 风格的超稀疏]( MoEs 不同,因为你的训练动态
在某种程度上是解耦的。对于给定的 token,只有一部分 MLP 是活跃的,
随着训练的进行,活跃的专家会随着时间的推移而变化和演变。这就是为什么多轮训练和数据重述对 MoEs
(尤其是较大的 MoEs)如此有效的原因。你会获得巨大的推理效率提升和小的
训练效率提升,但代价是解耦的训练动态(使得可预测和稳定地训练变得困难),
你必须投入更多的 flops
以确保学习到一个相对最优的路由策略,并且参与各种策略的专家得到了充分的训练。好吧,这就是 flops / flop 效率挑战出现的地方。第一个挑战是,
由于超稀疏 MoEs 的特性,加载专家需要大量的 HBM,
这意味着你需要很多 GPU,因此系统中有很多空闲的 GPU。FSDP(和各种其他分片拓扑)大多是稠密训练的遗物,...

热门
排行
收藏
