Apache DolphinScheduler结合Ray AIR构建可复用机器学习工作流
  9ouHbrhuYytE 2023年11月02日 82 0

导读

随着AIGC时代的到来,机器学习技术也在不断涌现,例如chatgpt和diffusion等模型的诞生,给人工智能带来了新的机遇和挑战。对于企业和个人而言,跟不上这波潮流,可能就会被淘汰。因此,如何研究和应用新的机器学习技术,成为了各行各业的关注焦点。而 Apache DolphinScheduler作为一款优秀的开源调度系统,结合Ray AI Runtime,可以构建可复用的机器学习工作流,提升机器学习工作效率和可复用性,帮助企业更好地应对AIGC时代的挑战。

在这篇文章中,我们将介绍Apache DolphinScheduler和Ray AI Runtime的优势,以及如何结合它们构建可复用的机器学习工作流。旨在为广大机器学习从业者提供一些思路和指导,帮助他们更好地应对AIGC时代的挑战。


概述

Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。Apache DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。

Apache DolphinScheduler 与其他工具相比有以下优势:

  • 高可扩展性,支持多云、多环境,集群支持弹性扩缩
  • 支持三十多种系统任务类型,并且支持自定义扩展
  • 支持可视化、Python、API配置,易用性好
  • 强大的调度能力,支持时间日历触发、依赖触发,支持跨项目依赖和多租户功能
  • 分布式设计,保证系统稳定
  • 简单的权限设计,支持LDAP
  • 性能好,能支持百万量级
  • 社区非常活跃,每个月至少发一个版本

Apache DolphinScheduler结合Ray AIR构建可复用机器学习工作流_机器学习

Ray AIR

Ray AI Runtime(AIR)是一个可扩展并且统一的机器学习应用工具集。AIR 使用 Python 编程语言提供了简单扩展单个工作负载、端到端工作流和流行的生态系统框架的能力。

Apache DolphinScheduler结合Ray AIR构建可复用机器学习工作流_机器学习_02

AIR 建立在Ray的一系列机器学习库/工具的基础上,包括预处理、训练、超参数调节、推理、和强化学习,以此打造了一个生态系统以满足集成需求。Preprocessing, Training, Tuning, Scoring, Serving, and Reinforcement Learning

  • Preprocessing:数据预处理是将原始数据转换为机器学习模型特征的常用技术。Ray AIR提供多个预处理器和接口,可应用于离线训练数据和在线推理数据。
  • Training:Ray Train可以扩展Torch, XGBoost、TensorFlow等常用机器学习框架的模型训练,并与Ray Tune和Predictors等Ray库无缝集成。
  • Tuning:Tune是一个Python库,用于在任何规模下执行实验和超参数调整。通过使用Population Based Training (PBT)和HyperBand/ASHA等先进算法,您可以调整您喜欢的ML框架(如 PyTorch、XGBoost、Scikit-Learn、TensorFlow和Keras)。
  • Scoring:完成模型训练后,可使用Ray AIR Predictor进行推理和预测。
  • Serving:Ray Serve是一个可扩展的模型服务库,用于构建在线推理API。它支持多种框架,重点是模型组合能力强,构建复杂推理服务,并基于Ray构建,可轻松扩展大量机器。
  • Reinforcement Learning:RLlib是一个强化学习的开源库,支持各种生产级和高度分布式的RL工作负载,并为广泛的行业应用提供统一且简单的API。无论您想在多智能体环境中训练代理,纯粹使用离线数据集,还是使用外部连接的模拟器,RLlib都提供了简单易用的解决方案。

构建可复用机器学习工作流

在这个例子中,我们使用Apache DolphinScheduler和Ray AIR构建了可复用的机器学习工作流。

例子案例来源于Tabular data training and serving with Keras and Ray AIR

所有的代码都可以从这里获取 dolphinscheduler-ray-example

启动 Apache Dolphinscheduler

执行以下命令可以启动 Apache 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

改命令启动了以下端口

  • 12345: 用于访问DolphinScheduler UI
  • 25333: 用于使用 pydolphinscheduler SDK 提交工作流
  • 8265: ray dashboard

然后我们就可以登录 http://<ip>:12345/dolphinscheduler/ui来访问Dolphinscheduler

  • 用户名:admin
  • 密码:dolphinscheduler123

创建工作流

Apache DolphinScheduler 可以使用python提交工作流,执行以下命令,你需要在dolphinscheduler-ray-example 目录下

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

我们登录Apache DolphinScheduler后,就可以看到以下项目


点击项目进去后,我们可以看到3个工作流

  • start-ray: 在docker里面启动一个 ray cluster
  • stop-ray: 停止ray cluster
  • pipeline: 在local ray cluster 中训练模型和部署模型


启动Ray cluster


然后我们通过访问 <ip>:8265 就可以登录Ray的dashboard


运行Pipeline


启动参数

  • batch_size
  • epoch

对于 Apache DolphinScheduler 定义的工作流,可以通过参数的方式来构建可复用的机器学习工作流,只需要在任务中抽离参数即可。

任务查看

然后我们就可以在工作流实例中查看对应的任务

  • train_model: 训练模型,包含了获取数据,和训练模型,详见train_model.py文件
  • serving: 部署模型,使用 Ray AIR Predictor快速部署模型,详见serving.py文件
  • test_serving: 测试部署的模型,详见test_serving.py文件


然后我们可以双击对应的任务,查看任务日志,如下图所示


总结

作为结合 Apache DolphinScheduler 和Ray AI Runtime的实践,我们通过Tabular数据来进行训练和部署实现了一个可重用的机器学习工作流程。

同时,Ray AI Runtime作为一款高性能、分布式的机器学习运行时,具有卓越的性能和可扩展性,在加速机器学习训练和推理方面表现突出。与 Apache DolphinScheduler的结合,使得 Apache DolphinScheduler具备了更好的调度和管理分布式机器学习任务的能力,两者相结合可以更好地服务于机器学习工作流程的实际应用需求。同时,Apache DolphinScheduler和Ray AI Runtime的优势互补,可以更好地发挥各自的优点和特长,持续推动机器学习水平和实际应用的发展。

随着AIGC(AI-generated content)时代的到来,企业需要处理各种复杂的机器学习任务,例如训练chatgpt、diffusion等模型。这些任务需要在分布式环境中执行,需要高效的调度和管理。Apache DolphinScheduler与Ray AI Runtime的结合,可以为企业提供高效、可扩展的机器学习工作流程,帮助企业更好地训练和管理复杂的机器学习任务,从而在AIGC时代取得更大的成功。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
9ouHbrhuYytE