Muy buenas, me llamo Miguel y en esta ocasión les traigo otro nuevo artículo.
¿Realmente cambia la forma en que trabaja un equipo si el producto implica aprendizaje automático? ¡La respuesta corta es sí!
Los equipos de aprendizaje automático y los equipos de ingeniería de software a menudo trabajan de manera diferente y para ser un excelente gerente de producto para un equipo de ML, debe comprender las diferencias entre SWE y ML, así como los conceptos básicos de ML.
¡Este artículo tiene como objetivo brindarle el conocimiento y los recursos que necesita para abordar su próximo proyecto de PM para ML de frente! Recogí estas cosas durante mi tiempo como pasante de ingeniería de ML en Deloitte y actualmente también trabajo con un equipo de ML desde la perspectiva del producto en Personifi.
Índice
Entonces, ¿En qué se diferencia el aprendizaje automático en comparación con la ingeniería de software?
El proceso inherente de desarrollo es diferente.
Por ejemplo, está creando una aplicación web de tareas pendientes. Puede definir características que deben construirse con relativa facilidad. Un frontend funcional para escribir las tareas, un backend para almacenar y recuperar estos datos, eliminarlos cuando terminen y quizás mantener un historial de las tareas completadas. Tan pronto como se definan estas tareas, el equipo puede implementar un proceso ágil, dividir estas funciones en tickets y ponerse a trabajar. Los problemas suelen estar bien definidos y, aunque puede haber muchas formas de resolver un problema,
Es bastante diferente para un equipo de ML
Al intentar abordar un problema con el aprendizaje automático. Es necesario responder a muchas preguntas incluso antes de comenzar el desarrollo. ¿Qué queremos lograr? ¿Qué tipo de datos se requieren para construir el modelo? ¿Hay suficientes datos? Como puede ver, es mucho más difícil responder estas preguntas, ya que a menudo pueden significar muchas cosas diferentes y, a menudo, requerirán horas de investigación antes de comenzar a buscar una solución. El trabajo de ML también está extremadamente centrado en la investigación. Durante mi tiempo en Deloitte, hubo semanas en las que solo estuve investigando durante una semana completa, acumulando mis conocimientos para responder preguntas y luego haciendo prototipos iterativos, tratando de encontrar soluciones que fueran aplicables.
La ciencia de datos tiene 3 componentes principales: cálculo, estadística y álgebra lineal. Pero espere, ¿necesita conocerlos como gerente de producto? En mi opinión, No.
Cuando trabajaba en Deloitte y abordaba un nuevo tema, a menudo me sumergía hasta las rodillas en la investigación y las matemáticas, tratando de averiguar qué era aplicable a nuestro caso de uso. Sin embargo, al explicar mis hallazgos al resto de mi equipo, me aseguraría de abstraer mis aprendizajes clave y presentarlos de una manera que sea comprensible para los miembros del equipo que no son de ML. Incluso si el equipo de ML necesita entrar en el meollo de la cuestión, como PM no tendrá que sumergirse en matemáticas muy específicas. Si bien conocer las matemáticas puede ser útil, no es necesario.
Conceptos básicos
Conocer los conceptos básicos del aprendizaje automático será crucial para su éxito como PM cuando trabaje con equipos y productos de ML. A continuación, cubro algunos principios básicos con ejemplos como explicaciones.
Análisis de datos exploratorios (EDA): Analizar conjuntos de datos para identificar los componentes clave que componen esos datos.
Datos etiquetados: Una imagen de un gato, la imagen se almacena en una carpeta llamada “Gato”, se le dice al programa que las imágenes de la carpeta son de gatos.
Datos sin etiquetar: Una imagen de un gato, almacenada en una carpeta llamada «datos» que también almacena imágenes de perros, el programa no sabe qué imagen es un perro y cuál es un gato.
Caracteristicas: Una lista (técnicamente vectorial) de propiedades de algo sobre lo que estamos haciendo una predicción, denotado por números.
Hay 2 tipos principales de algoritmos de aprendizaje automático: aprendizaje supervisado y no supervisado. (Semi-supervisado existe pero está fuera del alcance del artículo)
Aprendizaje supervisado
El aprendizaje supervisado es cuando existen datos etiquetados y hay un proceso que se puede automatizar o generar una probabilidad. Hay 2 tipos de problemas que enfrentará en el campo: Regresión y Clasificación.
Regresión
Cuando es necesario que se forme una relación entre dos o más variables, para hacer alguna forma de predicción, la regresión es una buena opción. Ex. ¿El número de repeticiones para un curl de bíceps aumenta el tamaño de los bíceps a medida que haces más repeticiones?
Algoritmos a considerar:
Regresión lineal, cresta bayesiana, redes neuronales (¡este es todo un tema en sí mismo!)
Clasificación
Cuando es necesario identificar qué es un determinado dato, se emplea la clasificación. Ex. Necesitamos crear un filtro para spam. Obtenemos datos etiquetados para decirnos cómo se ven los correos electrónicos no deseados.
Aprendizaje sin supervisión
El aprendizaje no supervisado utiliza datos sin etiquetar y genera conocimientos para encontrar patrones ocultos en los datos. Por ejemplo, utilicé Latent Dirichlet Allocation para generar temas a partir de diferentes documentos. Al usar esta técnica, pude dibujar etiquetas de varios documentos e identificar patrones recurrentes en los documentos.
Cómo ayudar a los equipos de ML a priorizar
Como PM, deberá realizar un seguimiento de cómo les va a los equipos de ML en el día a día. Andrew Ng (científico de datos muy famoso) recomienda un sprint diario ya que si bien las cosas tardan mucho en investigar y comprender, los objetivos cambian a diario a medida que se recopila más información.
Por ejemplo, algunos estudiantes universitarios estaban creando un proyecto para una aplicación web. Si nadie tiene experiencia en cómo crear una aplicación web, investigará y entenderá qué crear. Es similar para los equipos de aprendizaje automático. La mayoría de las veces, tendrá una idea de las cosas que debe analizar, pero descubrirá muchas cosas diferentes, prototipará, probará y validará si una determinada idea / tecnología / trabajo de investigación podría ayudar a construir la solución.
Como PM, debe realizar un seguimiento de los equipos de ML y comprender dónde deben concentrarse. Una buena manera de hacerlo es implementando una presentación de 30 segundos a 1 minuto por persona que cubra los hallazgos del día anterior, ya sea investigación, análisis de datos o modelos de construcción. Esto permite que el equipo y el PM entiendan en qué diferentes cosas se están trabajando y, si hay callejones sin salida, cómo resolverlos.
Hay momentos en los que la investigación llegará a un callejón sin salida, un modelo no funcionará como se esperaba en producción o en un entorno diferente, lo que se construyó no se puede usar debido a las capacidades de integración de tecnología, etc.
En estos casos, el PM debe llevar la mentalidad empresarial al equipo de ciencia de datos y ayudar al equipo a realinear sus objetivos de desarrollo con los del producto. También necesita facilitar sesiones en las que el equipo pueda proponer soluciones alternativas al obstáculo y también puede pensar en las soluciones propuestas desde una perspectiva de producto y negocio y considerar la viabilidad de la solución propuesta.
Perspectiva de usuario + producto
Los ingenieros pueden olvidar para quién están construyendo. Esto también se aplica a los científicos de datos y, como PM, debe traducir la visión del producto en requisitos y características que los equipos de desarrollo puedan comprender. Es importante ayudar a los científicos de datos a comprender bien al usuario, ya que cuanto mejor puedan comprender el caso de uso, mejor podrán desarrollar algoritmos de aprendizaje automático.
Conclusión
Comprender las diferencias entre los equipos de ML y los equipos SWE regulares puede ayudarlo a convertirse en un mejor PM. Al integrar su sentido y conocimiento del producto, así como los principios básicos de ML, permite que los ingenieros comprendan mejor las expectativas del producto para finalmente enviar un producto coherente.
Recursos
El libro de aprendizaje automático de cien páginas – Andriy Burkov
Bueno para una inmersión matemática en ML, bueno para personas con experiencia en matemáticas / cs / ingeniería.
Gracias por leer.
Añadir comentario