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.
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.
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/ui
para 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
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
grupo de rayos de inicio
Luego podemos iniciar sesión en el tablero de Ray <ip>:8265
visitando
ejecutar canalización
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.py
el archivo para obtener más detallesservicio: implemente el modelo, use Ray AIR Predictor para implementar rápidamente el modelo, vea
serving.py
el archivo para obtener más detallestest_serving: modelo para probar la implementación, consulte
test_serving.py
la documentación para obtener más detalles
Luego podemos hacer doble clic en la tarea correspondiente para ver el registro de tareas, como se muestra en la figura a continuación.
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.
Hay muchas maneras de participar en la comunidad de DolphinScheduler, que incluyen:
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).
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 apoyarnos