字节万卡集群技术细节公开:2天搞定GPT-3训练,算力利用率超英伟达Megatron-LM
随着对Sora技术分析的展开,AI基础设施的重要性愈发凸显。
来自字节和北大的一篇新论文在此时吸引关注:
文章披露,字节搭建起的万卡集群,能在1.75天内完成GPT-3规模模型(175B)的训练。
具体来说,字节提出了一个名为MegaScale的生产系统,旨在解决在万卡集群上训练大模型时面临的效率和稳定性挑战。
在12288块GPU上训练1750亿参数大语言模型时,MegaScale实现了55.2%的算力利用率(MFU),是英伟达Megatron-LM的1.34倍。
论文还透露,截止2023年9月,字节已建立起超过1万张卡的Ampere架构GPU(A100/A800)集群,目前正在建设大规模Hopper架构(H100/H800)集群。
适用于万卡集群的生产系统
大模型时代,GPU的重要性已无需赘述。
但大模型的训练,并不是把卡的数量拉满就能直接开干的——当GPU集群的规模来到“万”字级别,如何实现高效、稳定的训练,本身就是一个颇具挑战的工程问题。
第一重挑战:效率。
训练大语言模型并非简单的并行任务,需要在多个GPU之间分布模型,并且这些GPU需要频繁通信才能共同推进训练进程。通信之外,操作符优化、数据预处理和GPU内存消耗等因素,都对算力利用率(MFU)这个衡量训练效率的指标有影响。
MFU是实际吞吐量与理论最大吞吐量之比。
第二重挑战:稳定性。
我们知道,训练大语言模型往往需要花费非常长的时间,这也意味着,训练过程中失败和延迟的现象并不鲜见。
失败的成本是高昂的,因此如何缩短故障恢复时间变得尤为重要。
为了应对这些挑战,字节跳动的研究人员构建了MegaScale,并已将其部署到字节的数据中心中,用以支持各种大模型的训练。
MegaScale是在英伟达Megatron-LM的基础上改进的。
具体改进包括,算法和系统组件的共同设计、通信和计算重叠的优化、操作符优化、数据流水线优化以及网络性能调优等:
- 算法优化:研究人员在模型架构中引入并行化的Transformer块、滑动窗口注意力机制(SWA)和LAMB优化器,来提高训练效率而不牺牲模型的收敛性。
- 通信重叠:基于对3D并行(数据并行、流水线并行、张量并行)中各个计算单元操作的具体分析,研究人员设计技术策略有效地减少了非关键执行路径上操作所带来的延迟,缩短了模型训练中每一轮的迭代时间。
- 高效操作符:对GEMM操作符进行了优化,对LayerNorm和GeLU等操作进行了融合,以减少启动多个内核的开销,并优化内存访问模式。
- 数据流水线优化:通过异步数据预处理和消除冗余的数据加载器,来优化数据预处理和加载,减少GPU空闲时间。
- 集体通信群初始化:优化了分布式训练中英伟达多卡通信框架NCCL初始化的过程。在未经优化的情况下,2048张GPU的集群初始化时间是1047秒,优化后可降至5秒以下;万卡GPU集群的初始化时间则可降至30秒以下。
- 网络性能调优:分析了3D并行中的机器间流量,设计技术方案提高网络性能,包括网络拓扑设计、减少ECMP哈希冲突、拥塞控制和重传超时设置。
- 故障容忍:在万卡集群中,软硬件故障难以避免。研究人员设计了一个训练框架,来实现自动故障识别和快速恢复。具体包括,开发诊断工具来监控系统组件和事件、优化checkpoint高频保存训练进程等。
论文提到,MegaScale能够自动检测和修复超过90%的软硬件故障。
实验结果表明,MegaScale在12288个GPU上训练175B大语言模型时,实现了55.2%的MFU,是Megatrion-LM算力利用率的1.34倍。
训练530B大语言模型的MFU对比结果如下:
One More Thing
就在这篇技术论文引发讨论之际,字节类Sora产品也传出了新消息:
剪映旗下类似Sora的AI视频工具已经启动邀请内测。
看样子地基已经打好,那么对于字节的大模型产品,你期待吗?
论文地址:https://arxiv.org/abs/2402.15627
以上是字节万卡集群技术细节公开:2天搞定GPT-3训练,算力利用率超英伟达Megatron-LM的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在Debian系统中,readdir函数用于读取目录内容,但其返回的顺序并非预先定义的。要对目录中的文件进行排序,需要先读取所有文件,再利用qsort函数进行排序。以下代码演示了如何在Debian系统中使用readdir和qsort对目录文件进行排序:#include#include#include#include//自定义比较函数,用于qsortintcompare(constvoid*a,constvoid*b){returnstrcmp(*(

在Debian系统中,readdir系统调用用于读取目录内容。如果其性能表现不佳,可尝试以下优化策略:精简目录文件数量:尽可能将大型目录拆分成多个小型目录,降低每次readdir调用处理的项目数量。启用目录内容缓存:构建缓存机制,定期或在目录内容变更时更新缓存,减少对readdir的频繁调用。内存缓存(如Memcached或Redis)或本地缓存(如文件或数据库)均可考虑。采用高效数据结构:如果自行实现目录遍历,选择更高效的数据结构(例如哈希表而非线性搜索)存储和访问目录信

在Debian系统中,OpenSSL是一个重要的库,用于加密、解密和证书管理。为了防止中间人攻击(MITM),可以采取以下措施:使用HTTPS:确保所有网络请求使用HTTPS协议,而不是HTTP。HTTPS使用TLS(传输层安全协议)加密通信数据,确保数据在传输过程中不会被窃取或篡改。验证服务器证书:在客户端手动验证服务器证书,确保其可信。可以通过URLSession的委托方法来手动验证服务器

本文介绍如何在Debian系统中调整ApacheWeb服务器的日志记录级别。通过修改配置文件,您可以控制Apache记录的日志信息的详细程度。方法一:修改主配置文件定位配置文件:Apache2.x的配置文件通常位于/etc/apache2/目录下,文件名可能是apache2.conf或httpd.conf,具体取决于您的安装方式。编辑配置文件:使用文本编辑器(例如nano)以root权限打开配置文件:sudonano/etc/apache2/apache2.conf

Debian系统中的readdir函数是用于读取目录内容的系统调用,常用于C语言编程。本文将介绍如何将readdir与其他工具集成,以增强其功能。方法一:C语言程序与管道结合首先,编写一个C程序调用readdir函数并输出结果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

本指南将指导您学习如何在Debian系统中使用Syslog。Syslog是Linux系统中用于记录系统和应用程序日志消息的关键服务,它帮助管理员监控和分析系统活动,从而快速识别并解决问题。一、Syslog基础知识Syslog的核心功能包括:集中收集和管理日志消息;支持多种日志输出格式和目标位置(例如文件或网络);提供实时日志查看和过滤功能。二、安装和配置Syslog(使用Rsyslog)Debian系统默认使用Rsyslog。您可以通过以下命令安装:sudoaptupdatesud

在Debian邮件服务器上安装SSL证书的步骤如下:1.安装OpenSSL工具包首先,确保你的系统上已经安装了OpenSSL工具包。如果没有安装,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私钥和证书请求接下来,使用OpenSSL生成一个2048位的RSA私钥和一个证书请求(CSR):openss

配置Debian邮件服务器的防火墙是确保服务器安全性的重要步骤。以下是几种常用的防火墙配置方法,包括iptables和firewalld的使用。使用iptables配置防火墙安装iptables(如果尚未安装):sudoapt-getupdatesudoapt-getinstalliptables查看当前iptables规则:sudoiptables-L配置
