为了高性能、超大规模的模型训练,这个组合“出道”了

点击上方蓝字

关注我们

(本文阅读时间:3分钟)

近年来,在大量数据上训练的基于 transformer 的大规模深度学习模型在多项认知任务中取得了很好的成果,并且被使用到一些新产品和功能背后,进一步增强了人类的能力。在过去五年中,这些模型的规模增长了几个数量级。从最初的 transformer 模型的几百万个参数一直到最新的 5300 亿个参数的 Megatron-Turing (MT-NLG 530B) 模型(如图所示),客户对于前所未有的大规模训练和微调大型模型的需求越来越强烈。

bf0305dcf81a63b2ab97724d7dc81b1e.png

大模型和硬件能力全景图  

Azure 机器学习 (AzureML)带来了大量由 InfiniBand 互连提供支持的最新 GPU,以应对大规模 AI 训练。我们已经在 Azure 上训练了 Megatron/Turing 和 GPT-3这些模型。以前,为了训练这些模型,用户需要设置和维护一个复杂的分布式训练基础设施,通常涉及几个手动的步骤,容易出错,从而导致在可用性和性能方面的体验不佳。

今天,我们很自豪地宣布在我们的软件堆栈中取得突破——使用 DeepSpeed 和 1024 A100 来扩展 2T 参数模型的训练,并在 1K+ GPU 规模上提供精简的用户体验。我们将通过 AzureML(包括充分优化的 PyTorch 环境)为您带来这些软件创新,它为大规模训练提供了出色的性能和易于使用的界面。

如下图所示,微软正在采用全栈优化方法,其中硬件、操作系统、VM image、Docker image(含优化后的PyTorch、DeepSpeed、ONNX 运行时和其他Python包)、面向用户的Azure ML APIs都已经过优化、集成和测试,具有出色的性能和可扩展性。 

0dda7be95bc5c7db01f95f0eb2d8dfa9.png

微软针对 Azure 上可扩展分布式训练的全栈优化

这个优化的堆栈使我们能够使用DeepSpeed on Azure有效地扩展大型模型的训练。与其他云场商发布的数据相比,我们支持 2 倍大的模型大小(2 万亿 vs. 1 万亿参数),扩展到 2 倍的 GPU(1024 vs. 512),以及高达 1.8 倍的计算吞吐量/GPU(150 TFLOPs vs. 81 TFLOPs)。

6f4354f07d8a404871f108ea584416db.png

如果您想更深入地了解性能数据,以及Azure 和 DeepSpeed 如何使您轻松高效地大规模训练万亿参数模型,请扫码或点击最下方“阅读原文”。原博客文末有丰富的相关资源!

0c5a738586937e5d67ce371ee583e6d6.png

长按识别二维码

f64138ebab4c3653d42a82ceb9cd4c44.gif

点击「阅读原文」前往原博客~

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

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

相关文章

SpringCloud必会知识点大全

为什么要学习Spring Cloud 在项目开发中随着业务越来越多,导致功能之间耦合性高、开发效率低、系统运行缓慢难以维护、不稳定。微服务 架构可以解决这些问题,而Spring Cloud是微服务架构最流行的实现. 1.微服务 微服务架构是使用一套小服务来开发单个应用…

30分钟掌握 C#7

1. out 变量(out variables) 以前我们使用out变量必须在使用前进行声明,C# 7.0 给我们提供了一种更简洁的语法 “使用时进行内联声明” 。如下所示: 1 var input ReadLine(); 2 if (int.TryParse(input, out var result)) 3 …

在 C# 中如何检查参数是否为 null

前言前不久,微软宣布从 C# 11 中移除参数空值检查功能,该功能允许在方法开始执行之前,在参数名称的末尾提供参数空值检查(!!操作符)。那么,在 C# 中如何检查参数是否为 null 呢?1. null这个可能…

带你剖析WebGis的世界奥秘----Geojson数据加载(高级)

前言:前两周我带你们分析了WebGis中关键步骤瓦片加载点击事件(具体的看前两篇文章),下面呢,我带大家来看看Geojson的加载及其点击事件 Geojson数据解析 GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可…

「Docker入门指北」容器很难理解?带你从头到尾捋一遍

文章目录 1. 初始虚拟化 🍑 虚拟化概念🍑 硬件虚拟化2. Docker容器 🍑 Docker技术的诞生🍑 容器与虚拟化🍑 性能差别🍑 Docker优势 编排有序高效易迁移快速部署3. 容器生态系统 🍑 核心技术 容器…

微服务:事务管理

几乎所有的信息管理系统都会涉及到事务,事务的目的是为了保证数据的一致性,这里说的一致性是数据库状态的一致性。说到数据库状态的一致性,相信大家都会想到 ACID :原子性(Atomic):在一个事件的…

Redis的那些事:一文入门Redis的基础操作

Redis是什么Redis,全称是Remote Dictionary Service,翻译过来就是,远程字典服务。redis属于nosql非关系型数据库。Nosql常见的数据关系,基本上是以key-value键值对形式存在的。Key-value: 就像翻阅中文字典或者单词字典,通过指定的…

10种提问型爆文标题句式 直接套用

如果你用1天的时间来写篇好文章,那你花掉半天时间想一个好标题都不过分! 你是不是觉得我有点言过其实了?没关系,先来问你2个问题: 1、花了很长时间,写了一篇很牛的卖货推文,定稿后&#xff0c…

2016 China Joy抢先看,文末有彩蛋!

这里只有你想不到的,没有你看不到的。 2016 China Joy开幕在即,天气成了最折磨各种媒体、展商和观众的小妖精,一会艳阳天,一会大暴雨,轩轩现在是这样的! 七月底的魔都,热的那叫一个销魂&#x…

JdbcTemplate+PageImpl实现多表分页查询

一、基础实体  MappedSuperclass public abstract class AbsIdEntity implements Serializable {private static final long serialVersionUID 7988377299341530426L;public final static int IS_DELETE_YES 1;// 标记删除public final static int IS_DELETE_NO 0;// 未删除…

消息队列选型手册

前言 消息队列中间件重要吗?面试必问问题之一,你说重不重要。我有时会问同事,为啥你用 RabbitMQ,不用 Kafka,或者 RocketMQ 呢? 他给我的回答:“因为公司用的就是这个,大家都这么用…

Jenkins 持续集成国产嵌入式操作系统 RT-Thread 的CI

我们直接在Jenkins的镜像基础上进行集成RT-Thread 的编译环境, 这样直接使用Shell 命令 最直接了当, 通过 第三方docker等插件, 尝试了计重方案, 没有找到理想中的感觉, 如果其他人有想法可以告知一二。 我们有现成的镜…

codevs原创抄袭题 5960 信使

题目描述 Description•战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达…

MongoDB精华总结

概述 MongoDB是属于文档型的NoSQL数据库,也就是文档数据库。文档数据库区别于传统的其它数据库,它是用来管理文档。在传统的数据库中,信息被分割成离散的数据段,而在文档数据库中,文档是处理信息的基本单位&#xff0c…

认清性能问题

本文翻译自 Thinking Clearly About Performance 这是我三年前读到的一篇关于性能问题的好文,读完后还觉不过瘾,怕理解的不够遂又翻译了一遍,这也是当年我的第一次翻译。 这几年来每次碰到性能问题,我都会想起这篇文章&#xff0c…

简述:分布式CAP理论和BASE理论

目录 一、什么是CAP? Consistency (一致性): Availability (可用性): Partition Tolerance (分区容错性): 二、取舍策略 三、Base理论 1、基本可用 2、软状态 3、最终一致性 四、常见产品 Ereka Zookeeper 五、总结 一、什么是CAP&#xf…

WinForm(四)一种实现登录的方式

首先声明,这只是一种登录方式,并不是最好的方式,用这个例子为了说明登录窗体和Application的关系。在登录前,定义了用户实体,然后是一个通用的类,存放进程中当前登录的用户,所以CurrentUser是静…

Java多线程4:synchronized锁机制

脏读 一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。 按照正常来看应该打印&quo…

.NET Community Toolkit 8.0.0 版本发布

.NET 社区工具包(.NET Community Toolkit )现已发布 8.0.0 版!.NET 社区工具包是一组适用于所有 .NET 开发人员,且与任何特定 UI 平台无关的帮助程序和 API。该工具包由 Microsoft 维护和发布,是 .NET 基金会的一部分&…

1、内存

程序为什么需要内存 程序运行的目的:程序运行是为了得到一定的结果,程序运行其实是在做一系列的数据计算,所以:程序代码数据;程序运行的目的不外乎2个:过程、结果; 用函数来类比:…