Apache DolphinScheduler combinado con Ray AIR para mejorar la eficiencia del entrenamiento del modelo de IA

guía

Con el advenimiento de la era AIGC, también están surgiendo tecnologías de aprendizaje automático, como el nacimiento de modelos chatgpt y de difusión, que brindan nuevas oportunidades y desafíos a la inteligencia artificial. Para las empresas y los individuos, si no pueden mantenerse al día con esta ola de tendencias, pueden ser eliminados. Por lo tanto, cómo investigar y aplicar nuevas tecnologías de aprendizaje automático se ha convertido en el centro de atención de todos los ámbitos de la vida. Como un excelente sistema de programación de código abierto, Apache DolphinScheduler, combinado con Ray AI Runtime, puede crear flujos de trabajo de aprendizaje automático reutilizables, mejorar la eficiencia y la reutilización del trabajo de aprendizaje automático y ayudar a las empresas a enfrentar mejor los desafíos de la era AIGC.

En este artículo, presentaremos las ventajas de Apache DolphinScheduler y Ray AI Runtime, y cómo combinarlos para crear un flujo de trabajo de aprendizaje automático reutilizable. Su objetivo es proporcionar algunas ideas y orientación para los profesionales del aprendizaje automático para ayudarlos a enfrentar mejor los desafíos de la era AIGC.

descripción general

Apache DolphinScheduler

Apache DolphinScheduler es un sistema de código abierto distribuido y fácilmente extensible para la programación de tareas de flujo de trabajo DAG visual. Aplicable a escenarios de nivel empresarial, proporciona una solución para visualizar tareas operativas, flujos de trabajo y procesos de procesamiento de datos a lo largo del ciclo de vida.

Apache DolphinScheduler está diseñado para resolver dependencias complejas de tareas de big data y proporcionar aplicaciones con datos y relaciones en varias orquestaciones de OPS. Resuelva el problema de que el ETL de I+D de datos depende de la complejidad y no puede controlar el estado de salud de la tarea. Apache DolphinScheduler ensambla tareas en forma de transmisión DAG (Gráfico acíclico dirigido, DAG), que puede monitorear el estado de ejecución de las tareas de manera oportuna y admite operaciones como reintento, falla de recuperación de nodo especificado, suspensión, recuperación y terminación de tareas .

Apache DolphinScheduler tiene las siguientes ventajas sobre otras herramientas:

  • Alta escalabilidad, compatible con varias nubes, varios entornos, el clúster admite escalado elástico

  • Admite más de 30 tipos de tareas del sistema y admite extensiones personalizadas

  • Visualización de soporte, Python, configuración de API, fácil de usar

  • Potentes capacidades de programación, disparador de calendario de tiempo de soporte, disparador de dependencia, soporte de dependencia entre proyectos y función multiinquilino

  • Diseño distribuido para garantizar la estabilidad del sistema

  • Diseño de permiso simple, compatible con LDAP

  • Buen rendimiento, puede soportar millones

  • La comunidad es muy activa, se lanza al menos una versión cada mes.

04f6c723c45024522fe30017dd5cd8de.png
Apache DolphinScheduler

Rayo ENCENDIDO

Ray AI Runtime (AIR) es un conjunto de herramientas escalable y unificado para aplicaciones de aprendizaje automático. AIR brinda la capacidad de escalar fácilmente cargas de trabajo individuales, flujos de trabajo integrales y marcos de ecosistemas populares mediante el lenguaje de programación Python.

exterior_predeterminado.png
Rayo ENCENDIDO

AIR se basa en lo mejor de las bibliotecas de Ray, incluido el preprocesamiento, la capacitación, el ajuste, la puntuación, el servicio y el aprendizaje de refuerzo, creando un ecosistema para las necesidades de integración. Preprocesamiento, entrenamiento, ajuste, puntuación, servicio y aprendizaje por refuerzo

  • Preprocesamiento : el preprocesamiento de datos es una técnica común para convertir datos sin procesar en funciones para modelos de aprendizaje automático. Ray AIR proporciona múltiples preprocesadores e interfaces que se pueden aplicar a datos de entrenamiento fuera de línea y datos de inferencia en línea.

  • Capacitación : Ray Train puede ampliar la capacitación de modelos de marcos de aprendizaje automático comunes, como Torch, XGBoost y TensorFlow, y se integra a la perfección con las bibliotecas de Ray, como Ray Tune y Predictors.

  • Ajuste : Tune es una biblioteca de Python para realizar experimentos y ajustes de hiperparámetros a cualquier escala. Mediante el uso de algoritmos avanzados como el entrenamiento basado en la población (PBT) y HyperBand/ASHA, puede ajustar sus marcos de ML favoritos como PyTorch, XGBoost, Scikit-Learn, TensorFlow y Keras.

  • Puntuación : después de completar el entrenamiento del modelo, Ray AIR Predictor se puede usar para inferencias y predicciones.

  • Servicio : Ray Serve es una biblioteca de servicio modelo extensible para crear API de inferencia en línea. Admite una variedad de marcos, centrándose en capacidades sólidas de combinación de modelos, creando servicios de inferencia complejos y construyendo sobre Ray, que puede expandir fácilmente una gran cantidad de máquinas.

  • Aprendizaje por refuerzo : RLlib es una biblioteca de código abierto para el aprendizaje por refuerzo que admite una variedad de cargas de trabajo de RL altamente distribuidas y de grado de producción, y proporciona una API unificada y simple para una amplia gama de aplicaciones de la industria. Ya sea que desee capacitar a los agentes en un entorno de múltiples agentes, utilizando únicamente conjuntos de datos fuera de línea o utilizando un simulador conectado externamente, RLlib proporciona una solución fácil de usar.

Cree flujos de trabajo de aprendizaje automático reutilizables

En este ejemplo, creamos un flujo de trabajo de aprendizaje automático reutilizable con Apache DolphinScheduler y Ray AIR.

El caso de ejemplo proviene del entrenamiento y servicio de datos tabulares con Keras y Ray AIR.

Todo el código está disponible desde aquí dolphinscheduler-ray-example

Iniciar Apache Dolphinscheduler

Ejecute el siguiente comando para iniciar DolphinScheduler Standalone

docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -p 8265:8265 -d jalonzjg/dolphinscheduler-standalone-server:3.1.4-ray

Cambie el comando para iniciar los siguientes puertos

  • 12345: se utiliza para acceder a la interfaz de usuario de DolphinScheduler

  • 25333: para enviar flujos de trabajo mediante el SDK de pydolphinscheduler

  • 8265: tablero de rayos

Luego podemos iniciar sesión http://<ip>:12345/dolphinscheduler/uipara acceder a Apache Dolphinscheduler

  • Nombre de usuario: administrador

  • Contraseña: dolphinscheduler123

Crear un flujo de trabajo

DolphinScheduler puede usar python para enviar flujos de trabajo, ejecute el siguiente comando, debe estar en el directorio dolphinscheduler-ray-example

python3 -m pip install -i https://pypi.org/simple/ apache-dolphinscheduler==4.0.0
export PYDS_HOME=./
python3 pyds-workflow.py

Después de iniciar sesión en DolphinScheduler, podemos ver los siguientes elementos

7083d65a9bf6b3e1fdcc4b0decf9bee4.png

Después de hacer clic en el proyecto, podemos ver 3 flujos de trabajo

  • start-ray: inicia un grupo de rayos en docker

  • stop-ray: grupo de rayos de parada

  • canalización: entrenar el modelo e implementar el modelo en el grupo de rayos local

30ba766d337398a93d5aae689777117b.png

grupo de rayos de inicio

c98c90043e9f3ce40d983e14737cde74.png

Luego podemos iniciar sesión en el tablero de Ray <ip>:8265visitando

1c0a8e8fd406bf1af91cc35610e76e3f.png

ejecutar canalización

4de7bcf34f3bc870ff7b3f6d87871883.png

parámetros de inicio

  • tamaño del lote

  • época

Para el flujo de trabajo definido por DolphinScheduler, puede crear un flujo de trabajo de aprendizaje automático reutilizable por medio de parámetros, y solo necesita extraer los parámetros de la tarea.

vista de tareas

Luego podemos ver las tareas correspondientes en la instancia de flujo de trabajo

  • train_model: modelo de entrenamiento, incluida la obtención de datos y el modelo de entrenamiento, consulte train_model.pyel archivo para obtener más detalles

  • servicio: implemente el modelo, use Ray AIR Predictor para implementar rápidamente el modelo, vea serving.pyel archivo para obtener más detalles

  • test_serving: modelo para probar la implementación, consulte test_serving.pyla documentación para obtener más detalles

2dbbb659af0356fcfaf137790a2de3e9.png

Luego podemos hacer doble clic en la tarea correspondiente para ver el registro de tareas, como se muestra en la figura a continuación.

beab4f8d5a75ebaa0efc2f8cb7644d03.png

Como práctica de combinar DolphinScheduler y Ray AI Runtime, implementamos un flujo de trabajo de aprendizaje automático reutilizable a través de datos tabulares para capacitación e implementación.

Al mismo tiempo, como tiempo de ejecución de aprendizaje automático distribuido de alto rendimiento, Ray AI Runtime tiene un excelente rendimiento y escalabilidad, y es sobresaliente en la aceleración de la capacitación y el razonamiento del aprendizaje automático. La combinación con DolphinScheduler permite a DolphinScheduler programar y administrar mejor las tareas distribuidas de aprendizaje automático.La combinación de los dos puede servir mejor a los requisitos reales de las aplicaciones de los flujos de trabajo de aprendizaje automático. Al mismo tiempo, DolphinScheduler y Ray AI Runtime tienen ventajas complementarias, que pueden aprovechar mejor sus respectivos puntos fuertes y fuertes, y continuar promoviendo el desarrollo del aprendizaje automático y las aplicaciones prácticas.

Con el advenimiento de la era AIGC (contenido generado por IA), las empresas deben lidiar con varias tareas complejas de aprendizaje automático, como el entrenamiento de chatgpt, la difusión y otros modelos. Estas tareas deben ejecutarse en un entorno distribuido, lo que requiere una programación y gestión eficientes. La combinación de DolphinScheduler y Ray AI Runtime puede proporcionar a las empresas un flujo de trabajo de aprendizaje automático escalable y eficiente, ayudando a las empresas a capacitar y administrar mejor las tareas complejas de aprendizaje automático, para lograr un mayor éxito en la era AIGC.

Participar en la contribución

Con el rápido auge del código abierto en China, la comunidad Apache DolphinScheduler ha dado paso a un desarrollo vigoroso. Con el fin de hacer una programación mejor y más fácil de usar, damos la más sincera bienvenida a los socios que aman el código abierto para que se unan a la comunidad de código abierto y contribuyan a el auge del código abierto de China. , Dejemos que el código abierto local se globalice.

cb796316c68a23edd5475f52e5e3970d.png

Hay muchas maneras de participar en la comunidad de DolphinScheduler, que incluyen:

c99d0964281d8c015ae687d4e58b5a04.png

Aportando el primer PR (documentación, código) También esperamos que sea sencillo, el primer PR se utiliza para familiarizarse con el proceso de envío y la colaboración de la comunidad y sentir la amabilidad de la comunidad.

La comunidad ha elaborado la siguiente lista de problemas para principiantes: https://github.com/apache/dolphinscheduler/issues/5689

Lista de problemas para no principiantes: https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

Cómo participar en el enlace de contribución: https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

Vamos, la comunidad de fuente abierta de DolphinScheduler necesita su participación para contribuir al auge de la fuente abierta de China, incluso si es solo un mosaico pequeño, el poder combinado es enorme.

Participar en el código abierto le permite competir de cerca con expertos de todos los ámbitos de la vida y mejorar rápidamente sus habilidades. Si desea contribuir, tenemos un grupo de incubación de semillas para colaboradores. Puede agregar el asistente de la comunidad WeChat (Leonard-ds) a enseñarte (colaboradores) Sin importar el nivel, la pregunta debe ser respondida, la clave es tener un corazón dispuesto a contribuir).

409fcb48ca59226bccf47f80cf763fee.jpeg

Agregar asistente de comunidad WeChat (Leonard-ds) 

Indique que desea participar en la contribución al agregar el Asistente de WeChat.

Vamos, la comunidad de código abierto espera su participación.

Haz clic para leer el texto original, enciende la Estrella para apoyarnos62873f6a6207fbf95ed09d538b90f7a7.png

Supongo que te gusta

Origin blog.csdn.net/DolphinScheduler/article/details/130377286
Recomendado
Clasificación