Si el modelo cabe pero quieres rendimiento, usa paralelismo de datos: replica el modelo, reparte el batch, haz all reduce de los gradientes. Si no cabe, fragméntalo. El paralelismo de tensores parte capas individuales entre dispositivos, el paralelismo de pipeline asigna capas distintas a etapas distintas, y el paralelismo de datos totalmente fragmentado reparte parámetros, gradientes y estado del optimizador entre ranks. Las ejecuciones grandes suelen combinarlos.
Por qué lo preguntan los entrevistadores
Esto separa a quien ha entrenado en un clúster de quien solo ha usado una GPU. El entrevistador quiere la distinción entre no cabe y va lento, ya que piden herramientas distintas. Nombrar la fragmentación estilo FSDP o ZeRO, y entender que el estado del optimizador suele dominar la memoria más que los pesos, es el detalle que demuestra exposición real.
Cómo estructurar tu respuesta
- Separa el problema de va lento del problema de no cabe.
- Describe el paralelismo de datos y el paso de all reduce.
- Describe la fragmentación de tensores y de pipeline con una línea cada una.
- Menciona fragmentar el estado del optimizador y dónde la comunicación se vuelve el cuello de botella.
Ejemplo de respuesta
La primera pregunta es si no cabe o si solo va lento, porque son problemas distintos. Si cabe, el paralelismo de datos es la victoria fácil: cada GPU tiene una réplica completa, cada una toma una porción del batch, y haces all reduce de los gradientes antes del paso. Eso escala bien hasta que el all reduce satura tu interconexión. Si de verdad no cabe, miro primero la composición de la memoria, porque con Adam el estado del optimizador es aproximadamente el doble del número de parámetros en fp32, así que los pesos suelen ser la minoría de la huella. Eso apunta directamente al paralelismo de datos fragmentado, FSDP o ZeRO etapa tres, que reparte parámetros, gradientes y estado del optimizador entre ranks y los reúne justo a tiempo. Normalmente basta y mantiene simple el modelo de programación. Más allá pasas al paralelismo de tensores, partiendo los productos de matrices dentro de una capa entre dispositivos, que necesita interconexión rápida porque comunica en cada capa, así que lo mantengo dentro de un nodo. El paralelismo de pipeline pone capas distintas en dispositivos distintos y peleas contra la burbuja con micro batches. Antes de todo eso pruebo el checkpointing de gradientes y la precisión mixta, porque a veces solo con eso vuelves a estar por debajo del límite.
¿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 funcionaPreguntas de seguimiento que puedes esperar
- ¿Qué te cuesta en cómputo el checkpointing de gradientes?
- ¿Por qué el paralelismo de tensores quiere quedarse dentro de un solo nodo?
- ¿Cómo escala la burbuja del pipeline con el número de etapas?
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