TorchNeuron: AWS Trainium 上の Hugging Face モデル向けネイティブ PyTorch バックエンド
TorchNeuron は、AWS Trainium 向けのネイティブ PyTorch バックエンドを提供し、eager 実行や torch.compile などの標準的な PyTorch 機能をフレームワークに直接統合することで、Trainium 上での Hugging Face モデルの実行と共有のプロセスを劇的に簡素化します。
TorchNeuron の概要
TorchNeuron は、AWS Trainium チップ専用の新しいバックエンドを導入する PyTorch プラグインです。このバックエンドにより、eager モード、torch.compile、FSDP や TP(テンソル並列処理)を含むネイティブ分散 API のサポートが可能になります。
2026 年 10 月 20 日現在、TorchNeuron はパブリックベータ版として利用可能で、pip install torch-neuronx でインストールできます。
技術的転換: ネイティブ PyTorch 統合
TorchNeuron は、従来の方法と比較して、Hugging Face ライブラリが AWS Trainium と連携する方法を根本的に変えます。以前は、Hugging Face のエクスペリエンスは、PyTorch XLA に基づく torch-neuronx を使用した optimum-neuron に依存していました。この古いアプローチでは、開発者はコンパイラのように考え、遅延テンソルを管理し、静的シェイプを強制し、グラフが分割されるたびに再コンパイルする必要がありました。
TorchNeuron は、PyTorch に直接統合することでこの複雑さを排除します。neuron をネイティブデバイスとして公開し、eager 実行、torch.compile、DTensor や FSDP2 などのネイティブ分散プリミティブといった標準的な PyTorch プリミティブをサポートします。その結果、Transformers、Diffusers、Accelerate、PEFT、TRL を含む Hugging Face ライブラリは、他のアクセラレータで使用されるのと同じクラスとスクリプトを使用して Trainium 上で実行でき、ハードウェアが標準的な PyTorch デバイスであるかのように感じられます。
Transformers: LLM 推論とトレーニング
推論機能
テキスト生成は、TorchNeuron を使用して幅広いモデルで Transformers においてネイティブにサポートされるようになりました。この新しいバックエンドにより、最も使用されているテキスト生成モデルアーキテクチャ上位 100 件のうち 89% がそのままサポートされ、Optimum Neuron v0.4.5 でサポートされていた 46% から大幅に増加しました。ユーザーはコード内で device_map=neuron 引数を渡すことで Neuron デバイスを有効にできます。最適なパフォーマンスを得るには、頻繁な再コンパイルを防ぐために、生成時の静的キャッシュを強く推奨します。
トレーニング機能
Trainium でのトレーニングは、専用のトレーナーや Neuron 固有のモデルコードを必要とせず、標準的な Hugging Face ライブラリ(Transformers、Accelerate、PEFT、TRL)を利用するようになりました。標準的な TRL ファインチューニングスクリプトは、最小限の Neuron 固有の設定で Trainium インスタンス上で実行できます。
Trainium でのトレーニングに関する主な考慮事項は次のとおりです。
- 静的シェイプ: スクリプトは
torch.compileの自動動的シェイプを無効にし、ラップされたパッキングを使用して最大 2048 トークンのシーケンスを生成する必要があります。Neuron 上のバッチは 128 トークンの倍数にパディングされるため、入力シェイプの数が制限されます。コンパイルされたグラフは、同一シェイプの後続ステップで再利用されます。 torch.compile: トレーニングを有効にするには、--torch_compile trueを渡す必要があります。Trainium インスタンスでは、torch.compileがデバイスを自動的に検出し、Neuron バックエンドを選択します。- 非同期ロード: Transformers に組み込まれている非同期ウェイトロードは Neuron ではサポートされておらず、
HF_DEACTIVATE_ASYNC_LOAD=1を使用して無効にする必要があります。
並列処理は、model_init_kwargs でテンソル並列(TP)サイズと FSDP サイズを指定することで、DistributedConfig を通じてネイティブに管理されます。Trainer は、--fsdp フラグや Accelerate FSDP 設定を必要とせずにこの分散を処理します。
Diffusers: 画像生成パイプライン
Diffusers ライブラリ内の多くのパイプラインは TorchNeuron と互換性があり、eager モードとコンパイルモードの両方をサポートしています。FLUX.1-dev、FLUX.2、Qwen-Image、Qwen-Image-2.1、H3 などの特定のモデルは、Neuron デバイスの使用を最大化するためにテンソル並列処理(TP)と互換性があります。
テンソル並列処理は、Neuron バックエンド用に構成された DeviceMesh を参照する TensorParallelConfig でトランスフォーマーを初期化することで実装できます。これにより、テキストエンコーダーを CPU に残し、トランスフォーマーを Neuron デバイス全体で動作させながら、分散画像生成が可能になります。
カーネル: カスタム操作と高速化
ユーザーは、Hugging Face Hub でますます利用可能になっている Neuron カーネルを通じてカスタム操作を活用できます。Neuron カーネルは、Neuron Kernel Interface(NKI)を使用して記述でき、特定の操作を最適化するための低レベルの制御を提供します。たとえば、ビジョントランスフォーマー向けの特定のカーネルは、Trainium 上で最大 2.4 倍の高速化を実証しています。
利点のまとめ
TorchNeuron は、複雑なコンパイラベースのワークフローをネイティブ PyTorch 統合に置き換えることで、AWS Trainium 上の ML ライフサイクル全体を簡素化します。これにより、研究者や開発者は、トレーニングと推論の両方で標準的な Hugging Face コードベースを使用しながら、専用ハードウェアアクセラレーションへのアクセスを得ることができます。
SUMMARY: TorchNeuron は、AWS Trainium 向けのネイティブ PyTorch バックエンドを導入し、eager 実行とネイティブ PyTorch プリミティブを有効にすることで、Hugging Face モデル(Transformers、Diffusers、Kernels)のデプロイと共有を簡素化します。
TITLE: TorchNeuron: AWS Trainium 上の Hugging Face モデル向けネイティブ PyTorch バックエンド