Trainium不再要按编译器思路写代码:PyTorch原生后端让89%热门文本生成架构直接跑
核心概要
AWS Trainium 上的 Hugging Face 模型运行方式换了底座:新的 PyTorch 原生后端 TorchNeuron 把 Neuron 芯片暴露为普通设备,支持即时执行、torch.compile 与原生分布式接口,不再依赖基于 PyTorch XLA 的 optimum-neuron。按 Hugging Face 给出的对照,最常用的 100 个文本生成模型架构中开箱支持比例从 Optimum Neuron v0.4.5 的 46% 升到 89%。该后端自 2026 年 10 月 20 日起进入公开测试。
深度剖析
在 AWS Trainium 上跑 Hugging Face 模型,不再需要绕道一个专门为 Neuron 芯片维护的库,Transformers、Diffusers、Accelerate、PEFT 和 TRL 可以直接把 Trainium 当作一块普通加速器使用。 此前的路径是 optimum-neuron,它建立在基于 PyTorch XLA 的 torch-neuronx 之上,用户要按编译器的思路工作:用惰性张量而非即时执行,只接受静态形状,每出现一次图断裂就要重新编译。 Hugging Face 给出的对照是文本生成架构的覆盖比例:最常用的 100 个文本生成模型架构中,TorchNeuron 开箱支持 89%,而 Optimum Neuron v0.4.5 为 46%。
接入方式是在代码里把设备指定为 neuron,模型就被搬到 Neuron 设备上,推理和训练沿用与其他加速器相同的类和脚本。 TorchNeuron 是一个 PyTorch 插件,把 neuron 暴露为原生设备,支持即时执行、torch.compile,以及 DTensor、FSDP2 这类 PyTorch 自带的分布式原语。 训练示例在 8 块 Trainium2 芯片、即 32 个 NeuronCore 上跑完,相当于半台 trn2.48xlarge 实例,并以 4×8 的张量并行与 FSDP 网格切分 Qwen3-8B,保存出与 Neuron 无关的标准 Transformers 检查点。
启示与展望
报道覆盖的是 TorchNeuron 作为 PyTorch 原生后端在 Hugging Face 库中的接入方式,以及文本生成、扩散模型推理和 TRL 微调三类示例。适用读者是需要在 AWS Trainium 上运行或微调开源模型的研究者与工程师。训练示例的规模是 8 块 Trainium2 芯片、32 个 NeuronCore,即半台 trn2.48xlarge 实例。
在 Trainium 上运行时仍有若干约束:torch.compile 的自动动态形状暂不可用,脚本需关闭该选项;批次会被填充到 128 个 token 的倍数以限制输入形状数量;Transformers 内置的异步权重加载在 Neuron 上不受支持,需用环境变量关闭。扩散管线中支持张量并行的仍是部分模型,其余需要按指南自行添加支持。公开测试自 2026 年 10 月 20 日开始。
