做AI这么轻松吗?因为百度飞桨技术力又飙升了( 二 )


做AI这么轻松吗?因为百度飞桨技术力又飙升了
文章图片
升级后的飞桨框架新增了100多个API , 尤其是科学计算API , 支持了量子计算、生命科学、计算流体力学、分子动力学等应用 。 飞桨API种类丰富的同时 , 性能一并增强 , 进一步支持了高阶自动微分功能以及计算流体力学、分子动力学等场景 。 飞桨API还保持了对历史版本的兼容 , 一切都是为了让开发者更容易上手 。
飞桨框架2.2版本在文本任务处理速度上也取得了新的技术进展 。 通过端到端文本处理、预训练任务加速和生成任务解码加速 , 框架最终针对预训练模型形成训推一体全流程开发体验 , 大幅节省文本处理代码 , 还能显著提升推理速度 。 「从实际的产业部署代码示例中 , 可以看到 , 文本处理算子化的训推一体开发体验可以让部署代码节省94% 。 」马艳军给出了这样的实现效果 。
不过 , 这次飞桨框架2.2版本的核心技术突破远不止此 , 接下来要讲的端到端自适应大规模分布式训练技术和硬件适配统一方案是本次飞桨框架升级的重点 。
超大语言模型训练更加自动高效
还记得前几天刚刚发布的全球首个知识增强千亿大模型鹏城-百度·文心吗?正是基于这种端到端自适应大规模分布式训练技术 。
今年以来 , 百度在预训练方面一直有新技术产出 。 年初推出的4D混合并行策略可以训练超大语言模型 , 飞桨框架v2.0更是创新性地推出了业界首个通用异构参数服务器 , 让开发者使用CPU和AI专用芯片等不同硬件进行混合异构训练 , 实现对不同算力的芯片高效利用 。
此次 , 飞桨框架2.2版本又再进一步 , 全新发布了端到端自适应大规模分布式训练技术 。
做AI这么轻松吗?因为百度飞桨技术力又飙升了
文章图片
当前 , 社区普遍使用分布式训练方法来训练具有海量数据的神经网络 , 但这种方法在面对不同神经网络模型、不同计算资源以及训练中出现的动态变化 , 往往表现得力不从心 。 飞桨创新性地以系统性端到端方式设计分布式训练框架 , 这样做提升了针对不同场景的内在自适应能力 , 进而既能满足多样性应用和差异化计算资源下的各种需求 , 性能表现与其他方法相比也颇具竞争力 。
在12月6日百度提交的arXiv论文《End-to-endAdaptiveDistributedTrainingonPaddlePaddle》中 , 我们可以更清楚地洞悉该技术的结构示意图 。
做AI这么轻松吗?因为百度飞桨技术力又飙升了
文章图片
论文地址:https://arxiv.org/abs/2112.02752
马艳军在会上介绍了这种端到端自适应大规模分布式训练的设计思路:
?首先 , 针对不同的模型和硬件 , 抽象成统一的分布式计算视图和异构资源视图 , 并通过硬件感知切分和映射功能及端到端的代价模型 , 搜索出最优的模型切分和硬件放置组合策略 , 将模型参数、梯度和优化器状态按照最优策略分配到不同计算卡上 , 达到节省显存、负载均衡和提升训练性能的目的;
?接着 , 采用异步流水运行机制 , 以高通信和高并发的方式高效训练;
?最后 , 为了进一步提高训练的稳定性和资源利用率 , 飞桨提供弹性调度模块 , 感知硬件资源变化 , 自动重构资源视图 , 触发各个模块自动的发生变化 , 如重新构建资源视图、切分、硬件分配、流水运行 。 在不中断训练情况下 , 弹性调度集群可用机器来进一步提升训练的性能 。
这一端到端自适应大规模分布式训练架构的效果如何呢?从飞桨已经做的几组实验结果来看 , 效果很不错 。 比如 , 在512卡GPU集群训练GPT模型 , 训练速度有显著优势;在鹏城云脑II集群上采用自适应优化 , 训练速度更是能够达到优化前的2.1倍 。