0Pricing
Learn AI with Python · Aula

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.device

Preparando 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.py

Por 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 ambiente
  • acc.prepare(model, optimizer, dataloader) configura tudo para os dispositivos atuais
  • acc.backward(loss) gerencia a retropropagação distribuída e de precisão mista
  • acc.unwrap_model fornece 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

  1. Treinamento com várias GPUs usando DataParallel
  2. DistributedDataParallel (DDP)
  3. Treinamento com precisão mista usando AMP
  4. Treinamento eficiente com Hugging Face Accelerate
← Voltar para Learn AI with Python