TorchNeuron: Amazon apre Trainium a PyTorch con un cambio di configurazione
Imagen generada con gpt-image-2.5-sunburst para InferamaFonte ↗
01

La fine della riscrittura obbligatoria

Amazon Web Services ha presentato TorchNeuron, una libreria open source sotto licenza Apache 2.0 che consente di eseguire codice PyTorch direttamente sui suoi acceleratori Trainium2 e Trainium3. L'obiettivo principale è eliminare la barriera tecnica che storicamente ha impedito agli sviluppatori di migrare i propri modelli su hardware alternativo: la necessità di riscrivere applicazioni complete per adattarle a una nuova architettura.

Per oltre un decennio, l'ecosistema di NVIDIA si è consolidato grazie a CUDA, un software che permette alle applicazioni PyTorch di funzionare nativamente sulle sue GPU. TorchNeuron attacca direttamente questo vantaggio competitivo integrandosi nei punti di estensione ufficiali di PyTorch, specificamente attraverso il backend PrivateUse1. Ciò significa che gli sviluppatori possono mantenere il proprio flusso di lavoro abituale e semplicemente cambiare il dispositivo di destinazione tramite una riga di configurazione.

02

Architettura tecnica e modalità di esecuzione

TorchNeuron non è un semplice wrapper, ma un backend nativo che si integra profondamente con il compilatore di PyTorch. Supporta due modalità di esecuzione principali: la modalità eager, ideale per la ricerca e il debug, e la modalità torch.compile, ottimizzata per le prestazioni in produzione. Nella modalità eager, ogni operazione viene compilata individualmente in un file NEFF (Neuron Executable File Format) ed eseguita sul dispositivo.

Per carichi di lavoro ad alta intensità, l'uso di torch.compile consente di catturare il modello come un grafo che il compilatore Neuron ottimizza globalmente. Questo processo utilizza Torch-MLIR per convertire il grafo in StableHLO prima di generare il codice finale per l'hardware. Inoltre, la libreria supporta API distribuite standard come FSDP, DDP e DTensor, facilitando l'addestramento di modelli su larga scala senza modificare la logica di parallelizzazione.

Modalità di esecuzione in TorchNeuron

Confronto delle modalità di esecuzione disponibili e dei casi d'uso consigliati.

ModalitàUso principaleCaratteristiche
EagerRicerca e debugEsecuzione immediata, supporto per breakpoint e flusso di controllo dinamico.
torch.compileProduzione e alte prestazioniOttimizzazione del grafo completo, uso di NKI per kernel personalizzati.
03

Limitazioni tecniche della versione iniziale

Sebbene il lancio sia significativo, la versione beta pubblica di TorchNeuron presenta limitazioni concrete che i team devono considerare prima di migrare carichi di lavoro critici. Secondo la documentazione tecnica, la prima versione omette circa 22.000 test della suite di PyTorch, principalmente relativi a operatori che non hanno ancora un'implementazione nativa in Neuron.

Tra le funzioni non supportate in questo primo lancio vi sono le forme di input dinamiche (dynamic shapes), i tensori sparsi e determinate operazioni di autograd in modalità forward. Queste omissioni significano che non tutto il codice PyTorch sarà immediatamente compatibile e gli sviluppatori dovranno validare i propri modelli specifici per assicurarsi che non dipendano da queste funzionalità escluse.

04

Impatto strategico e concorrenza con NVIDIA

La mossa di Amazon non è solo tecnica, ma strategica. Aprendo TorchNeuron e contribuendo al progetto principale di PyTorch per rendere il framework più agnostico rispetto all'hardware, AWS cerca di erodere il vantaggio di NVIDIA nel software. L'idea è che gli sviluppatori scelgano l'hardware in base al prezzo, alle prestazioni e alla disponibilità, e non per compatibilità forzata dal codice.

Colin Brace, VP di Software Technology presso AWS Annapurna Labs, ha indicato che l'obiettivo è eliminare il 'lock-in' che impediva agli sviluppatori di avere una scelta reale. Con oltre 30 clienti iniziali che stanno testando la tecnologia, tra cui aziende di IA vocale come Deepgram e Cartesia, Amazon dimostra che è possibile ottenere miglioramenti nell'efficienza dei costi senza sacrificare la qualità del modello.

05

Come iniziare con TorchNeuron

Per gli sviluppatori interessati a provare TorchNeuron, il processo di installazione è semplice. La libreria è disponibile su GitHub sotto il repository aws-neuron/torch-neuronx. Una volta installata, la migrazione a Trainium avviene modificando il dispositivo di destinazione del modello.

È importante notare che TorchNeuron richiede istanze EC2 Trn2 o Trn3. I team che utilizzano già PyTorch possono iniziare con modelli piccoli per validare la compatibilità prima di scalare a carichi di lavoro di addestramento o inferenza su larga scala. L'integrazione con Hugging Face Transformers consente inoltre di caricare modelli pre-addestrati direttamente sul dispositivo Neuron.

Esempio di migrazione a Trainium · python

Codice di esempio che mostra come cambiare il dispositivo di un modello PyTorch a Trainium usando TorchNeuron.

import torch

# Definire un modello semplice
model = torch.nn.Linear(10, 1)

# Migrare a Trainium (cambio di una riga)
model = model.to('neuron')

# Eseguire un'inferenza
input_data = torch.randn(1, 10, device='neuron')
output = model(input_data)

print(output)

Questioni aperte

  • Non sono stati pubblicati benchmark indipendenti che confermino i miglioramenti delle prestazioni riportati da Amazon per tutti i tipi di modelli.
  • La tempistica per colmare le lacune di compatibilità (i 22.000 test omessi) non è dettagliata nelle fonti primarie.
  • Non è specificato quali modelli specifici di ciascun cliente iniziale (come il Lieber Institute) siano in esecuzione né i loro risultati concreti.
06

Continua a esplorare

06

Fonti consultate

03

Correzioni e trasparenza

Se trovi un dato errato o non aggiornato, inviaci la pagina e la fonte da verificare.

Proponi una correzione