miércoles, 9 de mayo de 2018

Continuación implementando machine learning

Dando continuidad a mi entrada pasada, quiero hablar de los siguientes pasos aplicados en proyectos reales para la implementación de machine learning. Ya aborde en la entrada anterior lo referente a identificar fuentes, dolores, entregas rápidas. En esta ocasión quiero hacer un detalle un poco más técnico arquitectónico. Como parte del ejercicio buscaré a un especialista en el tema de modelos que quiera compartir una entrada sobre ese tema en específico, pues no es mi especialidad, se las debo.
Pero puedo profundizar en todo el detalle sobre la arquitectura técnica de la solución. 
La primera pregunta que deberíamos hacernos a nivel técnico es cual es nuestra arquitectura de datos actual? Ya la tenemos levantada según mi entrada pasada en la fase I, pero y que tan lista está esa arquitectura para montar el modelo de machine learning? Bueno pues depende del modelo, el consumo, el valor del mismo entre otros. Y es que muchas consultorías te abordan desde la implementación de un lago de información y un montón de prácticas y tecnologías necesarias, pero no indispensables, al menos para empezar. 
Como siempre digo, empezar pequeño, para poder dar valor rápido, comprar adeptos y seguir avanzando, es natural, tengo una mente agile, y me cuesta pensar de otra forma. 
Regresando a la arquitectura necesaria, no existe una única receta y depende, en mi experiencia, he trabajado de dos formas porque tuve dos necesidades diferentes, una de consumo masivo, en línea, combinando mucha información procesada, con información cruda y una pobre definición inicial del modelo, se conocía bastante lo que se quería, pero no existía un madurez que permitiera identificar fácilmente variables necesarias, cálculos, entre otros. 
En este primer caso mi recomendación es si o si asegurarnos de contar con un eSpacio propicio y dimensionado (costo\espacio\disponibilidad) para hacerlo. Esto definitivamente puede ser un lago, que nos permita no deteriorar el modelo transaccional por la cantidad de uso de los datos, además por la cantidad de datos necesaria pero sobre todo por las características exploratorias del modelo.  No necesariamente debes iniciar con el lago pero tenerlo en el plan es clave y en la arquitectura. Lo único peor a que el modelo no funcione es que además arruine la transaccionalidad que está funcionando. 

Otro tipo de proyecto al que me he enfrentado en este tema, es donde el alcance del modelo es claro pero limitado, con data ya existente y modelos que no son realmente nuevos, solo su despliegue con características adicionales de machine learning es el alcance. Se entiende la implementación de este proyecto como un modo de consumir los modelos a travez de api, esto es cierto pero no es el alcance de un proyecto de estos. Estos proyectos normalmente buscan comparar estas nuevas tecnologías con algoritmos existentes y suelen existir en empresas más cautelosas y que además tienen prácticas de análisis de datos más maduras. En este caso, la clave es arrancar con lo que tenemos, seguramente el consumo no será tan en línea y masivo y si lo es, seguramente no es una carga adicional pues ya existe con modelos existentes en las bases de datos, no arruinarás nada.
En este caso el lago puede esperar un par de iteraciones mas, pero debe de suceder, pues de lo contrario el modelo de machine learning no podrá agregar valor, no será más de lo que ya existe, se percibirá como una tecnología para consumir análisis de datos ya existentes, es como tener un ferrari para manejarlo a 10km por hora.


Sea cual sea el caso, alguno de estos dos o diferentes, siempre es clave recordar la entrega rápida de valor, aprovechar lo que ya se tiene, dibujar desde temprano la arquitectura objetivo, considerar un modelo de almacenamiento propicio para estos modelos que puede o no ser un lago, y validar que no siempre es un must y no siempre tienes que tenerlo todo desde el inicio. Si me permiten dar una opinión personal, este tema tan recurrente en mis entradas, es en mi análisis una de las razones por las que en Latinoamérica nos cuesta tanto innovar, hacer proyectos, implementar, hacer y dejar de decir, y es que queremos tenerlo todo listo, todo fácil, buscamos siempre todo lo que nos falta y no miramos todo lo que ya tenemos. Siempre recuerdo un libro que leí hace unos años sobre la ventaja competitiva, algo que nos diferencia de los jAponeses es que allá nacen acostumbrados a no tener recursos, ni espacio, ni agricultura, ni nada. Nosotros nacemos acostumbrados a tenerlo todo fácil, cerca y sin obstáculos, por lo que frente a una sábana blanca de oportunidades nos enfocamos siempre en el pequeño punto negro que lo decora.

No hay comentarios.:

Publicar un comentario