Reunir un equipo de AA

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?

Capacitació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?

Puesta en producción, supervisión y mantenimiento
  • 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?

Canalizaciones
  • ¿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?

SQL
  • Necesito SQL para generar algunos datos. ¿Dónde debería colocarlo?

Infraestructura
  • ¿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?

Comunicación
  • 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.

Comprueba tu comprensión

¿Cuál es el motivo principal para tener una excelente documentación de procesos y establecer prácticas comunes?
Aumentar la velocidad del proyecto
Correcto. Tener una buena documentación del proceso y establecer prácticas reduce la confusión y optimiza el proceso de desarrollo.
Establecer las prácticas recomendadas en toda la empresa
Debido a que el desarrollo del AA varía de un proyecto a otro, los equipos suelen establecer sus propios conjuntos de prácticas recomendadas para trabajar de manera eficaz y aumentar su velocidad.
Asegurarse de que todos los ingenieros del equipo tengan el mismo nivel de experiencia.
Los equipos de AA suelen tener ingenieros con una variedad de habilidades y conocimientos. La documentación del proceso ayuda a los ingenieros a alinearse con las prácticas recomendadas para aumentar su velocidad.