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 Producto final
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 AA. 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 los objetivos comerciales estableciendo, comunicando y logrando las prioridades del equipo. Al igual que los gerentes de producto de AA, alinear las soluciones de AA con los problemas empresariales Establecen expectativas claras para los miembros del equipo, realizan evaluaciones de rendimiento y ayudan con el desarrollo profesional. Documentos de diseño, planes de proyectos y evaluaciones de rendimiento.
Científico de datos Los científicos de datos usan el análisis cuantitativo y estadístico para extraer información 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 sólidos con un conocimiento profundo de las tecnologías y prácticas recomendadas de AA. Se implementó un modelo con suficiente calidad de predicción para cumplir con los objetivos comerciales.
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 completamente puestas en producción con la supervisión y las alertas necesarias
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 controlar las responsabilidades de varios roles.

Establece prácticas de equipo

Debido a que los roles, las herramientas y los frameworks varían mucho en el desarrollo de AA, es fundamental establecer prácticas comunes a través de una excelente documentación del proceso. 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 los 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 que el equipo usará para el desarrollo de 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 característica 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 pruebas?
  • ¿Qué métricas usaremos para juzgar 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 upstream dependen nuestros modelos?
  • ¿Cómo hago que mi SQL sea mantenible y reutilizable?
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 cometió errores?

  • ¿Cómo determino qué característica fue la más responsable de una predicción determinada?

  • ¿Cómo puedo saber qué atributos tienen el mayor impacto en las predicciones dentro de una muestra determinada?

  • ¿Cómo puedo calcular o trazar las predicciones del modelo en un conjunto de datos o una muestra elegidos?

  • ¿Cómo calculo las métricas estándar para las predicciones de mi modelo en un conjunto de datos elegido?

  • ¿Cómo desarrollo y calculo métricas personalizadas?

  • ¿Cómo puedo comparar 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 lanzarlo en producción?

  • ¿Cómo puedo verificar que mi modelo nuevo se esté ejecutando correctamente en producción?

  • ¿Puedo obtener el historial de las evaluaciones del modelo a lo largo del tiempo?

  • ¿Cómo sabré si hay algún problema con el modelo?

  • Se me asignó una página o un error que menciona algo sobre el modelo. ¿Qué debo hacer?

Canalizaciones
  • ¿Cómo podría personalizar la canalización de generación, entrenamiento y evaluación de datos?

  • ¿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 publicación de nuestro modelo? ¿Hay un diagrama?

  • ¿De qué sistemas ascendentes depende mi modelo y de los que debo estar al tanto?

Comunicación
  • No puedo resolver algo. ¿Con quién debo comunicarme (y cómo)?

Recuerde

Lo que constituye "prácticas recomendadas de AA" puede diferir entre empresas, equipos y personas. Por ejemplo, algunos miembros del equipo podrían considerar que las Colab experimentales son el producto final principal, 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 fuente de energía. De lo contrario, puede ser un desastre.

Establecer las herramientas, los procesos y la infraestructura que usará el equipo antes de escribir una línea de código puede ser la diferencia entre que el proyecto falle después de dos años o se lance con éxito un trimestre antes de lo previsto.

Evaluaciones de rendimiento

Debido a la ambigüedad y la incertidumbre inherentes al AA, los administradores de personal deben establecer expectativas claras y definir las entregas 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, no es raro que los miembros del equipo pasen 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 eficaz 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?
Establecer prácticas recomendadas en toda una empresa
Asegúrate de que todos los ingenieros del equipo tengan el mismo nivel de experiencia.
Aumentar la velocidad del proyecto