Como descobrir por que seu modelo de IA está lento no Trainium da AWS
Tutorial ensina a usar ferramentas de profiling (análise de desempenho) para identificar gargalos de velocidade em modelos rodando no chip Trainium, da Amazon
A Hugging Face publicou um tutorial técnico ensinando a usar profiling (análise de desempenho) para descobrir por que modelos de IA estão lentos no Trainium (chip da Amazon para deep learning). O guia mostra como configurar o torch.profiler com o TorchNeuron (backend que conecta PyTorch ao chip), interpretar a tabela de tempos de cada operação e visualizar a execução no Neuron Explorer.

Muita gente que trabalha com inteligência artificial tem alguma intuição sobre como tornar modelos mais rápidos, mas poucas pessoas sabem de fato analisar por que um modelo está lento. A Hugging Face (uma plataforma onde desenvolvedores compartilham e baixam modelos de IA já treinados) publicou um guia técnico detalhado sobre como usar profiling (análise sistemática de desempenho) para descobrir onde um modelo perde tempo durante a inferência (o processo de fazer previsões com um modelo já treinado).
O tutorial foca no AWS Trainium, um chip desenvolvido pela Amazon especificamente para treinar e executar modelos de deep learning (aprendizado profundo, a técnica por trás da maior parte da IA moderna). O Trainium funciona com o TorchNeuron, um backend de código aberto (componente de software que faz a ponte entre o framework PyTorch e o hardware do chip) que permite rodar código PyTorch padrão com poucas modificações. A vantagem é que desenvolvedores podem usar as mesmas ferramentas e APIs (interfaces de programação) que já conhecem.
O guia usa como exemplo o RMSNorm, uma operação matemática comum em modelos de linguagem, e compara três formas de implementá-la: escrevendo cada operação individual no PyTorch (multiplicações, médias, raiz quadrada inversa), usando a função nativa torch.rms_norm (que funde tudo em uma única operação otimizada) e usando torch.compile (que tenta otimizar automaticamente código PyTorch). A ideia é mostrar como diferentes abordagens afetam o desempenho real no chip.
Para fazer a análise, o tutorial ensina a configurar o torch.profiler (ferramenta de análise de desempenho do PyTorch) com o NeuronConfig, que controla quais dados capturar e onde salvá-los. A tabela key_averages mostra quanto tempo cada operação consome na CPU e no dispositivo Neuron. No exemplo, três chamadas de multiplicação (aten::mul) consumiram quase metade do tempo total no chip. O Neuron Explorer, uma ferramenta visual que roda no navegador, permite acompanhar cada operação desde o momento em que o PyTorch a despacha até sua execução final nos núcleos de processamento do Trainium.
O tutorial completo, incluindo todos os scripts para reproduzir os experimentos, está disponível no repositório de exemplos do torch-neuronx no GitHub. É voltado para quem já programa em PyTorch mas nunca fez profiling antes — a série terá mais artigos explorando aspectos mais avançados da análise de desempenho.


