La planificación de proyectos de AA es diferente a la planificación de proyectos típicos de ingeniería de software. Los proyectos de AA son, por lo general, no lineales y tienen grados variados de incertidumbre. Requieren un enfoque iterativo y una mentalidad experimental.
Incertidumbre del proyecto
La planificación en las primeras etapas puede ser difícil porque, por lo general, el mejor enfoque no es aparente cuando se inicia un proyecto. Esta incertidumbre inherente dificulta la estimación de los cronogramas.
Una competencia reciente de Kaggle ilustra la incertidumbre de los proyectos de AA. En las primeras semanas de una competencia, participaron 350 equipos. Los equipos principales pudieron aumentar la calidad de la predicción de comparativas del 35% al 65%. Durante las siguientes dos semanas, la cantidad de equipos que trabajaban en el problema aumentó de 350 a 1,400. Sin embargo, el mejor modelo solo logró una calidad de predicción del 68%.
En la Figura 3, se ilustra la incertidumbre en el desarrollo de la IA, ya que muestra el aumento significativo en el esfuerzo, pero solo mejoras mínimas en la calidad del modelo.
Figura 3. Durante un período de dos semanas, la cantidad de equipos que trabajaban en el problema aumentó en un factor de 4, pero la calidad del modelo se mantuvo casi igual, lo que destaca la dificultad de estimar el esfuerzo de una solución de AA.
En otras palabras, más de mil equipos, cada uno de los cuales experimentó con una variedad de transformaciones de datos, arquitecturas e hiperparámetros, solo lograron producir un modelo con un 68% de calidad de predicción.
Un ejemplo de la industria ilustra la no linealidad de los proyectos de AA, en los que el resultado no es proporcional a las entradas. Dos equipos tardaron varios meses en entrenar un modelo con una calidad de predicción del 90%. Sin embargo, a varios equipos les llevó más de cinco años preparar el modelo para la producción con una calidad de predicción del 99.9%.
Estos ejemplos destacan que el AA listo para la producción es un proceso exploratorio que requiere una mentalidad científica y de ingeniería.
Enfoque experimental
En la mayoría de los casos, el desarrollo de AA se parece más a realizar experimentos que a practicar ingeniería de software tradicional. El AA requiere probar diferentes atributos, probar varias arquitecturas y ajustar los hiperparámetros de forma correcta. Por definición, no se garantiza que los experimentos sean exitosos. Por lo tanto, lo mejor es planificar con un marco experimental.
Veamos un plan de ingeniería de software típico para ver en qué se diferencia de un plan de proyecto de AA.
Cómo planificar proyectos de ingeniería de software
En un plan típico de ingeniería de software, se definen los requisitos, se describen los componentes, se estima el esfuerzo y se programa el trabajo. Hay una ruta de acceso a una solución definida de forma clara. Por ejemplo, los ingenieros suelen saber con un alto grado de seguridad las tareas que deben completar para compilar una aplicación que cumpla con las especificaciones de diseño.
Cuando predicen el tiempo que llevará completar una tarea, pueden estimar el trabajo en función de proyectos similares. Aunque, invariablemente, se presentan desafíos, como dependencias desconocidas o requisitos cambiantes, que pueden dificultar la estimación, por lo general, existe una ruta clara hacia la solución.
En cambio, los proyectos de IA no suelen tener una ruta clara hacia el éxito.
Cómo planificar proyectos de AA
Para la mayoría de los proyectos de AA, encontrarás la mejor solución si experimentas con varios enfoques en un proceso de prueba y error. Por lo general, no conocerás la solución óptima para tu problema antes de intentar resolverlo. Por ejemplo, la arquitectura de la solución óptima podría ser un modelo lineal simple, una red neuronal o, posiblemente, un árbol de decisión. Solo probando cada enfoque podrás descubrir la mejor solución.
Esta ambigüedad dificulta la planificación. Como se mencionó anteriormente, es difícil predecir el esfuerzo que requerirá un proyecto de AA. Solo si intentas resolver el problema podrás tener una mejor idea de la cantidad de tiempo y recursos que podría requerir una solución.
Las siguientes son estrategias recomendadas para planificar el trabajo de AA:
Establece un tiempo para el trabajo. Establece plazos claros para completar tareas o intentar una solución en particular. Por ejemplo, puedes asignar dos semanas para determinar si puedes obtener acceso al tipo correcto de datos. Si puedes obtener los datos, puedes designar dos semanas más para ver si un modelo simple indica que una solución de AA es factible. Si falla un modelo simple, puedes asignar dos semanas más para probar una red neuronal. Al final de cada período, tendrás más información para determinar si vale la pena seguir aplicando recursos al problema.
Reduce el alcance de los requisitos del proyecto. Si una solución de AA parece prometedora, pero no es una función fundamental para tu producto o servicio, revisa sus requisitos. Por ejemplo, cuando planifiques el trabajo del próximo trimestre, podrías probar una solución muy simple. Luego, en los trimestres posteriores, podrías planificar mejorar la solución de forma iterativa. Implementar una solución de AA mediante mejoras incrementales a lo largo de un horizonte temporal más largo es la forma en que muchos equipos llegaron a soluciones de AA impactantes.
Proyecto de pasante o empleado nuevo. Dirigir y guiar a un pasante o a un empleado nuevo para que intente una solución de AA puede ser una buena manera de comenzar a explorar un espacio nuevo con resultados desconocidos. Cuando finalice el proyecto, formarás una mejor idea del esfuerzo que requerirá una solución de aprendizaje automático y de los enfoques potencialmente prometedores que debes seguir, o si los recursos deberían destinarse a otro lugar.
Con cualquier estrategia, es conveniente fallar rápido. Primero, intenta los enfoques con los costos más bajos, pero con el potencial de obtener los mayores beneficios. Si el enfoque funciona, significa que encontraste una buena solución. Si no es así, no habrás desperdiciado mucho tiempo ni recursos.
A medida que los equipos adquieran experiencia y exposición a la ejecución de experimentos, podrán estimar mejor el esfuerzo que podría requerir un experimento, lo que hará que la planificación sea más predecible. Sin embargo, el resultado de un experimento casi siempre será desconocido, por lo que no se puede estimar de antemano la cantidad de experimentos necesarios para encontrar la mejor solución.
Planificar enfoques con una mentalidad experimental ayuda a preparar a tu equipo para el éxito. Cuando un enfoque no lleva a ninguna parte, en lugar de desanimarse, los miembros del equipo comprenden que eso es parte del proceso para encontrar una solución de AA. Más importante aún, cuando analizas la incertidumbre inherente en el desarrollo del AA con las partes interesadas, puedes establecer expectativas más realistas.
Comprueba tu comprensión
Recuerde
Aprender a planificar varios enfoques de AA de forma probabilística requiere tiempo y experiencia. Es posible que tu plan de proyecto requiera actualizaciones frecuentes. Piensa en él como un documento dinámico en constante evolución a medida que tu equipo experimenta con varios enfoques. Si te enfocas en las siguientes ideas clave, aumentarás tus posibilidades de éxito:
- Estima el costo y las probabilidades de éxito de cada enfoque.
- Intenta crear una cartera de enfoques.
- Identifica las lecciones aprendidas y trata de mejorar el sistema de a una cosa por vez.
- Planifica para las fallas.
A veces, un enfoque anticipado lleva a un avance. Alguien podría descubrir un error en la canalización de generación de datos o en la división de entrenamiento y validación. Con una buena planificación y una documentación exhaustiva, aumentas la probabilidad de que encuentres un modelo que resuelva tu problema comercial antes de lo esperado.