DLRover:蚂蚁集团开源的AI训练革命

在当前的深度学习领域,大规模训练作业面临着一系列挑战。首先,硬件故障或软件错误导致的停机时间会严重影响训练效率和进度。其次,传统的检查点机制在大规模训练中效率低下,耗时长且容易降低训练的有效时间。资源管理的复杂性也给训练作业带来了瓶颈,包括节点落后、工作负载不均衡、CPU核心不足以及节点数量不足等问题。最后,数据管理的效率也直接影响到训练的弹性和稳定性。近日,蚂蚁集团AI创新研发部门NextEvo开源了一项名为DLRover的AI Infra技术,为这些问题提供了突破性的解决方案。

DLRover通过其创新的容错性、Flash Checkpoint、自动扩展资源、动态数据分片以及离线和在线学习的集成能力,解决了大规模分布式深度学习训练中的多个关键问题,为深度学习研究和开发提供了强有力的支持。

DLRover 的核心优势之一是其出色的容错能力。当训练过程中出现故障时,DLRover 能够在不停止整个训练作业的情况下恢复训练。它通过自动诊断故障原因,并根据错误的类型采取相应的恢复措施,如针对软件错误重启进程,或因硬件故障重启节点。这种容错机制显著减少了大规模训练作业的停机时间,如GLM-65B在数千GPU上的训练,其有效计算时间(goodput)从69%提升至95%。

DLRover 还提供了 Flash Checkpoint 功能,能够在几秒钟内保存和加载检查点。与传统的检查点操作相比,Flash Checkpoint 允许训练过程更频繁地保存检查点,并且在发生故障时,可以减少从最新检查点恢复训练所需的回滚步骤。这一功能包括异步将检查点持久化到存储、在训练进程失败时将检查点持久化到存储,以及在训练进程重启后从主机内存加载检查点。这使得从故障中恢复的速度大大加快,提高了训练的连续性和效率。

DLRover 在 TensorFlow 参数服务器(PS)架构下也展现了其故障容忍能力。它能够恢复失败的参数服务器和工作节点,自动启动具有更多内存的Pod以恢复内存不足的节点,重新分配失败工作节点的训练数据给其他工作节点,并根据模型大小自动扩展参数服务器。在蚂蚁集团的实践中,DLRover 管理着每天数百个深度学习训练作业,除代码错误导致的失败作业外,作业完成率从使用 KubeFlow 中的 tf-operator 的89%提高到了95%。

DLRover 能够根据训练作业的运行时需求自动扩展或缩减资源,如参数服务器或工作节点。通过监控节点的工作负载和吞吐量,DLRover 能够诊断资源配置的瓶颈,并进行动态资源调整以提高训练性能。这种自动扩展功能不仅提高了训练作业的稳定性和吞吐量,还通过按需分配资源减少了资源浪费。

DLRover 的动态数据分片功能将数据集分割成许多小的数据片段,每个片段仅包含少量的训练样本批次。当工作节点用完上一个片段的样本后,才会获取新的片段。这种动态分片机制使得DLRover 能够在工作节点失败之前恢复片段,并通过给快速工作节点分配更多片段来减轻工作节点的落后问题。

DLRover 通过动态数据分片提供的透明数据源,可以与批量数据处理的离线训练集成,并支持实时流数据处理的在线学习。这种灵活性使得DLRover 成为构建端到端工业在线学习系统的理想组件,能够与消息队列(如RocketMQ、Kafka、Pulsar等)集成,或作为 Flink、Spark、Ray 等平台内的训练汇聚节点执行。

GitHub 地址:https://github.com/intelligent-machine-learning/dlrover

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codigger编码场景介绍(二):驾驶舱场景(Cockpit)

Codigger,一个专为开发人员设计的工具,致力于为不同的开发场景提供最佳的切换体验。Codigger囊括了多种场景,如传统场景、调试场景、设计器场景、驾驶舱场景以及纯净场景等。在上一篇文章中,我们介绍了传统场景模式,今…

数据结构_栈在括号匹配中的应用_代码

学习笔记 #include<stdio.h> #include<stdlib.h> #include<string.h>#define MaxSize 10 typedef struct{char data[MaxSize];int top; }SqStack;//初始化栈 void InitStack(SqStack &S){S.top 0; } //判断栈是否为空 bool StackEmpty(SqStack S){if (…

深度学习之基于YoloV5钢材微小缺陷检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与目标 在钢材生产过程中&#xff0c;由于各种因素&#xff0c;钢材表面可能会出现微小缺陷&#xff…

DevOps实践:通过云效实现hexo自动构建部署发布

DevOps&#xff08;Development和Operations的组合词&#xff09;是一组过程、方法与系统的统称&#xff0c;用于促进开发&#xff08;应用程序/软件工程&#xff09;、技术运营和质量保障&#xff08;QA&#xff09;部门之间的沟通、协作与整合。这是一种重视“软件开发人员&a…

如何科学制定个性化健康方案?

随着现代生活节奏的加快&#xff0c;慢性病已经成为困扰许多人的健康难题。在这个信息爆炸的时代&#xff0c;如何科学、有效地管理个人健康&#xff0c;成为了我们每个人必须面对的问题。今天&#xff0c;我们就来探讨一下如何通过一体化解决方案&#xff0c;科学制定个性化健…

接口自动化测试工具-----pytest

首先确保安装了Python环境&#xff0c;首先&#xff0c;你需要确保已安装 Python 和 Pip。如果还没有安装&#xff0c;可以从 Python 官方网站下载并安装最新版本的 Python。安装过程中请确保选中“Add Python to PATH”选项。 安装pytest:打开命令提示符&#xff08;Command …

初见flyway

flyway (一种数据库版本控制工具 document) 两种文件 V 和 R V: V 开头是不可重复执行的文件&#xff0c;每次修改完都该更改名称 R: R 开头是可重复执行的文件&#xff0c;需要保证内部sql都是可以重复执行的 名称格式&#xff1a; V__table_name.sql, R__table_name.sql …

水面漂浮物生活垃圾识别检测系统

水面漂浮物生活垃圾识别检测系统通过现场监控摄像机对河道湖面等水体进行实时监测&#xff0c;水面漂浮物生活垃圾识别检测系统借助智能视频分析技术和YOLO深度学习技术&#xff0c;系统能够自动识别和抓拍水面上的垃圾漂浮物。一旦系统检测到有垃圾漂浮在水面上&#xff0c;立…

深度学习之基于暗通道算法+卷积神经网络图像去雾可视化系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在图像处理领域&#xff0c;图像去雾技术一直是一个重要的研究方向。由于雾霾等天气条件的影响…

软件测试/测试开发丨学习笔记之Allure2测试报告

Allure2测试报告 1、使用 Allure2 运行方式-Python 1&#xff09;–alluredir 参数生成测试报告。 在测试执行期间收集结果 pytest [测试用例/模块/包] --alluredir./result/ (—alluredir这个选项 用于指定存储测试结果的路径)#生成在线的测试报告 allure serve ./result2…

解决Ubuntu无法使用root登录的问题

1、登录普通用户 2、使用vi编辑器打开/etc/pam.d/gdm-autologin并注释掉auth required pam_succeed_if.so user ! root quiet_success 3、使用vi编辑器打开/etc/pam.d/gdm-password并注释掉auth required pam_succeed_if.so user ! root quiet_success 4、注销用户重新用roo…

Windows部署Jar包到系统服务(Service)

使用WinSW工具 1、工具下载地址&#xff1a;https://github.com/winsw/winsw/releases 选择最新版本下载 根据机器32位或者64位分别下载exe&#xff0c;再下载sample-minimal.xml文件 2、修改文件名 将两个文件名称修改为服务名&#xff0c;如&#xff1a; test.exe 和 test…

【誉天618·年中钜惠】无忧卡计算VIP会员上线

在数字化浪潮汹涌的当下&#xff0c;技术更新迭代的速度令人目不暇接。为了满足广大技术爱好者与专业人士对于最新技术的渴望与追求。2022年我们推出了誉天系列会员卡&#xff0c;受到了学员和企业的一致好评&#xff0c;现在我们又结合当下的热门ICT技术进行了会员卡升级。 誉…

Manjaro Linux上安装和配置输入法Fcitx5(稳定2014-5-17亲测)

在Manjaro Linux上安装和配置输入法&#xff0c;通常会选择Fcitx5或Ibus作为输入法框架。以下是详细步骤&#xff0c;包括安装和配置输入法框架以及安装中文输入法。 安装过程中冲突 卸载老版本 fcitx-4.*即可&#xff0c; 应为全面拥抱Fcitx5 参考文献&#xff1a; Fcitx5 do…

WinInet 编程:MFC 中的互联网编程

目录 概述 MFC WinInet 所包含的类 使用 WinInet 编程的一般步骤 创建 CInternetSession 类对象 头文件包含 对象创建 初始化 WinInet 查询设置 Internet 请求对象 设置代理服务器 设置超时时间 创建 CInternetConnection 类对象 对象创建 连接到服务器 创建 CInt…

文件中海量数据的排序

文件中海量数据的排序 题目&#xff1a; 跟之前堆排序可以解决TopK问题一样&#xff0c;我们来看看归并排序会用来解决什么问题&#xff1f; 思路&#xff1a; 我们说归并排序是外排序。其实就是将数据分成一个个小段&#xff0c;在内存中进行排序&#xff0c;再拿出内存&am…

【Linux】深入理解 Linux 的 find 指令

我一直都在流浪 可我不曾见过海洋 我以为的遗忘 原来躺在你手上 我努力微笑坚强 寂寞筑成一道围墙 也敌不过夜里 最温柔的月光 &#x1f3b5; 林宥嘉《残酷月光》 find 是 Linux 系统中功能非常强大的文件搜索工具。它可以递归地在指定目录中查找文件和目…

【Linux001】centos常用命令总结总结(已更新)

1.熟悉、梳理、总结下centos知识体系。 2.Linux相关知识&#xff0c;在日常开发中必不可少&#xff0c;如一些必知必会的常用命令&#xff0c;如环境搭建、应用部署等。同时&#xff0c;也要谨慎使用一些命令&#xff0c;如rm -rf&#xff0c;防止一些生产事故的发生。 3.欢迎点…

Mysql8.0离线安装 centos

Mysql8.0离线安装 centos 上传mysql安装包并解压 tar xvf mysql-8.0.37-1.el7.x86_64.rpm-bundle.tar运行安装对应的rpm包&#xff0c;按照一下顺序 rpm -ivh mysql-community-common-8.0.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.37-1.el7.x86_64.rp…

预约直播丨ETLCloud训练营:ETL中多流数据合并与运算专题

在大数据处理领域&#xff0c;一个至关重要的步骤是对多源数据流进行汇聚与融合&#xff0c;进而开展深度处理与剖析。此操作对于构建高效数据仓库、实现数据动态变化的实时洞察&#xff0c;以及驾驭复杂事件流的处理机制尤为关键。过程涉及从多样化的数据源中抽取信息&#xf…