3-Examen Machine Learning Engineer
3-Examen Machine Learning Engineer
3-Examen Machine Learning Engineer
Instrucciones generales
● Tienes tres días naturales para devolver tus respuestas a partir de que recibes este
documento.
● Si el tiempo no te es suficiente, envía todo lo que alcances a responder; es preferible
que mandes una parte a que no mandes nada.
● Puedes contactar al equipo para cualquier duda técnica que tengas, escribe a
f.vaquero@opianalytics.com y f.mekler@opianalytics.com, copiando a Recursos
Humanos (e.remy@opianalytics.com & d.fraide@opianalytocs.com).
1. Caso práctico
1.1. Contexto
Nuestro cliente Tamal Inc. necesita integrar fuentes de datos que describan sus ventas en el
mercado. La información vive en su Data Lake y el equipo de ingeniería de datos de OPI se
encarga de homologarlas para exponerlas en un cubo de datos en formato estrella que permite
a sus empleados generar reportes. El data lake está dividido en 2 zonas que almacenan los
datos con base en su madurez. Las zonas del data lake son:
● Crudo: Los datos se guardan en los archivos de entrada de una forma ordenada y que
permite tener trazabilidad respetando formatos y estructuras de datos originales.
● Procesado: En esta zona se guardan los datos refinados que se toman de la zona de
datos crudos y están listos para ser consumibles por las interfaces que llevan los datos
al usuario final.
Opción AWS
● s3://tamales-inc
● Para descargar la información a través de Amazon instala esta herramienta
Opción Drive
● Liga
1.3. Entregables
Como parte del equipo de ingeniería de datos de OPI Analytics, se requiere lo siguiente.
1.3.1. ETLs
Implementar un proceso de ingesta de datos en el data lake que garantice la correcta
actualización de los datos hasta el nivel de madurez “procesado”. Las métricas a integrar en la
capa de “procesado” del data lake son:
● Ventas mensuales
● Ventas mensuales acumuladas
● Diferencia % vs el mes anterior
Considerar:
● Versionar los cambios de los datos en el tiempo.
● Conservar el estado original de los datos para trazabilidad.
● La información de ventas del ERP es cargada de forma manual por un responsable del
ERP.
● Los pipelines de datos necesitan ser ejecutados por un orquestador de datos (ej,
datafactory, airflow, luigi, AWS glue)
● Los pipelines deben estar parametrizados para soportar re-procesamiento de datos.
● La tecnología de almacenamiento del data lake es un file system con la siguiente
estructura de carpetas:
○ ./crudo/generador/fuente/AAAAMMDD/
○ ./procesado/generador/fuente/AAAAMMDD/
Entregables:
● Proceso de ingesta de datos. Nos gustaría ver código de extracción y código de
orquestación.
● Como bonus, los diagramas son bienvenidos.
1.3.2. Modelo
El equipo tiene un mes para crear un primer MVP del modelo para ser consumido a través del
API. Es importante hacer pruebas de conectividad antes de enfocarnos en la eficacia del
modelo.
Considerar:
● La función expresada con el modelo de ML no es relevante para el proceso, no es
necesario preocuparse por la precisión del mismo para este ejercicio en particular.
● peso_por_categoria_calorica viven dentro de una base de datos.
● La evaluación del modelo se tiene que hacer a través de una API de consumo, no tiene
restricciones de tiempo de respuesta, concurrencia, etc.
● El modelo debe ser agnóstico al proveedor o ambiente de cómputo en la nube.
● Hay 3 científicos de datos trabajando en el mismo modelo.
● Tomar en cuenta la automatización del proceso de entrenamiento y posibles cambios
del modelo.
Entregables:
● API en Flask, FastAPI o similar, en formato Json con el resultado de la predicción.
1.3.3. Diseño
El caso de uso requiere que el equipo de OPI recalibre el modelo de machine learning, pero sólo
en caso de ser necesario. Esto quiere decir que se re-calibra el modelo solo si el modelo deja de
predecir adecuadamente. En el momento en que se detecta que tenemos que re-calibrar el
modelo, tenemos 48 horas para hacer ajustes y actualizarlo. Nuestro modelo lleva más de 1
año funcionando.
El equipo necesita una propuesta de pasos y tecnología para el caso descrito anteriormente.
Considerar:
● Como todo en la vida, los recursos y el tiempo son finitos. Tienes que versionar el
alcance y comunicar cuáles son los pros y contras de tu propuesta.
● Si hay puntos que no puedes cubrir con tu diseño, comunícalos. Es preferible que los
detectes y comuniques, a que intentes solucionar todo.
Entregables:
● Diagrama de solución
● Diagrama de flujo de la información
● SLAs de cada propuesta
● Diseño de proceso de MLops para el modelo. Se recomienda fuertemente el uso de
herramientas especializadas para el gobierno de ciclos de vida de modelos de ML (ej.
kubeflow, azure machine learning, etc.)
● Pros y contras de la solución (por ejemplo, calidad, escalabilidad, tolerancia al cambio,
etc.)