Los proyectos de AA requieren equipos con miembros que tengan una variedad de habilidades, experiencia y responsabilidades relacionadas con el aprendizaje automático. Estos son los roles más comunes que se encuentran en los equipos de AA típicos:
Rol | Conocimientos y habilidades | Entrega principal |
---|---|---|
gerente de producto de AA | Los gerentes de productos de AA tienen un conocimiento profundo de las fortalezas y debilidades del AA, así como del proceso de desarrollo de este. Alinean los problemas empresariales con las soluciones de AA trabajando directamente con el equipo de AA, los usuarios finales y otras partes interesadas. Crean la visión del producto, definen casos de uso y requisitos, y planifican y priorizan proyectos. |
Documento de requisitos del producto (PRD). |
Gerente de Ingeniería | Los gerentes de ingeniería logran sus objetivos comerciales estableciendo, comunicando y lograr las prioridades del equipo. Como el AA gerentes de producto, alinean las soluciones de AA con los problemas empresariales. Establece expectativas claras para los miembros del equipo, realizar evaluaciones de rendimiento y ayudar con el desarrollo y el desarrollo profesional. |
Documentos de diseño, planes de proyectos y evaluaciones de rendimiento. |
Científico de datos | Los científicos de datos usan análisis cuantitativo y estadístico para extraer estadísticas y valor de los datos. Ayudan a identificar y probar atributos, crear prototipos de modelos y ayudar con la interpretabilidad de los modelos. | Informes y visualizaciones de datos que responden preguntas comerciales a través de análisis estadísticos |
Ingeniero de AA | Los ingenieros de AA diseñan, compilan, producen y administran modelos de AA. Son ingenieros de software fuertes con un profundo conocimiento del AA. tecnologías y prácticas recomendadas. | Modelo implementado con suficiente calidad de predicción para satisfacer los requisitos comerciales y objetivos de tiempo de recuperación. |
Ingeniero de datos | Los ingenieros de datos crean canalizaciones de datos para almacenar, agregar y procesar grandes cantidades de datos. Desarrollan la infraestructura y los sistemas para recopilar y transformar datos sin procesar en formatos útiles para el entrenamiento y la publicación de modelos. Los ingenieros de datos son responsables de los datos en todo el proceso de desarrollo del AA. | Canalizaciones de datos totalmente desarrolladas con la supervisión y alertas. |
Ingeniero de operaciones de desarrolladores (DevOps) | Los ingenieros de DevOps desarrollan, implementan, escalan y supervisan la infraestructura de entrega de los modelos de AA. | Es un proceso automatizado para entregar, supervisar, probar y generar alertas sobre el comportamiento de un modelo. |
Los proyectos de AA exitosos tienen equipos con cada rol bien representado. En equipos más pequeños, las personas deberán encargarse de las responsabilidades de varios roles.
Establece prácticas de equipo
Debido a que los roles, las herramientas y los frameworks varían ampliamente en el AA y desarrollo, es fundamental establecer prácticas comunes mediante una excelente documentación de procesos. Por ejemplo, un ingeniero podría pensar que solo obtener los datos correctos es suficiente para comenzar a entrenar un modelo, mientras que un ingeniero más responsable validará que el conjunto de datos esté anonimizado correctamente y documentará sus metadatos y procedencia. Asegurarse de que los ingenieros compartan definiciones comunes para los procesos y patrones de diseño reduce la confusión y aumenta la velocidad del equipo.
Documentación del proceso
Los documentos de procesos deben definir las herramientas, la infraestructura y los procesos del equipo usarás para el desarrollo del AA. Los documentos de procesos bien elaborados ayudan a alinear a los miembros nuevos y existentes del equipo. Debe responder los siguientes tipos de preguntas:
- ¿Cómo se generan los datos para el modelo?
- ¿Cómo examinamos, validamos y visualizamos los datos?
- ¿Cómo modificamos una función o etiqueta de entrada en los datos de entrenamiento?
- ¿Cómo personalizamos la canalización de generación, entrenamiento y evaluación de datos?
- ¿Cómo cambio la arquitectura del modelo para que se adapte a los cambios en los atributos o las etiquetas de entrada?
- ¿Cómo obtenemos ejemplos de prueba?
- ¿Qué métricas usaremos para evaluar la calidad del modelo?
- ¿Cómo lanzamos nuestros modelos en producción?
- ¿Cómo sabremos si hay algún problema con nuestro modelo?
- ¿De qué sistemas ascendentes dependen nuestros modelos?
- ¿Cómo hago que mi SQL sea mantenible y reutilizable?
Más preguntas posibles
Modelo¿Puedo entrenar modelos en diferentes conjuntos de datos en la misma canalización, como para el perfeccionamiento?
¿Cómo agrego un nuevo conjunto de datos de prueba a mi canalización?
¿Cómo verifico la predicción del modelo en un ejemplo creado a mano?
¿Cómo puedo encontrar, examinar y visualizar ejemplos en los que el modelo hizo errores?
¿Cómo puedo determinar qué atributo fue el más responsable de un determinado para la predicción?
¿Cómo puedo saber qué funciones tienen el mayor impacto en predicciones dentro de una muestra determinada?
¿Cómo calculo o diagrama las predicciones de modelos en un conjunto de datos elegido o de muestra?
¿Cómo puedo calcular métricas estándar para las predicciones de mi modelo en una conjunto de datos elegido?
¿Cómo desarrollo y calculo métricas personalizadas?
¿Cómo comparo mi modelo con otros modelos sin conexión?
¿Puedo realizar un metaanálisis para varias evaluaciones de modelos en un solo entorno de desarrollo?
¿Puedo comparar el modelo actual con el de hace 10 meses?
Creo que creé un buen modelo. ¿Cómo puedo lanzarla en producción?
¿Cómo puedo verificar que mi modelo nuevo se esté ejecutando correctamente en producción?
¿Puedo obtener el historial de evaluaciones de modelos a lo largo del tiempo?
¿Cómo sabré cuándo hay un problema con el modelo?
Me asignaron una página o un error en el que se menciona algo sobre el modelo. ¿Qué debo hacer?
¿Cómo puedo personalizar la generación, el entrenamiento y la evaluación de los datos canalización?
¿Cuándo y cómo debo crear una canalización completamente nueva?
Necesito SQL para generar algunos datos. ¿Dónde debería colocarlo?
¿Cómo funciona la entrega de modelos? ¿Hay un diagrama?
¿De qué sistemas upstream depende mi modelo y que debería de las que deberías tener en cuenta?
No puedo averiguar algo. ¿Con quién (y cómo) debo comunicarme?
Recuerde
Lo que constituye "prácticas recomendadas de AA" puede diferir entre empresas, equipos y personas. Para Por ejemplo, algunos miembros del equipo pueden considerar Colabs experimentales como la principal entregable, mientras que otros querrán trabajar en R. Es posible que algunos tengan pasión por la ingeniería de software, que otros piensen que la supervisión es lo más importante, y que otros conozcan buenas prácticas de producción de funciones, pero quieran usar Scala. Todos tienen “razón” desde su propia perspectiva y, si se orienta correctamente, la combinación será una potencia. Si no es así, puede ser un desastre.
Establecer las herramientas, los procesos y la infraestructura que el equipo utilizará antes escribir una línea de código puede ser la diferencia entre que el proyecto falle después dos años o realizar el lanzamiento con éxito un trimestre antes de lo previsto.
Evaluaciones de rendimiento
Debido a la ambigüedad y la incertidumbre inherentes al AA, los gerentes deben establecer expectativas claras y definir los entregables con anticipación.
Cuando determines las expectativas y los entregables, ten en cuenta cómo se evaluarán si un proyecto o enfoque no tiene éxito. En otras palabras, es importante que el rendimiento de un miembro del equipo no esté directamente conectado con el éxito del proyecto. Por ejemplo, es común que los miembros del equipo semanas investigando soluciones que, en última instancia, no tienen éxito. Incluso en estos casos, su código de alta calidad, su documentación exhaustiva y su colaboración efectiva deberían contribuir de manera positiva a su evaluación.