AIFlow es una plataforma de orquestación de flujo de trabajo basada en eventos que permite a los usuarios crear y programar flujos de trabajo mediante programación con una combinación de tareas por secuencias y por lotes.
La mayoría de las plataformas de orquestación de flujo de trabajo existentes (por ejemplo, Apache AirFlow, KubeFlow) programan la ejecución de tareas en función de los cambios de estado de las ejecuciones de tareas ascendentes. Si bien este enfoque funciona bien para tareas por lotes cuya finalización está garantizada, no funciona bien para tareas de transmisión que pueden ejecutarse durante un período de tiempo infinito sin cambios de estado. AIFlow se propone para facilitar la orquestación de flujos de trabajo que involucran tareas de transmisión.
Por ejemplo, es posible que los usuarios quieran ejecutar un trabajo de transmisión de Flink continuamente para reunir datos de entrenamiento e iniciar un trabajo de entrenamiento de aprendizaje automático cada vez que el trabajo de Flink haya procesado todos los datos ascendentes durante la última hora. Para programar este flujo de trabajo utilizando una plataforma de orquestación de flujo de trabajo no basada en eventos, los usuarios deben programar el trabajo de capacitación periódicamente según el tiempo del reloj de pared. Si hay un pico de tráfico o una falla en el trabajo ascendente, es posible que el trabajo de Flink no haya procesado la cantidad esperada de datos ascendentes cuando se inicia el trabajo de TensorFlow. El trabajo ascendente debería seguir esperando, fallar rápidamente o procesar datos parciales, ninguno de los cuales es ideal. En comparación, AIFlow proporciona API para que el trabajo de Flink emita un evento cada vez que su marca de agua basada en eventos aumenta en una hora, lo que desencadena la ejecución del trabajo de capacitación especificado por el usuario, sin sufrir los problemas descritos anteriormente.
Obtenga más información sobre AIFlow en https://ai-flow.readthedocs.io
Basado en eventos: AIFlow programa flujo de trabajo y trabajos basados en eventos. Esto es más eficiente que la programación basada en estado y permite programar los flujos de trabajo que contienen trabajos continuos.
Extensible: los usuarios pueden definir fácilmente sus propios operadores y ejecutores para enviar varios tipos de tareas a diferentes plataformas.
Exactamente una vez: AIFlow proporciona un mecanismo de procesamiento de eventos con semántica de exactamente una vez, lo que significa que sus tareas nunca se perderán ni se repetirán, incluso si se produce una conmutación por error.
B站基于AIFlow+Flink在批流融合调度上的实践
Agradecemos con gusto las contribuciones a AIFlow de cualquier forma, ya sea informando problemas, redactando funciones o contribuyendo con cambios de código. Puede informar problemas para solicitar funciones en Problemas de GitHub. Si desea contribuir con cambios de código, consulte la documentación de contribución.
Para obtener más información, le recomendamos unirse al grupo comunitario AIFlow en Grupos de Google para contactarnos: [email protected] .
También puedes unirte al grupo en DingTalk. El número del grupo DingTalk es 35876083
, grupo al que también puedes unirte escaneando el siguiente código QR: