Prueba bien las partes deterministas y de forma conductual las estocásticas. Haz tests unitarios de las transformaciones de características contra fixtures, impón contratos de esquema y de rango sobre las entradas, mantén un test de fila dorada que cargue el pipeline serializado y compruebe que entradas conocidas producen puntuaciones conocidas, y escribe tests conductuales sobre las salidas del modelo (invarianza, expectativas direccionales) en vez de comprobar un número exacto de precisión.
Por qué lo preguntan los entrevistadores
Mucha gente dice que el machine learning no se puede probar de verdad, y es la respuesta equivocada. Los entrevistadores quieren oír que la mayor parte de un pipeline es código determinista normal que se prueba perfectamente, y que los modelos en sí son probables de forma conductual. Mencionar un test de regresión de fila dorada y contratos de validación de datos demuestra que has evitado una caída y no solo respondido a una.
Cómo estructurar tu respuesta
- Señala que la mayor parte del pipeline es código determinista.
- Nombra tests unitarios sobre las transformaciones y contratos de esquema sobre las entradas.
- Describe un test de fila dorada sobre el artefacto serializado.
- Añade tests conductuales en vez de comprobar una métrica exacta.
- Di qué va en CI y qué corre de forma programada.
Ejemplo de respuesta
La mayor parte de un pipeline es código normal y se prueba exactamente como código normal. Las transformaciones de características llevan tests unitarios contra fixtures pequeños, incluidos los casos feos: nulos, una categoría nunca vista en entrenamiento, un valor negativo donde solo se esperaban positivos. Los datos de entrada llevan comprobaciones de contrato, o sea esquema, tipos, rangos y tasas de nulos esperadas, ejecutadas como puerta antes de entrenar en vez de descubrirse después como un modelo raro. Luego un test de fila dorada, donde guardo un pipeline serializado y un puñado de entradas fijas con sus puntuaciones esperadas, y CI falla si una refactorización las cambia. Eso me ha pillado cambios de preprocesado sin ruido más de una vez. Para el modelo en sí no compruebo que la precisión supere cierto número, porque eso es inestable y es una mala puerta. Escribo tests conductuales en su lugar: invarianza, o sea que cambiar un campo irrelevante mueve la puntuación apenas, y expectativas direccionales, o sea que subir una característica que sabemos monótonamente relacionada mueve la predicción en el sentido correcto. Los entrenamientos completos son demasiado lentos para cada commit, así que van cada noche, con un entrenamiento de humo rápido sobre una muestra diminuta en CI para probar que el pipeline sigue funcionando de extremo a extremo.
¿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
- ¿Cómo escribirías un test para un modelo que es legítimamente no determinista?
- ¿Qué herramienta de validación de datos usarías, y sobre qué pondrías la puerta?
- ¿Cómo evitas que los tests de fila dorada se conviertan en ruido de mantenimiento?
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