大模型时代的异构计算平台
GPT-3开启大模型时代
- GPT-3的1750亿参数模型带来了质的飞跃,具备处理各种新任务的通用能力,如数学计算、阅读理解、多轮问答、SAT考试、新词构造、指代推理等。
- 爆款应用如AIGC文生图、ChatGPT拉动大模型训练需求。
- 大模型训练需要足够的数据与算力,模型参数规模持续增长,从ELMo到BERT,再到GPT-3,参数量已达1750亿,计算量达314ZFlops。
超大模型训练对基础设施的需求
- 面向大模型的基础设施包括AI框架、加速库、资源管理层和硬件资源。
- 大模型训练面临算力墙和存储墙的挑战:
- 算力墙:单卡计算量巨大,需要分布式加速。
- 存储墙:千亿参数需要2TB存储,单卡显存不足,需模型和数据进行切分。
- 常见梯度同步策略:同步更新(常用AllReduce实现)和异步更新。
- 存储墙解决方案:
- 流水线并行:通过调整mini-batch数据执行顺序减少气泡。
- 张量并行:将单层操作切分到多卡进行。
- 分组参数切片:减少显存冗余,按需通信同步。
大模型加速
- 减少计算量:
- 条件计算:按条件激活部分参数。
- 混合专家模式:将模型抽象为多个专家,每卡处理不同样本,独立计算路由。
- 并行策略实战:
- 飞桨4D混合并行训练:流水线并行、模型并行、数据并行、分组参数切片。
硬件资源
- 大模型训练对算力和通信的需求:
- 模型并行:通信量百GB,单机8卡秒级。
- 流水并行:通信量MB级别,多机2卡秒级。
- 数据并行:通信量GB级别,全部卡,分多组十秒级。
- 单机硬件选型:算力高、机内多卡通信能力强。
- 集群网络设计:8导轨优化的三层CLOS架构,最大可支撑16000卡规模。
软硬件结合的联合优化
- 加速方案:
- 基于AST的代码替换:用户无感发现问题模式,替换为可trace、可编译的语义等价代码。
- 社区方案:TorchDynamo拥抱Python,部分捕获,不支持的结构fallback回Python语法。
- 后端加速:
- 计算执行时间分析:子图执行时间=算子求和(kernel launch时间+访存时间+计算时间)。
- 计算加速:
- 算子融合:融合收益来源:去掉kernel launch时间,提升计算密度,减少额外访存。
- 算子实现优化:手写算子、半自动化模板、基于搜索的优化。
- 通信优化:
- 交换机哈希冲突:基于四元组的选路方式,静态分配物理链路。
- All2All加速:通过机内NVLink减轻对网络的压力。
- SHARP:网络中的计算,提升AllReduce性能。
- 端到端自动化任务切分与放置:
- 构建计算、通信的costmodel,基于costmodel搜索优化。
大模型发展推动基础设施演进
- 大模型演进趋势:参数规模持续增加,算力需求增长10000倍,多模态训练,异构资源。
- 集群与业务的演进:多类用户作业集群,多组异构集群。
- 基于统一视图的端到端优化:
- 统一逻辑计算视图、统一异构资源视图、CostModel、统一物理计算视图。
- 感知资源变化、重构资源视图。
- 百度百舸·AI异构计算平台2.0:支持城市大脑、工业互联网、产业金融、智算中心、生命科学、自动驾驶等业务场景。