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

news2024/11/19 23:13:00

在当前的深度学习领域,大规模训练作业面临着一系列挑战。首先,硬件故障或软件错误导致的停机时间会严重影响训练效率和进度。其次,传统的检查点机制在大规模训练中效率低下,耗时长且容易降低训练的有效时间。资源管理的复杂性也给训练作业带来了瓶颈,包括节点落后、工作负载不均衡、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.coloradmin.cn/o/1687088.html

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

相关文章

Nginx(负载均衡,反向代理)

1.什么是nginx Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,**并发**能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有&#…

Codeforces Round 943 (Div. 3)

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 Codeforces Round 943 (Div. 3) 题解 题目列表:https://codeforces.com/contest/1968 A https://codeforces.com/contest/1968/problem/A 题目大意 给…

【教学类-58-01】黑白三角拼图01(2*2宫格)256种

背景需求: 中班益智区素材:三角形变魔术 - 小红书自制益智区教玩具:三角形变魔术,共24题 玩法一:根据图示在空白格子里摆放。 玩法二:根据图示在空白格子里用黑笔涂。##自制玩具益智区 #幼儿园益智区 #中班…

Color预设颜色测试

"AliceBlue", "获取 ARGB 值为 的系统 #FFF0F8FF定义颜色。", "AntiqueWhite", "获取 ARGB 值为 的系统 #FFFAEBD7定义颜色。", "Aqua", "获取 ARGB 值为 的系统 #FF00FFFF定义颜色。", "Aquamarine"…

.NET File Upload

VS2022 .NET8 &#x1f4be;基础上传示例 view {ViewData["Title"] "File Upload"; }<h1>ViewData["Title"]</h1><form method"post" enctype"multipart/form-data" action"/Home/UploadFile"…

MacOS/Linux系统多Java环境切换

通常我们在进行Java项目开发时&#xff0c;会安装不同版本的JDK&#xff0c;那么这个时候又需要根据项目来使用不同的Java版本&#xff0c;那么怎么来切换昵 第一步&#xff1a; 首先找出系统中安装的所有版本的路径 /usr/libexec/java_home -V这里可以看出安装了三个java 版…

基础widgets

1.widgets_文本和字体 在flutter当中几乎所有的对象都是widget,他跟原生开发的控线不一样,flutter开发当中,widget的概念更广泛一点, 不仅可以表示ui元素,也可以表示一些功能性的组件,例如手势检测等 基础组件 文本和字体 对于html当中对应就是lab或者label或者span这样的行内元…

Python变量、注释与数据类型

大家好&#xff0c;Python 是一种强大而灵活的编程语言&#xff0c;被广泛用于各种领域&#xff0c;包括软件开发、数据分析、科学计算等。在 Python 中&#xff0c;变量、注释和数据类型是构建代码的基础&#xff0c;对于理解和掌握这些概念是至关重要的。本文将深入探讨 Pyth…

数据库系统概论(超详解!!!)第九节 嵌入式SQL

SQL语言提供了两种不同的使用方式 &#xff1a;交互式&#xff0c; 嵌入式。 SQL语言是非过程性语言 。事务处理应用需要高级语言。 这两种方式细节上有差别&#xff0c;在程序设计的环境下&#xff0c;SQL语句要做某些必要的扩充。 1.嵌入式SQL的处理过程 嵌入式SQL是将SQL…

SOA半导体光放大器及其应用

---翻译自Michael Connelly于2015年发表的文章 1.简介 在过去的二十五年里&#xff0c;光纤通信网络的部署和容量迅速增长。这种增长得益于新光电技术的发展&#xff0c;这些技术可用于利用光纤的巨大带宽。如今&#xff0c;运行的系统比特率已超过 100 Gb/s。光技术是全球信…

linux-x86_64-musl 里面的musl是什么意思?

在一些开源库里面可以看到&#xff0c;linux-x86_64-musl类似于这样的字符串&#xff0c;这个musl是什么意思呢&#xff1f; 在字符串 "linux-x86_64-musl" 中&#xff0c;musl 指的是 musl libc&#xff0c;这是一个轻量级的 C 标准库实现。 让我们来拆解一下这个字…

使用maven-helper插件解决jar包冲突

发现问题 maven-helper分析问题 如上所述&#xff0c;问题就是依赖版本冲突了&#xff0c;出现版本冲突的原因是因为由于Maven具有依赖传递性&#xff0c;所以当你引入一个依赖类的同时&#xff0c;其身后的依赖类也一起如过江之鲫纷至沓来了。 举个例子&#xff1a;   A依赖…

软件详细规划与设计概览(软件概要文档、详细设计文档)

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…

扫描链接打开小程序配置-谁看谁迷糊

各位你们怎么理解这个规则&#xff1f;如果再多一条数据&#xff0c;和上面一样&#xff0c;只是测试范围为线上版本&#xff0c;又怎么解读&#xff1f; 反正以我对中文的掌握程度&#xff0c;我认为上面的规则是针对体验版的&#xff0c;符合规则的都跳转到体验版。新增的线上…

How to record real IP of user on nginx?

应用(Docker)使用WAF接入internet&#xff0c;nginx log 查不到用户的真实IP地址&#xff0c;于是修改nginx 设置&#xff0c;以下都是在linux下操作&#xff1a; 由于没有WAF权限&#xff0c;所以在 docker上启动了两个container&#xff0c;一个模拟WAF(r-proxy)&#xff0c…

mysql实战——mysql5.7升级到mysql8.0

1、上传mysql8.0压缩包到/usr/local目录下 tar -zxvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.25-linux-glibc2.12-x86_64 mysql8 #更改文件夹所属 chown -R mysql.mysql /usr/local/mysql8/ 2、更改配置文件my.cnf vi /etc/my.cnf # 最后几个for8.0的参数要…

GEO数据挖掘-PCA、差异分析

From 生物技能树 GEO数据挖掘第二节 文章目录 探针注释自主注释流程(了解)PCA图、top1000基因热图探针注释查看示例代码 top 1000 sd 热图离散基因热图&#xff0c;top1000表达基因&#xff0c;只是看一下&#xff0c;不用放文章里 差异分析火山图差异基因热图转换id富集分析-K…

无人机集群路径规划:遗传算法求解无人机集群路径规划,提供MATLAB代码

一、单个无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径&#xff0c;使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一&#xff0c;它可以通过算法和模型来确定无人机的航迹&#xff0c;以避开障碍物、优化…

基于springboot的毕业设计系统的开发源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的毕业设计系统的开发。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 毕业设计系统能够实现…

微软:最新ChatGPT-4o模型,可在 Azure OpenAI上使用

北京时间5月14日凌晨&#xff0c;OpenAI 一场不到 30 分钟的发布会&#xff0c;正式发布了 GPT-4o&#xff0c;视频语音交互丝滑到吓人&#xff0c;还即将免费可用&#xff01; GPT-4o&#xff0c;其中的「o」代表「omni」&#xff08;即全面、全能的意思&#xff09;&#xff…