←新闻详情

Hugging Face更新于 10月25日 21:42

Hugging Face 推出 TorchNeuron,让 HF 模型在 AWS Trainium 上原生运行

TorchNeuron: running HF models on AWS Trainium is easier than ever

AI 导读

Hugging Face 发布 PyTorch 插件 TorchNeuron,把 Neuron 变成原生设备,支持 eager 模式、torch.compile 以及 FSDP2、DTensor 等分布式接口,2026 年 10 月 20 日起以公开 beta 形式提供,可通过 pip install torch-neuronx 安装。Transformers、Diffusers、Accelerate、PEFT 和 TRL 可直接在 Trainium 上运行,无需再经过 Optimum Neuron;官方建议 Neuron 用户改用这些库。文本生成方面,前 100 个最常用架构中有 89% 开箱支持,Optimum Neuron v0.4.5 为 46%,只需传入 device_map=neuron。

推荐理由

精选AI 评分 60

原文给出 Trainium 上原生 PyTorch 后端的支持范围与迁移方式,读者可据此判断现有 HF 训练推理脚本能否直接复用。

主题

标签

正文

TorchNeuron

TorchNeuron is a PyTorch plugin that brings a new backend for Trainium enabling support for eager mode, torch.compile and native distributed APIs like FSDP and TP. Read the Pytorch blog to learn more about TorchNeuron.

Starting Oct. 20, 2026, TorchNeuron will be available as a public beta. Researchers and developers will be able to install it with pip install torch-neuronx .

New backend, native interface in HF libraries

To date, the Hugging Face experience on AWS Trainium and Inferentia — AI chips designed respectively for cost-effective training and inference at scale — has been delivered through optimum-neuron . This library relies on the torch-neuronx package, which is based on PyTorch XLA. It was the natural choice at the time, but it meant thinking like a compiler: lazy tensors instead of eager execution, static shapes only, a recompilation for every graph break. Optimum Neuron existed to hide that complexity, and maintained custom code (modeling classes, trainers, etc) to do so.

TorchNeuron changes this. It integrates directly into PyTorch and exposes neuron as a native device, with eager execution, PyTorch's own distributed primitives (DTensor, FSDP2) and torch.compile .

For the Hugging Face libraries, Trainium becomes a device like any other: Transformers, Diffusers, Accelerate, PEFT and TRL run on it directly, with the same classes and scripts you would use on any other accelerator. From now on, we recommend that Neuron users use these libraries directly instead of going through Optimum Neuron.

Transformers

Inference

Text generation is now natively supported in Transformers for a wide range of models. With TorchNeuron, 89% of the top 100 most-used text-generation model architectures are supported out of the box, compared to 46% with Optimum Neuron v0.4.5. You just need to pass the device_map=neuron argument in your code and your model will be moved to the Neuron devices.

The following is an example of text-generation with tensor parallelism, which will enable to fully benefit from your Neuron instance. Note that it uses a static cache for generation as this is strongly recommended with Neuron to prevent frequent recompilations.

Training

Now that Neuron is a native PyTorch device, training on Trainium uses the same Hugging Face libraries as any other accelerator: Transformers, Accelerate, PEFT and TRL. You no longer need a dedicated trainer or a Neuron-specific fork of the model code. A standard TRL fine-tuning script runs on a Trainium instance with only a few Neuron-specific settings.

Here is a supervised fine-tuning script built on TRL's SFTTrainer . If you have fine-tuned a model with TRL on GPUs before, it should look familiar.

Parallelism is handled natively by Transformers. You put a DistributedConfig with the tensor-parallel (TP) and FSDP sizes in model_init_kwargs , SFTTrainer passes it to from_pretrained , and the model is sharded as its weights are loaded. The Trainer sees that the model is already distributed and does not wrap it again. You don't need an --fsdp flag or an Accelerate FSDP config.

Nothing in the script is tied to Trainium: the same code runs on any hardware. A few things are worth knowing when you run it on Trainium:

Static shapes. The script disables automatic dynamic shapes in torch.compile and uses wrapped packing to produce sequences of up to 2048 tokens. With TRL ≥ 1.16, batches on Neuron are padded to a multiple of 128 tokens, limiting the number of input shapes. Compiled graphs are reused for subsequent steps with the same shapes.

torch.compile on. Passing --torch_compile true is all it takes: on a Trainium instance, torch.compile detects the device and picks the Neuron backend automatically, with nothing else to configure.

Async weight loading off. The built-in asynchronous weight loading in Transformers is not supported on Neuron, so for now we disable it with HF_DEACTIVATE_ASYNC_LOAD=1 .

The command below launches training with torchrun , which starts one process per NeuronCore. TP_SIZE and FSDP_SIZE set the parallelism layout, and their product is the number of processes: here 4 x 8 = 32, matching --nproc_per_node . The 32 processes form a 4 x 8 grid. Tensor parallelism splits each layer across the 4 cores of a TP group, and FSDP shards the parameters, gradients and optimizer state across the 8 TP groups.

We ran it on 8 Trainium2 chips (32 NeuronCores), which is half a trn2.48xlarge instance.

Training runs to completion, and trainer.save_model writes a standard Transformers checkpoint. Nothing in it is tied to Neuron: you can push it to the Hugging Face Hub as is and load it on any other hardware.

Diffusers

Inference

Many pipelines from the Diffusers library are compatible with TorchNeuron in eager and compiled mode. FLUX.1-dev, FLUX.2, Qwen-Image, Qwen-Image-2.1 and H3 are also compatible with tensor parallelism to make the most of your Neuron devices. The following is an example showing how you can use TP:

You can run this piece of code with: NEURON_LOGICAL_NC_CONFIG=2 torchrun --nproc_per_node=8 run.py .

More and more pipleines will be compatible with TP. If a pipeline you like is not, you can also add support for it following this guide .

Kernels

Make sure to check out the kernels from the Neuron team as more and more Neuron kernels will become available on the Hub to speed up your models. Neuron kernels can be written using the Neuron Kernel Interface (NKI), which gives lower control to optimize operations. This way, users can run their own custom operations and share them on the hub.

You can use for example this kernel to speed up your vision transformers with up to a x2.4 speedup on Trainium!

Acknowledgments

Special thanks to the AWS team for their work on TorchNeuron and for their reactivity to our feedback to make the HF integration as good as possible.

More Articles from our Blog

Profiling in PyTorch (Part 2): From nn.Linear to a Fused MLP

+1

Profiling in PyTorch (Part 1): A Beginner's Guide to torch.profiler

来源

Hugging Face