Lo que los cursos en linea de AI no te cuentan (desafíos para la vida real) Parte III: La ejecución

Jose Manuel Pena Mendez
Connectalabs AI
Published in
8 min readJun 24, 2020

Esta es la última parte de esta serie de tres blogs revisando todos los desafíos que usualmente no ves en los cursos en linea de Machine Learning. En la primera parte (link aquí) revisamos los desafíos relacionados con la captura, limpieza e interpretación de datos. En la segunda parte (link aquí) revisamos las dificultades que vienen como los modelos, como escogerlos, entenderlos y ajustarlos para alcanzar su máximo potencial.

En esta parte vamos a hablar sobre la ejecución (o deployment). La ejecución es el elemento final de este trinomio de datos/modelo/ejecución; Es donde las bondades de tu modelo deben materializarse en valor a tu organización. Recordemos que un proyecto exitoso de ML transforma flujos de datos en flujos de acciones con el objetivo de resolver problemas y crear valor tangible, pero el mundo esta lleno de fantásticos modelos que no han generado un solo peso de valor.

Desafío #7: De modelos a procesos, la importancia del deployment

Es poco común ver cursos de AI en donde se discuta seriamente la relevancia de un deployment correcto. Parece como si el hecho de haber creado un modelo exitoso hace que éste se ejecute en calidad y forma de manera automática. Para que un modelo genere valor en el mundo real, este debe aprender, actualizarse y entregar resultados en el lugar, momento y forma correcta. Algunos puntos a considerar para un buen deployment son:

· Frecuencia: Este modelo debe entregar resultados cada mes, cada día, cada segundo??, es a petición de un usuario??

· Alcance: Los resultados del modelo van a ser consumidos por un par de ejecutivos para la toma de decisiones, o van a acompañar el día a día de miles de empleados de la empresa?

· Medio de comunicación: Los resultados del modelo van ser consumidos mediante un correo, base de datos, visualización (estática o dinámica)?

· Conectividad con otros sistemas: Es el modelo parte de un proceso automatizado?, la conexión va ser vía API o algún protocolo en particular?

· Ubicación: El modelo va a correrse en algún servidor dedicado? En la nube?

· Intensidad de computo: Es posible ejecutar el modelo en equipos estándares, o requiere de alta intensidad de computo, empleando múltiples núcleos y procesadores especializados (GPUs)?

· Governance y ejecución: Quién va a ejecutar y monitorear el modelo?, eres tu?, otro data scientist con las habilidades para ver el código y limar cualquier aspereza que suceda en el camino?, o va a ser un usuario sin habilidades en programación que no es capaz de interactuar directamente con el código?

Todas estas consideraciones existen en el contexto del proceso necesario para recibir información cruda, pre-procesarla, elaborar features, actualizar el modelo con la nueva información (de estimarse necesario), actualizar el output de éste y entregarlo. Todos estos pasos intermedios requieren de tu atención para que el proceso se ejecute sin contratiempos de manera estable, replicable, eficiente y sin errores. La plataforma y estructura que escojas para tu modelo va a determinar dónde y cómo la información intermedia va ser almacenada, cual va a ser la secuencia de pasos a ejecutar y cuál va a ser el performance de éste.

Las opciones de implementación son infinitas y aumentan cada día, desde un simple pc corriendo todo y guardando datos en archivos, a enjambres de servidores interactuando en alguna plataforma cloud (siendo todo orquestado vía Kubernetes). Lo relevante es entender el propósito de cada plataforma, sus bondades y limitaciones, y como funcionar con ellas.Si tienes suerte vas a tener algún experto en tu equipo, pero mientras tanto esta también es tu responsabilidad.

Desafío #8 y final: Del Machine Learning a la política.

El filósofo George Berkeley preguntó en 1709 en su famoso tratado “Si un árbol cae en el bosque y nadie lo oye , ¿hace ruido?. En nuestros tiempos podríamos decir algo parecido … “Si un modelo de ML funciona pero nadie lo usa, ¿existe?

Esta última lección quizás es la más difícil y dolorosa de aprender; hemos pasado meses puliendo y perfeccionando el modelo que va a revolucionar tu industria (o quizás el mundo!), finalmente esta listo, lo pones en producción y… nada. Nadie te llama impresionado por sus resultados, nadie esta usando el modelo y nadie sabe que siquiera existe. Hiciste todo lo correcto pero pasaste por alto el punto más importante, las organizaciones son sistemas complejos, donde la política y el liderazgo, explícito e implícito, determina que se hace y cómo.

Podríamos pasar varios blogs hablando solo de este tema, por lo que el primer consejo es darle la relevancia que se merece y empezar el camino de aprender y pulir tus habilidades organizacionales. Hay varios autores que han analizado el rol de la organización en desarrollo exitoso de analytics (por ejemplo Bill Frank y su fabuloso libro “The Analytics Revolution: How to Improve Your Business By Making Analytics Operational In The Big Data Era”), aunque textos más generales de cultura organizacional, gestión del cambio y liderazgo también te serán útiles.

Sin ánimo de cubrir todas las aristas de este tema, aquí dejo algunos puntos a considerar:

· No pienses en modelos, piensa en problemas de negocio: Las organizaciones no ven modelos, sino que ven problemas y buscan soluciones a éstos. Si eres capaz de formular lo que tu modelo busca hacer como la solución a algún problema que afecta a tu organización tendrás más chances de que éste sea bien recibido. Mejor aun, haz que el solucionar un problema concreto de negocios sea el origen de tu búsqueda de modelos. Resolver un problema tangible tiene un beneficio directo a la organización el cual todos pueden ver y cuantificar, impulsando el apoyo de áreas de la organización que de otra manera no lo harían.

· Entiende a tus stakeholders y sponsors (internos y externos): La idea es que los modelos que generes tengan un impacto real y positivo en las personas que te rodean, pero para que esto sea así hay que primero conocerlos. Stakeholders son todos aquellos que directa o indirectamente se van a ver afectados por tu proyecto: La fuerza de ventas que va a accionar tus recomendaciones, un gerente que va usar tu modelo para planificar, los clientes cuya interacción con la organización va a ser modificada, etc. Un proyecto exitoso debe tomar en consideración sus necesidades, expectativas y realidades para poder darles valor y conseguir su apoyo, o de lo contrario vas a ganar mas detractores que aliados. Por otra parte, ganar el apoyo del sponsor correcto puede potenciar el impacto y éxito de tus proyectos dramáticamente, removiendo obstáculos y generando las condiciones idóneas para tu desarrollo. Usualmente los buenos sponsors son personas con un liderazgo relevante en la organización (explícito o implícito). Tus jefes, gerentes o directores son opciones obvias, por lo que tómate el tiempo de conocerlos, cultivar una relación productiva con ellos y si ves interés por parte de alguno no dudes en compartir tus ideas. Además, entender a tus stakeholders y sponsors posee el beneficio extra de ayudarte a ganar influencia y notoriedad en tu organización, allanando el camino a mejores cargos y nuevos desafíos.

· A quién le estas pisando los talones?… El lado B de la automatización: Si bien el ML y el data science generan grandes beneficios a las personas y organizaciones, también traen la amenaza de reemplazar trabajos y la disrupción de áreas e industrias enteras. Se consciente si alguien se puede sentir amenazado por tus acciones y busca formas de mitigar sus aprensiones. En muchos casos lo que parte como una amenaza termina siendo una oportunidad para reemplazar actividades tediosas por roles de mayor creatividad y valor agregado, por lo que haz el esfuerzo de hacer de esto un win-win.

· Maneja las expectativas: Por mas tentador que suene vender tu proyecto como la salvación de todos los males, generar expectativas exageradas sobre éste puede finalmente traducirse en resultados decepcionantes, poniendo en riesgo que éste sea el último. Se realista con lo que se puede esperar del modelo, que cosas se van a hacer y cuales no, define las limitantes del proceso y busca plantear pasos futuros donde puedas abordar estos problemas.

· Desarrolla tu rol de traductor: Hoy en día es probable que tu seas el único en una sala de reuniones que realmente entienda de machine learning, por lo que hablar de tu proyecto en términos de redes neuronales, AUC, tasas de aprendizaje y GPUs probablemente va a aburrir y confundir a todos. Nadie se va a impresionar con tu presentación, solo vas a aislarte de aquellos que tienen la capacidad de hacer de tu modelo un éxito. Explicar lo que tu modelo realiza y como lo hace en términos simples no es una tarea fácil pero extremadamente necesaria, por lo que es mejor empezar cuanto antes a practicarlo. Además, el rol de traducción también funciona en el sentido contrario; Si manejas un equipo altamente especializado es posible que sus miembros ignoren elementos claves del negocio, por lo que ser el puente de comunicación desde ellos con otras áreas de la empresa y viceversa es absolutamente necesario.

· No pienses en un modelo, piensa en un ecosistema: Personalmente me gusta pensar en el uso de ML como si fuesen agujas de acupuntura en vez de escalpelos en una operación. Es común ver en los medios obsesionados con algún “moonshot Project” donde toda la fe se deposita en un solo modelo (como el caso de Watson en su intento de revolucionar el tratamiento del cáncer). Para resolver un problema real, múltiples modelos trabajan de manera coordinada, entregando información valiosa en cada una de las decisiones necesarias para ejecutar algún proceso. Tomemos por ejemplo un proyecto para mejorar el proceso de mailing de promociones a clientes y veamos cuantas decisiones podríamos optimizar con el fin de que nuestros clientes aprecien el correo:

o A quién envío el correo? : No todos lo clientes aprecian recibir correos, por lo que un modelo de propensión de interacción es idóneo para escoger a quienes enviar las promociones.

o A qué hora/día lo envío?: Enviar un correo a la hora/día adecuado puede aumentar la probabilidad de interacción. En base a la información pasada se podría determinar las horas óptimas según el perfil de cliente.

o Qué dice el encabezado del correo?: En base a un proceso de A/B testing o analizando los encabezados de correos anteriores es posible encontrar elementos clave que hacen que el correo resalte y sea leído.

o Qué ofertas van a incluirse en el correo?: Definir el subconjunto de promociones que quieres incluir en el cuerpo del correo para que éstas resuenen con los gustos del cliente es una clara tarea para un modelo de recomendación; analizar el historial de compras del cliente, wishlist y búsquedas a pasadas para determinar las mejores ofertas para el cliente en particular.

En conclusión, al unir todas estas decisiones, un solo problema (optimizar el proceso de mailing) se ha transformado en un ecosistema de pequeños modelos donde cada uno aporta su pequeño grano de arena al producto final. Un gran ejemplo es Netflix, donde se dice que coexisten 33 millones de versiones diferentes de la misma página, uno por cada usuario y cientos de modelos interactúan definiendo cada detalle de los que ves en tu pantalla.

Bueno, estos fueron los 8 desafíos del machine learning en la vida real que creo los cursos en línea de hoy no los abarcan propiamente. Espero que les haya servido y ahora vean este apasionante mundo con una visión mas amplia de lo que se necesita para triunfar y el día de mañana sean mejores Data Scientists.

Mucha Suerte!!

Jose Manuel Peña Méndez, CFA

MSc. Applied Analytics, Columbia University

Originally published at https://www.linkedin.com.

--

--