Pergunta de entrevista para Engenheiro de Machine Learning

O que é treino em precisão mista e o que pode dar errado com ele?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

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

Exemplo falado, em primeira pessoa

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 funciona

Perguntas 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

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot