深度解读 · 约 6 分钟阅读
Qwen3如何在Trainium上训练:三条torchtitan路线,分别验证权重与内核
AWS的10月21日指南把Transformers、原生Qwen3和NKI内核接入同一台Trainium2实例,但并未证明训练更快或更便宜。
- 本站发布
- 原文发布
- 核实时间
AWS在10月21日发布工程指南,介绍用torchtitan在Trainium上训练Qwen3的三种配置:Transformers v5后端、torchtitan原生模型,以及使用NKI内核的缩减版混合专家示例。新增价值是具体的接入流程,以及检查点和数值检查方法。这不是Qwen新模型发布,也不是训练成本优势的实测报告。
听读资讯
朗读当前文章,或连续收听资讯。
正在准备听读…
设备语音
朗读由浏览器或设备处理,AISubHub 不向音频 API 发送文本。可用语音及锁屏播放能力因设备而异。
继续播放时可能重复一小段。
一分钟速览
- 示例使用一台trn2.48xlarge:16颗Trainium2、128个物理NeuronCore,在LNC=2下提供64个逻辑NeuronCore,启动64个训练进程。
- 稠密模型示例使用Qwen3-4B-Instruct-2507资料,在c4_test上训练10步。MoE示例缩为4层、64个专家,每个token选择4个专家,并非完整原版30B-A3B训练。
- AWS记录已发布权重和随机初始化的首步loss分别为6.54、12.43;float32旋转位置编码测试的最大绝对差为0.0。两组数字验证的是不同问题。
接入同一设备,模型实现有三种选择
TorchNeuron把Trainium注册为PyTorch原生neuron设备,让torchtitan使用常见接口。第一条路线由Transformers v5的AutoModelForCausalLM构建模型;第二条通过config.model_spec切换成torchtitan原生Qwen3;第三条接入NKI混合专家算子,再演示自定义替换。它们是同一训练入口背后的实现选择,不是三个新发布的Qwen模型。
指南固定torch 2.14.0、torch_neuronx 2.14.3、Transformers 5.16.0,以及torchtitan-neuron release-2.33、版本0.2.2+neuron.1,并要求带驱动、运行时和编译器的Neuron镜像或容器。熟悉PyTorch不等于可以忽略这些依赖;AWS提醒,相关后端和替换模块会随版本变化。
4B示例先检查权重是否真正加载
第一套配置指定Qwen/Qwen3-4B-Instruct-2507、c4_test、10步训练和本地批量1,并将数据并行状态分片到64个rank。读取架构和加载已发布权重是两件事;微调配置显式开启检查点加载,最后导出Hugging Face safetensors。AWS记录已发布权重首步loss为6.54,随机初始化为12.43。
差异可帮助发现加载问题,不能证明10步后应用质量更高或已经收敛。导出文件还需重新加载,检查键名并考虑与词嵌入绑定的lm_head.weight。原生路线从qwen3_32b配置器开始,是因为所用版本缺少通用4B配置器;随后明确替换为4B,并设全局批量64。因此不能看到函数名就说训练了32B。
MoE家族名不等于实际训练规模
Qwen3-30B-A3B示例被缩为4层、64个专家,以适应单实例;top_k=4表示每个token路由到4个专家。其数据并行分片使用64个rank,张量并行度为1,没有专家并行。64个专家是模型内部配置,不是64路专家并行设备,缩减示范也不能代表原版全模型训练结果。
这套配置关闭编译,采用eager执行。NKI算子也支持torch.compile,但切换执行模式仍需另行验证。该版本的配方把MoE块换成分组专家内核,并选择SDPA和免gather旋转位置编码;前向保存的路由资料用于注册反向传播。原文没有提供受控吞吐对照来证明这套配置更快。
自定义内核要同时核对布局与梯度
旋转位置编码示例说明,接入内核不只是调用函数。torchtitan的query和key按批量、序列、头、头维排列,rope_hf要求批量、头、序列、头维;封装层转换布局、分配输出,再转回来。反向算子复用保存的旋转缓存,缓存本身不求梯度。序列长度还必须是128乘LNC的倍数,LNC=2时即256。
替换注册表只应命中目标模块;启动日志要为每层显示一个nki_rope替换,也可用名称模式限定层范围。AWS的float32数值测试中,query和key最大绝对差均为0.0,但这不保证所有精度、形状或训练都等价。作者明确将它定位为算子与自动求导接入示例,没有宣称性能提升。
怎样从演示走向可评估的训练试点
首步包含编译,比后续步骤慢。日志会报告loss、梯度范数、HBM占用、吞吐和模型FLOPs利用率,但列出指标不等于已经给出全程成本对照。模型、序列或本地批量增大时,要检查每个rank的内存;张量并行可在多维DeviceMesh上与完全分片数据并行结合,这不是当前MoE示例已完成的扩展实验。
本站建议先固定版本,确认模型与64个rank,验证检查点加载和导出,再比较自定义算子输出;之后才测持续吞吐、编译预热和目标数据上的收敛表现。停用或销毁租用实例前保存需要的检查点。这是由指南推导的试点顺序,并非本站复现结果,也不能推出免费训练额度、订阅权益或普遍硬件优势。
有什么影响
本站分析:团队可以先把模型接入、检查点可移植性和内核正确性拆开验证,再投入完整训练。统一启动方式减少了更换实现时的配置差异,但版本、显存、编译和数值约束仍然存在。
限制与可用性
本文依据AWS的Josh Longenecker和Alex Hoffman署名指南,本站未租用硬件或复现。原文没有给出可比的全程训练账单、完整收敛结果或自定义内核加速证明。实例容量、费用、软件组合和具体工作负载仍需自行验证,也没有宣布个人订阅权益。
来源与证据
AI 辅助采编,依据所列一手来源核实。厂商自报结论注明归属,收录不代表背书。