Precisão mista roda a maior parte das operações em 16 bits (fp16 ou bf16) mantendo uma cópia mestre dos pesos e certas reduções em fp32. Isso corta a memória mais ou menos pela metade e usa tensor cores, então é bem mais rápido. O risco com fp16 é underflow: gradientes pequenos arredondam para zero, e é por isso que existe loss scaling. O bf16 mantém a faixa de expoente do fp32, então em grande parte evita isso.
Por que os entrevistadores perguntam isso
Quase todo treino sério usa isso, então entrevistadores esperam mais do que o nome. A parte valiosa é saber por que fp16 precisa de loss scaling e por que bf16 não precisa, o que exige entender a diferença entre faixa e precisão em ponto flutuante. Citar que você mantém pesos mestres e reduções de softmax ou norm em fp32 mostra que você sabe onde a numérica realmente quebra.
Como estruturar sua resposta
- Diga o que roda em precisão baixa e o que fica em fp32.
- Enuncie o benefício de memória e velocidade de forma concreta.
- Explique underflow em fp16 e loss scaling dinâmico.
- Contraste a faixa do bf16 com a precisão do fp16 e dê o seu padrão.
Exemplo de resposta
Você mantém uma cópia mestre dos pesos em fp32 mas roda as passagens forward e backward em 16 bits, então ativações e gradientes têm metade do tamanho e os matmuls caem nos tensor cores. Na prática isso é mais ou menos metade da memória e muitas vezes perto do dobro do throughput, o que pode ser a diferença entre um treino caber no seu hardware ou não. A falha clássica é underflow em fp16. O fp16 tem só cinco bits de expoente, então gradientes muito pequenos vão a zero, e gradientes pequenos são exatamente os que importam no fim do treino. É isso que o loss scaling dinâmico corrige: multiplique a loss por um fator grande antes do backward para os gradientes caírem na faixa representável, desfaça a escala antes do passo do otimizador, e reduza o fator quando aparecerem infinitos. O bf16 mantém oito bits de expoente, a mesma faixa do fp32, e paga por isso com menos bits de mantissa, então ele dá underflow muito menos e em geral não precisa de loss scaling nenhum. Meu padrão hoje é bf16 em qualquer coisa Ampere ou mais nova. E eu mantenho reduções como softmax, layer norm e a própria loss em fp32, porque somar milhares de termos em 16 bits perde acurácia rápido.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Por que o bf16 troca bits de mantissa por bits de expoente, e quando isso dói?
- Que sintomas te diriam que o loss scaling está mal configurado?
- Precisão mista muda a sua escolha de taxa de aprendizado?
Mais perguntas para Engenheiro de Machine Learning
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas