AWS 推出 TorchNeuron:PyTorch 代码几乎不改就能跑 Trainium

AWS 发布开源工具 TorchNeuron,让现有 PyTorch 应用以最小改动运行在 Trainium2/3 芯片上。小编整理用法、Hugging Face 支持情况和公测期的限制。

您手上的 PyTorch 代码如果想换到 AWS 自研的 Trainium 芯片上跑,以前得折腾适配;现在 AWS 给了一个更省事的办法。简单讲:AWS 推出开源工具 TorchNeuron,让现有 PyTorch 应用只做最小改动,就能在 Trainium 上做 AI 训练和推理,走的是 PyTorch 原生接口。

TorchNeuron 预定 10 月 20 日在 PyTorch Conference North America 上进入公开测试(public beta),支持 Trainium2 和 Trainium3,以 Apache 2.0 开源协议发布。

怎么用:改一个设备名就行

TorchNeuron 通过 PyTorch 现有的硬件扩展机制(PrivateUse1)接入。PyTorch 本来就通过 CUDA 支持英伟达 GPU,现在 Trainium 也有了同级别的原生支持。开发者把代码里的设备设置改成 neuron 就能选用 Trainium,只要用的是与硬件无关的 PyTorch 接口,模型代码可以不用改。

Meta 的 PyTorch 工程总监 Jana van Greunen 评价说:”开发者应该在不同硬件平台上获得一致的体验。”

支持的能力

  • Eager 模式:可以用标准 Python 工具逐个操作调试。
  • torch.compile:针对 Trainium 硬件优化模型操作。
  • 分布式训练:FSDP2、DistributedDataParallel、张量并行和流水线并行,可跨多块加速器和多台服务器。
  • 性能分析:Neuron Explorer 配合标准 PyTorch profiler,可查看硬件活动、定位瓶颈并追溯到源码;Neuron Kernel Interface 可以写自定义算子。

Hugging Face 也跟进了

Hugging Face 在 Transformers、Diffusers、Accelerate、PEFT 和 TRL 库里加入了原生 TorchNeuron 支持。以前 Trainium 上的工作负载要靠另一套基于 XLA 的 Optimum Neuron,得用专门的模型类和训练工具;现在可以直接用标准的 Hugging Face 模型定义和训练脚本。

对比项Optimum Neuron 0.4.5TorchNeuron
最常用的 100 种文本生成模型架构支持比例46%89%

要说明的是,这个数字衡量的是模型架构的兼容性,不是推理性能。开发者可以用 device_map=”neuron” 加载受支持的模型,Diffusers 也支持图像和视频生成;训练出的模型能存成标准 Transformers 检查点,上传到 Hugging Face Hub,再在其他支持的硬件上加载。

早期使用案例:Deepgram 和 Cartesia

AWS 和 PyTorch 公布了语音 AI 公司 Deepgram 和 Cartesia 测试 TorchNeuron 做推理的例子。Deepgram 与 AWS 生成式 AI 创新中心合作了几个月,把模型迁到 Trainium 上的原生 PyTorch,称成本性能比现有 GPU 系统更好。其 CTO Adam Sypniewski 说:”在我们评估的基准里,Trainium 每美元处理的输入音频秒数,比我们现有的 GPU 基线多约 60%。”这是 Deepgram 所评估的语音 AI 负载上的结果,不能当成 Trainium 与 GPU 实例的通用对比。

Cartesia 则表示,工程师用最小改动就在 Trainium 上跑通了标准 PyTorch 代码,并用自定义内核优化对延迟影响更大的操作。

公测期有哪些限制,上手前要知道

TorchNeuron 还在公测,并非所有 PyTorch 操作都支持。按 AWS 文档:

  • 原生动态形状支持还在开发中;torch.sparse、torch.func、torch.nested 等 API 暂不支持。
  • 使用 torch.compile 时目前要设 dynamic=False,不同输入形状可能需要分别编译,AWS 建议把输入分组或补齐,减少重复编译。
  • 不支持的操作在 eager 模式下可能回退到 CPU 执行,影响性能,可以用 TorchNeuron 的分析工具找出这些操作和其他瓶颈。

TorchNeuron 通过 AWS Neuron 软件栈分发,适用于兼容的 Trainium2 和 Trainium3 实例,开源实现放在 AWS 的 GitHub 仓库里。

常见问题(FAQ)

TorchNeuron 是什么?

AWS 开源的软件工具,让 PyTorch 应用以最小改动运行在 Trainium 芯片上,支持训练和推理。

支持哪些芯片?

AWS Trainium2 和 Trainium3。

我的代码要大改吗?

用与硬件无关的 PyTorch 接口的话,通常把设备设置改成 neuron 即可,模型代码不用改;但公测期有部分操作不支持。

Hugging Face 的模型能直接用吗?

可以。Hugging Face 称最常用的 100 种文本生成架构里 89% 受支持,用 device_map=”neuron” 加载即可。

Trainium 一定比 GPU 便宜吗?

不一定。Deepgram 的 60% 只是它自己语音负载上的基准结果,您需要用自己的工作负载测试。