Datos agroclimáticos y modelos de riesgo de enfermedad
Un proyecto de I+D para avisar al agricultor del riesgo de botritis en fresa y de cuándo tratar. Me incorporé con el proyecto en marcha: diseñé los conjuntos de datos y las variables agroclimáticas, construí el servicio que las calcula igual para entrenar que para predecir, diseñé la lógica de los avisos, y al final saqué los modelos de una plataforma gestionada para que dejaran de costar.
Un proyecto de equipo: el responsable de producto, un analista de datos que entrenó y desplegó los modelos, y una consultora que construyó la aplicación de registro de parcelas y avisos por mensajería. Yo diseñé y construí la parte de datos, diseñé la lógica de decisión que implementó la consultora y, después, migré el servicio de los modelos. La aplicación funcionó en piloto, y el servicio siguió en marcha hasta el final de mi etapa.
- Trabajo en un equipo con perfiles distintos: los datos y la lógica que necesitaban el analista de datos y la consultora, diseñados por mí.
- Diseño de conjuntos de datos y variables para aprendizaje automático con criterio de dominio, calculadas igual al entrenar que al predecir.
- Una decisión de coste de infraestructura ejecutada de principio a fin, con su equivalencia comprobada y su vuelta atrás documentada.
Un proyecto de predicción de riesgo con aprendizaje automático necesitaba lo que une a quien entrena los modelos con quien construye la aplicación: unos datos con sentido agronómico y una lógica que decidiera qué hacer con cada predicción. Y una vez desplegados, los modelos tenían un coste mensual fijo en una plataforma gestionada, se usaran o no.
Diseñar los datos antes que los modelos, con una sola forma de calcular cada variable para entrenar y para predecir; y después mover la implementación sin mover el contrato.
Una API que, para unas coordenadas y una fecha, obtiene la meteorología horaria —histórica o prevista— y la convierte en las variables con las que se entrenaron los modelos: humectación de hoja, índice de crecimiento del hongo, medias y acumulados en varias ventanas, con o sin invernadero. La misma canalización construye cada fila del conjunto de entrenamiento y cada pregunta al modelo. Y una aplicación que sirve los dos modelos manteniendo la interfaz de consulta utilizada por los consumidores del servicio anterior.
- Una sola implementación de las variables para los conjuntos de entrenamiento y las consultas al modelo, con configuraciones por modelo y datos meteorológicos históricos o de previsión según el uso.
- Variables con criterio agronómico: horas de hoja mojada por punto de rocío o humedad, un índice de crecimiento del hongo según temperatura y humedad, y ventanas móviles distintas para cada modelo.
- La migración adapta el servicio a la interfaz empleada por los consumidores: cabeceras de autenticación y selección del modelo, entrada de variables y salida de predicciones, contrastadas con el servicio anterior sobre muestras generadas.
Las evidencias12
- Trabajo en equipoMejor ejemplo del portfolioDecisión escrita · Por referencia
El responsable de producto me pidió ayuda: diseñé los conjuntos de datos con los que el analista entrenó los modelos, las APIs que consumían él y la consultora, y la lógica de decisión de los avisos que la consultora implementó en su aplicación.
- Machine learning aplicadoCódigo · Confidencial
- Rigor en el análisis de datosCódigo · Confidencial
- Análisis de requisitos de negocioDocumento · Por referencia
- Optimización de costes de infraestructura de MLMejor ejemplo del portfolioDocumento · Confidencial
- Compatibilidad hacia atrás de APIsCódigo · Confidencial
- Tests de regresión y equivalenciaDocumento · Confidencial
- MLOps y despliegue de modelosMejor ejemplo del portfolioCódigo · Confidencial
- Dominio agronómico y regulatorioCódigo · Confidencial
- ETL e ingesta de datosCódigo · Confidencial
- Diseño de APIs RESTCódigo · Confidencial
- Mantenimiento de código legacyCódigo · Confidencial
Principios que se ven aquí4
- PrincipioCuando migro o refactorizo, verifico la equivalencia con código, no con confianza
- Informes de comparación de predicciones sobre muestras generadas, antes y después de sacar los modelos de los endpoints gestionados
- PrincipioUna acción existe una vez; todas las interfaces la llaman
- La misma implementación calcula las variables para el conjunto de entrenamiento y las consultas diarias, sobre meteorología histórica o prevista según el uso
- PrincipioCambio por debajo sin que lo note quien consume
- El servicio de modelos salió del endpoint gestionado conservando la interfaz empleada por los consumidores y contrastando predicciones sobre muestras generadas; el antiguo quedó hibernado con su guía para restaurarlo
- PrincipioConstruyo donde vive el conocimiento del negocio; lo demás se compra o se enlaza
- Los modelos pasaron del endpoint gestionado a una aplicación propia que mantiene la interfaz empleada por los consumidores, con un coste de infraestructura muy inferior