Treinamento eficiente com Hugging Face Accelerate
accelerate.Accelerator, treinamento independente do dispositivo, acumulação de gradientes e integração com DeepSpeed.
Treinamento eficiente com Hugging Face Accelerate é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O problema do código repetitivo
Escrever manualmente a atribuição de dispositivos, a configuração de DDP e a precisão mista é trabalhoso e propenso a erros. Hugging Face Accelerate elimina esse código repetitivo: o mesmo script é executado na CPU, em uma GPU, em várias GPUs ou até mesmo em TPUs, sem alterações no código.
O objeto Accelerator
O núcleo da biblioteca é o Accelerator. Você cria um no início do script; ele detecta o ambiente e gerencia os dispositivos, a configuração distribuída e a precisão para você.
from accelerate import Accelerator
accelerator = Accelerator()
device = accelerator.devicePreparando objetos
accelerator.prepare recebe seu modelo, otimizador e carregador de dados e retorna versões configuradas para a configuração atual: movidas para o dispositivo correto, envolvidas em DDP quando necessário e com o carregador de dados particionado entre os processos.
model, optimizer, dataloader = accelerator.prepare(
model, optimizer, dataloader
)O que prepare faz
Internamente, prepare cuida do trabalho que você faria manualmente: transferência para o dispositivo, envolvimento em DDP, amostragem distribuída e integração da precisão mista. Uma chamada substitui dezenas de linhas.
Sem .to(device) manual
Como o carregador de dados preparado fornece lotes já no dispositivo correto, você elimina as chamadas manuais a x.to(device). O mesmo ciclo funciona em qualquer ambiente.
for batch in dataloader:
inputs, labels = batch # already on device
outputs = model(inputs)
loss = loss_fn(outputs, labels)accelerator.backward
Em vez de loss.backward(), chame accelerator.backward(loss). Isso usa automaticamente o caminho correto para treinamento distribuído e com precisão mista (incluindo o escalonamento dos gradientes).
optimizer.zero_grad()
accelerator.backward(loss)
optimizer.step()Um ciclo de treinamento completo
O ciclo completo do Accelerate é excepcionalmente simples e independente do dispositivo.
accelerator = Accelerator()
model, optimizer, dataloader = accelerator.prepare(model, optimizer, dataloader)
for epoch in range(epochs):
for batch in dataloader:
inputs, labels = batch
outputs = model(inputs)
loss = loss_fn(outputs, labels)
optimizer.zero_grad()
accelerator.backward(loss)
optimizer.step()Precisão mista por configuração
Você habilita FP16/BF16 sem tocar no código, definindo essa opção ao criar o Accelerator ou por meio da configuração da CLI. Accelerate gerencia o autocast e o escalonamento dos gradientes para você.
accelerator = Accelerator(mixed_precision="fp16")unwrap_model para salvar
Depois de prepare, o modelo pode estar envolvido em DDP. Antes de salvar, chame accelerator.unwrap_model(model) para obter o modelo subjacente simples, de modo que o ponto de verificação seja limpo e portátil.
unwrapped = accelerator.unwrap_model(model)
accelerator.save(unwrapped.state_dict(), "model.pt")Execução em Diferentes Dispositivos
Você executa o mesmo script com o comando accelerate launch, que lê sua configuração (número de processos, máquinas e precisão) e inicia os processos, gerenciando de forma transparente os casos de GPU única, várias GPU e vários nós.
accelerate config # one-time interactive setup
accelerate launch train.pyPor que usar o Accelerate
O Accelerate oferece gerenciamento transparente de vários dispositivos: escreva um único laço simples e amplie de uma CPU de notebook para um conjunto de GPU distribuído em vários nós sem reescrever o código. Ele se baseia nos mesmos conceitos de DDP e AMP que você já aprendeu, apenas ocultando os detalhes de integração.
Verificação rápida
Teste seus conhecimentos sobre o Accelerate.
Recapitulação
Você aprendeu a realizar treinamento eficiente com o Hugging Face Accelerate:
Accelerator()detecta e gerencia o ambienteacc.prepare(model, optimizer, dataloader)configura tudo para os dispositivos atuaisacc.backward(loss)gerencia a retropropagação distribuída e de precisão mistaacc.unwrap_modelfornece um modelo limpo para salvar- Um único programa é ampliado de forma transparente de CPU para várias GPU em vários nós
Perguntas Frequentes
A aula “Treinamento eficiente com Hugging Face Accelerate” é grátis?
Sim — o texto completo de “Treinamento eficiente com Hugging Face Accelerate” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Treinamento eficiente com Hugging Face Accelerate”?
accelerate.Accelerator, treinamento independente do dispositivo, acumulação de gradientes e integração com DeepSpeed. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Treinamento eficiente com Hugging Face Accelerate”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Treinamento com várias GPUs usando DataParallel
- DistributedDataParallel (DDP)
- Treinamento com precisão mista usando AMP
- Treinamento eficiente com Hugging Face Accelerate