Precisão Mista com autocast e GradScaler
Cálculos em meia precisão para grandes ganhos de velocidade
Precisão Mista com autocast e GradScaler é uma aula grátis de Deep Learning Academy no CoddyKit. Esta é a aula 1 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 Deep Learning Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Deep Learning Academy inclui 4 aulas no total.
O que significa precisão mista
Por padrão, o PyTorch faz cálculos com números de ponto flutuante de 32 bits. A precisão mista executa muitas operações em 16 bits, o que é mais rápido e usa muito menos memória.
Por que a meia precisão é mais rápida
As GPUs modernas têm núcleos tensoriais especialmente ajustados para cálculos de 16 bits. Alimentá-los com dados de meia precisão pode acelerar o treinamento em duas ou três vezes, com pouca perda de precisão.
A desvantagem dos 16 bits
A meia precisão tem um intervalo muito pequeno, então valores muito baixos de gradiente podem ser arredondados para zero. Esse subfluxo silencioso interrompe o aprendizado se você não fizer nada a respeito.
Conheça autocast
Envolva sua passagem direta em autocast, e o PyTorch escolherá automaticamente uma precisão segura para cada operação. Você nunca precisa converter tensores manualmente.
with torch.autocast(device_type='cuda'):
out = model(x)O que autocast envolve
Coloque apenas a passagem direta e a perda dentro de autocast. A chamada backward fica fora do bloco, onde o PyTorch cuida da precisão para você.
with torch.autocast(device_type='cuda'):
out = model(x)
loss = loss_fn(out, y)Conheça GradScaler
Um GradScaler corrige o subfluxo multiplicando a perda por um fator grande antes de backward, para que os gradientes pequenos continuem grandes o suficiente para sobreviver em 16 bits.
scaler = torch.cuda.amp.GradScaler()Escale a perda
Em vez de loss.backward(), chame scaler.scale(loss).backward(). O scaler aumenta primeiro a perda, para que os gradientes resultantes não desapareçam.
scaler.scale(loss).backward()Avance usando o scaler
Execute o otimizador com scaler.step, que reduz discretamente os gradientes escalados ao tamanho normal antes de aplicar a atualização.
scaler.step(optimizer)Atualize o fator de escala
Finalize cada step com scaler.update(). Ele aumenta a escala quando tudo está estável e a reduz caso detecte um estouro.
scaler.update()O step completo de AMP
Juntas, essas chamadas formam uma iteração limpa de AMP: zerar os gradientes, passagem direta com autocast, backward escalado, step do scaler e, depois, atualização.
optimizer.zero_grad()
with torch.autocast(device_type='cuda'):
loss = loss_fn(model(x), y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()Quando usar isso
A precisão mista é excelente em uma GPU NVIDIA recente com lotes grandes. Em uma CPU comum, ela oferece pouco benefício; portanto, reserve-a para treinamentos reais.
Verificação rápida
Você ativou autocast, mas os gradientes pequenos continuam desaparecendo. Qual ferramenta corrige isso?
Recapitulação
Envolva a passagem direta em autocast para fazer cálculos rápidos em 16 bits e use GradScaler para escalar, avançar e atualizar, de modo que os gradientes pequenos sobrevivam. ⚡
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Precisão Mista com autocast e GradScaler” é grátis?
Sim — o texto completo de “Precisão Mista com autocast e GradScaler” é 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 Deep Learning Academy, atualize para CoddyKit PRO. O curso de Deep Learning Academy inclui 4 aulas no total.
O que vou aprender em “Precisão Mista com autocast e GradScaler”?
Cálculos em meia precisão para grandes ganhos de velocidade Você pratica Deep Learning Academy 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 Deep Learning Academy?
Nenhuma experiência prévia é necessária. Deep Learning Academy 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 1 de 4.
Quanto tempo leva a aula “Precisão Mista com autocast e GradScaler”?
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 Deep Learning Academy?
Sim. Cada aula de Deep Learning Academy 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
- Precisão Mista com autocast e GradScaler
- Acumulação de Gradientes para Lotes Grandes
- Analise o Gargalo
- Reduza o Uso de Memória da GPU