TorchNeuron: Amazon abre o Trainium ao PyTorch com uma mudança de configuração
Imagen generada con gpt-image-2.5-sunburst para InferamaFonte ↗
01

O fim da reescrita obrigatória

A Amazon Web Services apresentou o TorchNeuron, uma biblioteca de código aberto sob a licença Apache 2.0 que permite executar código do PyTorch diretamente em seus aceleradores Trainium2 e Trainium3. O objetivo principal é eliminar a barreira técnica que historicamente impediu os desenvolvedores de migrar seus modelos para hardware alternativo: a necessidade de reescrever aplicações inteiras para se adaptar a uma nova arquitetura.

Durante mais de uma década, o ecossistema da NVIDIA se consolidou graças ao CUDA, um software que permite que as aplicações do PyTorch funcionem de forma nativa em suas GPUs. O TorchNeuron ataca diretamente essa vantagem competitiva ao se integrar nos pontos de extensão oficiais do PyTorch, especificamente através do backend PrivateUse1. Isso significa que os desenvolvedores podem manter seu fluxo de trabalho habitual e simplesmente mudar o dispositivo de destino por meio de uma linha de configuração.

02

Arquitetura técnica e modos de execução

O TorchNeuron não é um wrapper simples, mas um backend nativo que se integra profundamente ao compilador do PyTorch. Ele suporta dois modos de execução principais: o modo eager, ideal para pesquisa e depuração, e o modo torch.compile, otimizado para desempenho em produção. No modo eager, cada operação é compilada individualmente em um arquivo NEFF (Neuron Executable File Format) e executada no dispositivo.

Para cargas de trabalho de alta intensidade, o uso do torch.compile permite capturar o modelo como um grafo que o compilador Neuron otimiza globalmente. Este processo utiliza o Torch-MLIR para converter o grafo em StableHLO antes de gerar o código final para o hardware. Além disso, a biblioteca suporta APIs distribuídas padrão como FSDP, DDP e DTensor, o que facilita o treinamento de modelos em grande escala sem modificar a lógica de paralelismo.

Modos de execução no TorchNeuron

Comparativo dos modos de execução disponíveis e seus casos de uso recomendados.

ModoUso principalCaracterísticas
EagerPesquisa e debuggingExecução imediata, suporte a breakpoints e fluxo de controle dinâmico.
torch.compileProdução e alto desempenhoOtimização de grafo completo, uso de NKI para kernels personalizados.
03

Limitações técnicas da versão inicial

Embora o lançamento seja significativo, a versão beta pública do TorchNeuron apresenta limitações concretas que as equipes devem considerar antes de migrar cargas de trabalho críticas. De acordo com a documentação técnica, a primeira versão omite aproximadamente 22.000 testes do suite do PyTorch, principalmente relacionados a operadores que ainda não têm uma implementação nativa no Neuron.

Entre as funções não suportadas neste primeiro lançamento estão as formas de entrada dinâmicas (dynamic shapes), tensores dispersos e certas operações de autograd em modo forward. Essas omissões significam que nem todo o código PyTorch será compatível imediatamente, e os desenvolvedores precisarão validar seus modelos específicos para garantir que não dependam dessas funcionalidades excluídas.

04

Impacto estratégico e competição com a NVIDIA

A movimentação da Amazon não é apenas técnica, mas estratégica. Ao abrir o TorchNeuron e contribuir para o projeto principal do PyTorch para tornar o framework mais agnóstico em relação ao hardware, a AWS busca erosionar a vantagem da NVIDIA no software. A ideia é que os desenvolvedores escolham o hardware com base no preço, no desempenho e na disponibilidade, e não na compatibilidade forçada pelo código.

Colin Brace, VP de Tecnologia de Software na AWS Annapurna Labs, apontou que o objetivo é eliminar o 'lock-in' que impedia os desenvolvedores de ter uma escolha real. Com mais de 30 clientes iniciais testando a tecnologia, incluindo empresas de IA de voz como Deepgram e Cartesia, a Amazon demonstra que é possível obter melhorias na eficiência de custo sem sacrificar a qualidade do modelo.

05

Como começar com o TorchNeuron

Para os desenvolvedores interessados em testar o TorchNeuron, o processo de instalação é simples. A biblioteca está disponível no GitHub sob o repositório aws-neuron/torch-neuronx. Uma vez instalado, a mudança para o Trainium é feita modificando o dispositivo de destino do modelo.

É importante notar que o TorchNeuron requer instâncias EC2 Trn2 ou Trn3. As equipes que já utilizam PyTorch podem começar com modelos pequenos para validar a compatibilidade antes de escalar para cargas de trabalho de treinamento ou inferência em grande escala. A integração com o Hugging Face Transformers também permite carregar modelos pré-treinados diretamente no dispositivo Neuron.

Exemplo de migração para o Trainium · python

Código de exemplo mostrando como mudar o dispositivo de um modelo PyTorch para o Trainium usando o TorchNeuron.

import torch

# Definir um modelo simples
model = torch.nn.Linear(10, 1)

# Migrar para o Trainium (mudança de uma linha)
model = model.to('neuron')

# Executar uma inferência
input_data = torch.randn(1, 10, device='neuron')
output = model(input_data)

print(output)

Questões em aberto

  • Não foram publicados benchmarks independentes que confirmem as melhorias de desempenho relatadas pela Amazon para todos os tipos de modelos.
  • O calendário para fechar as lacunas de compatibilidade (os 22.000 testes omitidos) não está detalhado nas fontes primárias.
  • Não se especifica quais modelos específicos de cada cliente inicial (como o Lieber Institute) estão sendo executados nem seus resultados concretos.
06

Continue a explorar

06

Fontes consultadas

03

Correções e transparência

Se encontrar informação incorreta ou desatualizada, envie-nos a página e a fonte que devemos rever.

Propor uma correção