Precisão Mista & Escalonamento da Loss

Como os modelos realmente aprendem, da descida do gradiente simples ao Adam

O treinamento em precisão mista usa formatos numéricos menores para ganhar velocidade e memória. Em vez de armazenar todo cálculo em precisão total (o padrão de floats de 32 bits), muitas operações usam float16 ou bfloat16: formatos de 16 bits que ocupam metade da memória em troca de menos precisão e, no caso do float16, uma faixa mais estreita de tamanhos representáveis.

O risco é a faixa numérica. Alguns gradientes são minúsculos. Se um número minúsculo é arredondado para zero, o otimizador perde informação. O escalonamento da loss protege esses gradientes pequenos multiplicando a loss antes da retropropagação e depois dividindo os gradientes de volta.

Uma balança de cozinha que arredonda para o grama inteiro pode perder uma pitadinha minúscula de tempero. Se você pesa dez pitadas idênticas juntas, a balança consegue enxergar o total. Depois você divide por dez para recuperar uma pitada. O escalonamento da loss usa o mesmo truque: torna o valor pequeno mais fácil de representar, depois o escala de volta. A figura abaixo é um lembrete do que está em jogo. A descida só funciona se o gradiente de cada passo sobreviver à aritmética; a precisão não muda o laço, ela decide se as inclinações minúsculas perto do mínimo continuam visíveis para ele.

Onde isso aparece no MLA precisão mista é uma das razões pelas quais grandes redes neurais treinam rápido em hardware moderno. Os otimizadores ainda precisam dos mesmos conceitos, mas a escala numérica passa a fazer parte da receita de treino.
▶ Precisão Mista & Escalonamento da Loss
← Mínimos Quadrados AlternadosEscalonamento do Tamanho do Batch →