您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[ArchSummit深圳2024|全球架构师峰会]:胡晓光-飞桨框架技术创新之路 - 发现报告

胡晓光-飞桨框架技术创新之路

AI智能总结
查看更多
胡晓光-飞桨框架技术创新之路

百度杰出架构师/胡晓光 目录 飞桨框架总体设计 动静统一自动并行飞桨框架关键技术 人工智能技术栈 深度学习框架核心功能 易用的开发接口 •数据抽象:Tensor•操作抽象:Operator•Python,Numpy•避免了解硬件底层开发接口,如CudaC,cuDNN,cuBlas等 自动微分功能 •只需要写神经网络的前向,通过链式法则自动计算Loss关于参数的梯度•高阶自动微分•前向自动微分 多硬件 •隔离硬件差异,如CudaC,oneAPI, XTDK,BangC等等•充分发挥硬件性能 分布式,合理排布计算、访存、通信等操作可扩展,如硬件后端、算子、Pass、Dialect等 模型和框架代码规模对比 •让深度学习技术的创新与应用更简单 https://github.com/Stability-AI/stablediffusionhttps://github.com/meta-llama/llama3https://github.com/google-deepmind/alphafold统计于2024年6月6日 https://github.com/tensorflow/tensorflowhttps://github.com/pytorch/pytorchhttps://github.com/PaddlePaddle/Paddle 自动微分功能 深度学习框架发展历程 大模型技术发展趋势 Mamba: Linear-Time Sequence Modeling withSelective State Spaces RWKV使用RNN网络达到跟Transformer可比的效果 Switch Transformers: Scaling to Trillion ParameterModels with Simple and Efficient Sparsity https://openai.com/research/video-generation-models-as-world-simulators 人工智能引发科学发现和模式创新变革 2022年英伟达&西门子基于AI和物理的风电场数字孪生以比传统方法快4,000倍 2021年DeepMind公司提出AlphaFold2模型突破生物学家50年未解蛋白质结构预测难题 2024年普林斯顿团队用AI提前300毫秒预测核聚变等离子不稳定态 2023年DeepMind公司提出GraphCast气象模型90%气象要素预测精度领先权威气象台 大模型时代的深度学习框架 训、压、推全流程 极致性能:广泛硬件适配、软硬一体协同优化 飞桨框架架构图 各模块之间的关系 飞桨新一代框架 像写单机代码一样写大规模分布式程序,通过自动并行、自动微分、编译优化等技术,实现极致性能和广泛硬件适配 目录 动静统一自动并行飞桨框架关键技术飞桨框架总体设计 静态图和动态图开发模式 动静转换技术 动静转换技术 飞桨动转静Python语法支持率94%,领先PyTorch的59%飞桨模型整图导出成功率95%,领先PyTorch的62% PaddleSOT动静转换 •解决深度学习模型下Python语言与框架IR之间差异性,实现转静训练100%的成功率,极致化用户体验•拓宽接入AI编译器的路径,解锁更多转静加速能力 中间表示IR 静态图 先组网后执行、依赖执行器、全局视野 中间表示IR应用示例 性能优化 推理部署 模型训练仅是深度学习任务链条的一环,更重要地是结合业务落地,部署推理,开放给用户使用 IR中包含了计算图的全局信息,如上下游算子的邻接 Declarative Rewrite Rule机制(即DRR) 三段式Pass开发范式,让开发者更聚焦于Pass逻辑的处理,无需关心底层IR的细节 Declarative Rewrite Rule机制(即DRR) DRR应用广泛,在算子Fuse融合类Pass开发上,简洁易用,有效降低60%的开发成本 FlashAtten算子融合Pass Conv2d+Add+Act算子融合Pass 高扩展中间表示PIR 高扩展性IR 支撑大模型性能极致优化 通过使用PIR,Pass开发成本降低60%,推理性能提升超过10%•提前静态选Kernel策略,调度更加轻量高效 •常量折叠Pass适用范围更广、执行速度更快•InplacePass适用范围更广、支持更多算子 大模型对算力的挑战 计算量、参数量增长大幅超越AI芯片算力、显存增长速度 通往大模型训练之路 飞桨分布式技术架构演进路线 如何实现高效的混合并行策略以应对大模型的发展? •不同模型、不同规模、不同设备可能需要使用不同的策略 解决方案 •手动并行:手动管理张量切分和通信,不同并行策略使用不同的API•自动并行:框架自动推导张量切分和通信,用统一API表示不同并行策略•半自动并行:需要用户添加少量分布式标记信息,框架推导剩余算子和张量的分布式信息•全自动并行:不需要用户添加分布式标记信息,框架自动推导所有算子和张量的分布式信息 手动并行代码示例(TP&PP) •对于百亿甚至千亿规模的大模型,一般需要使用TP+PP+DP/Sharding的混合并行方式进行训练 初始化分布式环境 如何用一种方式统一表达各种并行策略? 分布式标记(DistAttr) 如何表示张量在多卡设备的分布状态以及不同的并行策略? •ProcessMesh每个设备映射一个进程,用进程mesh来表示设备资源 •Placement张量在不同设备的分布(切分)状态 •Replicate:复制的•Shard(n):dim-n切分的•Partial:不完整的,需要规约•sum,mean… 动静统一自动并行 动静统一自动并行 动静统一自动并行架构 目录 动静统一自动并行飞桨框架关键技术飞桨框架总体设计 高阶自动微分 2D矩形平板分布受载 在x= 0和x=�两条边上,有挠度�和力矩��为0在x= 0和x=�两条边上,有挠度�和力矩��为0 组合算子机制 机制上保障模型性能 •动态图:拆解N+1阶微分•静态图:编译器融合优化 •原子性•实用性•面向Tensor•完备性 组合算子模型精度和显存优化 通过自定义反向算子拆分规则,降低算子拆分计算图的复杂度,减少显存、提升计算数值稳定性 深度学习编译器 手写算子运行速度快,但不够灵活 2472821258耗时单位微秒以RMSNorm算子为例,通过神经网络编译器技术,保持灵活易用的前提下,速度相比手动优化版本提升14%,相比算子组合方式提升至5倍 深度学习编译器 CPUXPUGPULLVM IRCUDA面向大模型、科学计算等的训练和推理任务,支持可变形状输入,通过多硬件Kernel自动生成、计算图编译优化等技术,实现极致性能和广泛硬件适配 Shape Dialect解读 飞桨对框架内150+基础算子和典型算子新增支持了动态Shape推导逻辑 InferSymbolicShape可动态地随计算图Pass的应用,自适应且Lazy的更新符号信息 动态Shape下Kernel生成 在CodeGen阶段,自动关联动态Shape符号,控制流分支自适应Dispatch 科学计算模型优化 基于飞桨高阶自动微分及编译优化技术,NVIDAIModulus上44个飞桨为后端的案例平均吞吐性能相比PyTorch提升40% 硬件适配方案 共创繁荣硬件生态 共创 与硬件伙伴合作深化,全面共创实现生态繁荣共赢 共研 携手硬件生态伙伴软硬一体联合优化适配主流芯片/ IP 共聚 与合作伙伴联合发起飞桨硬件生态圈促进AI产业链的适配升级