看完这篇,我奶奶也要去练大模型了!
原标题:看完这篇,我奶奶也要去练大模型了!
当下圈里最火的话题莫过大模型
而国内最拉风的大模型莫过文心一言
反正,上千号百度工程师为肝出这个大模型
已经熬出了黑眼圈
像「文心一言」这种超级大模型
训练过程太虐人,搁谁都得“吐血”
即便像百度这么有实力的技术大厂
恐怕,工程师们也在厕所哭晕过好几轮
今天,我们就从技术层面来讲讲
训练一个「文心一言」大模型
到底有多难?到底有多虐人?到底有多吐血?
▼
首先
欲炼大模型→必先搞大集群
大集群,指的是超大规模的GPU算力集群
唯有大集群才能 Hold 住大模型
通常千亿参数规模才好意思叫大模型
比如,GPT-3,有1750亿参数
而文心大模型(ERNIE 3.0 Titan)
参数则高达2600亿
↓
因为,只有训练参数达到一定巨量级
就像达到某个神秘的临界点
大模型才会突然“开窍”
对于这种千亿甚至万亿参数规模的训练
如果按传统老路子配置算力
搞几台GPU服务器,组个算力池
那简直是天方夜谭之一千零一夜
(一千零一夜也训不玩)
↓
举个例子说吧
如果选用NVIDIA主打的GPU A100来战
对GPT-3的1750亿参数进行训练
理论上,单卡需要耗费 32 年的时间
还没来得及出门
就直接惨败在「叹息之墙」下
计算墙丨显存墙丨通信墙
▌计算墙,指的是单卡算力和模型总算力之间的巨大差异。A100 的单卡算力只有 312 TFLOPS,而 GPT-3 则需要 314 ZFLOPs 的总算力,两者相差了 9 个数量级。
▌显存墙,指的是单卡无法完整存储一个大模型的参数。GPT-3 的 1750 亿参数本身就需要 700 GB 的显存空间(每个参数按照 4 个字节计算),而 NVIDIA A100 GPU 只有 80 GB 显存。
▌通信墙,主要是分布式训练下集群各计算单元需要频繁参数同步,通信性能将影响整体计算速度。如果通信墙如果处理得不好,很可能导致集群规模越大,训练效率反而会降低。
所以,为把「文心一言」训练出来
百度也是拼了
建成了国内云计算市场规模最大的
高性能GPU集群
↓
这个巨无霸集群战斗力爆棚
我给大家掰开来看看
↓
集群中的算力节点,是一台台AI服务器
这些AI服务器,名叫:X-MAN
是百度智能云定制的超级AI计算机
目前已经进化到第4代
百度先把单节点的性能卷到了极限
在一个小小的机箱内,塞下8块GPU
提供单机内部134GB/s的Allreduce带宽
所以,每个节点都是
一个算力十足的“小钢炮”
好了,搞完单点,就组战队(集群)
想激发出整个集群的战斗力
并不是简单堆堆设备而已
强调的是精妙的架构设计,好比排兵布阵
↓
百度智能云在【集群网络设计】上
完全从大模型训练的实际需求出发
(比如,在训练中,同号卡 Allreduce 操作霸占网络流量最大,如何实现高吞吐和低延时?)
百度采用了三层CLOS架构,IB组网
把整个集群的性能瞬间拉满
所以
百度卷出了全国最大的IB组网GPU集群
支持1.6万个GPU卡,2000+AI服务器
能提供单集群 EFLOPS 级别的算力
当然,这种“巨无霸”集群
也不是一夜之间建成的
2021年,百度智能云开始着手建设全新一代高性能 GPU 集群
2022年,集群建成,可容纳万卡以上规模,提供单集群 EFLOPS 级别算力
2023年,集群发力,扛起了文心一言的快速面世
集群继续扩张ing…
到了这一步,大集群算是 Ready 了
可你以为把大模型放在集群上
就能愉快地要跑起来?
工程师就能松口气?
训练大模型的过程
是一个全栈协同、软硬兼施的过程
任意一环掉链子,就训练不出来
因此,很多人想知道
文心一言到底如何训练出来的?
↓
训练大模型→得靠AI大底座
百度「AI 大底座」
是百度全栈自研的AI基础设施
从云智一体架构全局看
从下到上三层
↓
芯片层、框架层、模型层
将这三层技术栈的能力
融合进两大工程平台:百度百舸和AI中台
就形成了百度AI大底座
那这底座,具体怎么用?
我们进一步来看
大模型的训练过程
↓
第❶步,把大模型拆了,并制定策略
大模型的训练一定是分布式训练
把一个任务,分解成无数的小任务
再把这些小任务
放到集群中不同GPU或XPU上进行训练
任务分配的时候
需要制定一个“并行策略”,好比刀法
在这个环节中,百度飞桨就是策略制定者
百度飞桨作为业界三大顶流 AI 框架之一
制定的”4D混合并行策略”,独步天下
可支持千亿级大模型的训练在月级别完成
好了,现在任务被切得“稀碎”了
等待着投放到计算集群中去训练
可是,辣么大集群
你知道设备之间的链接关系吗?
知道哪台运行正常、哪台出现故障吗?
第❷步,感知集群拓扑,盘点算力资源
这时候,百度百舸,闪亮登场了
提供性能强劲的AI算力
并有超强的集群拓扑感知能力
它能感知到每台服务器的算力
能感知有多少GPU、CPU、XPU,是闲是忙
能感知到每个节点之间的连接方式
服务器↔服务器,GPU↔GPU
然后
百度百舸把“总账”
交付给百度飞桨处理
↓
接下来,飞桨根据这张图
再出一张“统一逻辑计算视图”
OJBK,准备工作全部Ready
手上有图,动作不慌
↓
第❸步,飞桨开始自动派活
把之前切分的小任务
分配到不同的 GPU/XPU 上去训练
这一步,是最费时费钱的环节
一边要考虑效率,一边要考虑成本
此时,飞桨会根据前面拿到的两张图
执行一个「最优投放策略」
↓
兼顾通信需求,兼顾计算资源(带宽、链路)
兼顾成本,兼顾效率,又快又省钱
第❹步,训练和推理,加速!加速!加速!
文心一言,内测一个多月
就完成了4次大的技术升级
看得圈内人目瞪口呆
这么快迭代,凭什么?
一方面是,硬件集群底子足够强
百度千卡规模集群中
多卡线性加速比高达90%
另一方面是,软件加速能力爆表
在训练和推理最费时的两大步
百度自研了秘密武器:加速工具包
在训练过程中,文心一言采用了
各项优化的训练加速技术,包括…
↓
这种“加速度”,横向测评也是NO.1!在 2022 年 11 月发布的 MLPerf Trainning v2.1 测试结果中,百度使用飞桨加百度百舸提交的模型训练性能结果,位列同等 GPU 配置下世界第一,端到端训练时间和训练吞吐均超越 NGC PyTorch 框架。
在推理过程中,文心一言采用了
各类推理加速优化的方法
能够优化AI框架产出的模型
加快推理速度,提升资源利用率
第❺步,在训练无限循环中
资源管理和任务调度,两项任务不断交互
百度飞桨、百度百舸,左右护法
↓
百度百舸
为AI任务提供各类高性能的“算网存”资源
实时感知AI任务对资源的需求状态
为每个AI任务,调度匹配的资源
百度飞桨
根据百舸告知的集群最新变化
自动调整模型切分和AI任务放置策略
至此
就能够保证大规模训练的高效性
极大提升自适应分布式训练性能
所以,大模型看着难搞
但只要有合适的工具,似乎也没那么难
(可惜大部分人都没有)
文心一言背后最大的工具就是
百度智能云的【AI大底座】
目前,AI大底座全部能力已经对外开放
这个底座具有极强的通用性
轻松拿捏各行各业、各种细分场景
↓
对于广大用户来讲
在成熟的AI底座上搞事情
各种坑瞬间都被填平了
↓
①加速AI研发过程,好工具好平台现成的,软硬件全栈支撑,少踩坑,易上手
②技术的先进性,站在巨人的肩膀上看趋势、搞研发,少走弯路
③交付的灵活性:交付方式,各个地域的中心云、边缘云 BEC、本地计算集群 LCC、私有云 ABC Stack 等
都说AI奇点已到,在这样一个大变局下
你可以尝鲜国内最火的大模型「文心一言」
更可以借助其背后的玄妙能力
百度智能云「AI大底座」
炼出自己的行业“仙丹”
彩蛋:遇事不决问「一言」
训练大模型的秘密我们已经扒完了
可是,在为这篇推文起标题的事儿
特大妹却犯了难,不知道选哪个好?
怎么办?还是请教一下「文心一言」吧
↓
最终,文心一言帮我们选定了这个标题
咋样,这思维逻辑,还挺带劲吧?返回搜狐,查看更多
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
发布于:北京市
阅读 ()
原文链接:http://news.sohu.com/a/685341615_120178849