Pregunta de entrevista para Ingeniero de machine learning

¿Qué es el entrenamiento en precisión mixta y qué puede salir mal con él?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

La precisión mixta ejecuta la mayoría de las operaciones en 16 bits (fp16 o bf16) mientras mantiene una copia maestra de los pesos y ciertas reducciones en fp32. Eso reduce la memoria más o menos a la mitad y usa los tensor cores, así que es sustancialmente más rápido. El riesgo con fp16 es el subdesbordamiento: los gradientes pequeños se redondean a cero, y por eso existe el escalado de la pérdida. bf16 conserva el rango de exponente de fp32, así que en gran medida lo evita.

Por qué lo preguntan los entrevistadores

Casi todo entrenamiento serio lo usa, así que los entrevistadores esperan algo más que el nombre. La parte valiosa es saber por qué fp16 necesita escalado de la pérdida y por qué bf16 no, lo que exige entender la diferencia entre rango y precisión en punto flotante. Mencionar que mantienes los pesos maestros y las reducciones del softmax o de las normas en fp32 demuestra que sabes dónde se rompe de verdad la numérica.

Cómo estructurar tu respuesta

  • Di qué corre en baja precisión y qué se queda en fp32.
  • Enuncia el beneficio de memoria y velocidad de forma concreta.
  • Explica el subdesbordamiento en fp16 y el escalado dinámico de la pérdida.
  • Contrasta el rango de bf16 con la precisión de fp16 y da tu opción por defecto.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Mantienes una copia maestra de los pesos en fp32 pero ejecutas los pases hacia delante y hacia atrás en 16 bits, así que las activaciones y los gradientes ocupan la mitad y los productos de matrices llegan a los tensor cores. En la práctica eso es más o menos la mitad de la memoria y a menudo casi el doble de rendimiento, que puede ser la diferencia entre que una ejecución quepa en tu hardware o no. El fallo clásico es el subdesbordamiento en fp16. fp16 solo tiene cinco bits de exponente, así que los gradientes muy pequeños se van a cero, y los gradientes pequeños son justo los que importan al final del entrenamiento. Eso es lo que arregla el escalado dinámico de la pérdida: multiplicas la pérdida por un factor grande antes del pase hacia atrás para que los gradientes caigan en un rango representable, deshaces el escalado antes del paso del optimizador, y bajas el factor cuando ves infinitos. bf16 conserva ocho bits de exponente, el mismo rango que fp32, y lo paga con menos bits de mantisa, así que subdesborda mucho menos y en general no necesita escalado de la pérdida en absoluto. Mi opción por defecto ahora es bf16 en cualquier cosa Ampere o posterior. Y mantengo reducciones como el softmax, la layer norm y la propia pérdida en fp32, porque sumar miles de términos en 16 bits pierde precisión rápido.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Por qué cambia bf16 bits de mantisa por bits de exponente, y cuándo duele eso?
  • ¿Qué síntomas te dirían que el escalado de la pérdida está mal configurado?
  • ¿Cambia la precisión mixta tu elección de tasa de aprendizaje?

Más preguntas para Ingeniero de machine learning

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot