硬核!实现千亿模型训推全流程的LLM开发利器!

学术   2024-12-30 18:02   江苏  

背景与简介

大语言模型的快速发展对训练和推理技术带来了更⾼的要求,基于飞桨框架3.0版本打造的PaddleNLP大语言模型套件,通过极致的全流程优化,为开发者提供从组网开发、预训练、精调对⻬、模型压缩以及推理部署的一站式解决⽅案。

产品亮点

1. ⼤模型自动并行,千亿模型训推全流程开箱即⽤

基于⻜桨框架3.0版本,通过统一的分布式表示结合自动并行技术,⼤幅简化了组网开发的复杂性,分布式核心代码量减少50%以上,全分布式策略⽀持的组网使得Llama 3.1 405B模型开箱即用,同时预置了80多个主流模型的训练-压缩-推理的全流程方案,以满足不同场景需求。

2. 大模型训推一体,提供产业级高性能精调与对⻬方案

基于⻜桨框架独有的FlashMask高性能变⻓注意⼒掩码计算机制,结合Zero Padding零填充数据流优化技术,可最大程度减少无效数据填充带来计算资源浪费,显著提升精调和对⻬性能。以Llama 3.1 8B模型为例,相⽐LLaMA-Factory⽅案,性能提升了1.2倍,单机即可完成128K⻓文的SFT/DPO。借助⻜桨训推一体特性,提供产业级的RLHF⽅案,PPO采样可复⽤推理加速算⼦,训练吞吐提升达2.1倍。

3. 大模型多硬件适配,30余接⼝低成本适配实现软硬协同优化

基于⻜桨插件式松耦合统⼀硬件适配⽅案(CustomDevice),仅需适配30余个接⼝,即可实现⼤模型的基础适配,低成本完成训练-压缩-推理全流程;PaddleNLP⽬前⼀站式支持英伟达 GPU、昆仑芯 XPU、昇腾NPU、燧原 GCU 和海光 DCU 等多款芯⽚的⼤模型训练和推理,依托框架多种算⼦接⼊模式和自动并行调优等技术,便捷实现框架与芯片间软硬协同的性能优化。

欢迎开发者前往开源项目主⻚直接体验:

https://github.com/PaddlePaddle/PaddleNLP

亮点⼀:大模型自动并行,千亿级模型训推全流程开箱即用

1. 自动并行降低开发成本,80+模型开箱即用

本次PaddleNLP 3.0升级总计涵盖了80+业界主流的开源⼤语⾔模型,参数量覆盖从0.5B到405B不等,能够灵活满⾜各种场景下的⽤户需求。借助⻜桨3.0版本框架的最新特性,通过统⼀的分布式表示和⾃动并⾏技术,⼤幅简化了组⽹开发的复杂性。分布式核⼼代码量减少50%以上,全分布式策略⽀持的组⽹使得Llama 3.1 405B的SFT与PEFT功能开箱即⽤。


动静统一、自动并行

2. 训压推全流程贯通,模型秒级保存与稳定恢复

在PaddleNLP本次升级中重点强化大语言模型训练-压缩-推理的全流程开发能⼒,基于⻜桨框架3.0版本全新设计的⼀站式开发体验,⼤幅降低学习和使⽤成本。

  • 分布式训练:基于Fleet API实现了全并行策略支持的⾼性能组网,覆盖预训练、精调(SFT/PEFT)和对⻬(RLHF/DPO)三个环节的主流算法,相比HuggingFace Transformers仅支持数据并行的组网实现,⻜桨的组网原生支持张量并⾏和流⽔线并⾏,在低资源精调和⻓⽂训练场景中,具备更⾼的性能上限和可扩展性;
  • 模型压缩:基于PaddleSlim提供的多种大语言模型Post Training Quantization技术,提供WAC(权重/激活/缓存)灵活可配的量化能⼒,与Paddle Inference深度联动,保障压缩后的模型均能利用高性能低比特算子进行推理。
  • 推理部署:基于FastDeploy全场景部署工具,提供了面向服务器场景的高性能推理服务,支持动态插⼊、流式输出、多硬件部署等功能。

业界⽅案在不同并⾏策略和不同结点数量下模型保存的Checkpoint格式不统一,模型量化和推理部署使⽤时需引⼊复杂切分和合并过程,保存和恢复时间⻓。针对这一系列问题,PaddleNLP设计了Unified Checkpoint⼤模型存储⽅案,突破了以下三个技术瓶颈:

  • 统⼀模型存储协议,在模型压缩、动转静、推理部署等环节中⽆需引⼊额外的参数合并流程。
  • 内置参数⾃适应切分与合并功能,恢复训练时并⾏策略或者结点数量变化时可⾃动完成切分与合并,精准还原数据流状态。
  • 支持异步保存与无损压缩,结合存储参数多进程均匀读写分配,实现秒级保存80%存储空间缩减

亮点二:大模型训推一体,提供高性能产业级的精调与对⻬解决方案

1. 精调对⻬性能极致优化,支持128K⻓上下文训练

在精调和对⻬训练中为业界普遍采⽤定⻓Padding策略解决数据⻓度不⼀的问题,该做法随着数据集⻓度分布差异增⼤,⽆效的Padding计算也会同步增加,继⽽导致训练时间增⻓。针对这⼀问题,⻜桨框架独有 FlashMask⾼性能变⻓注意⼒掩码计算结合PaddleNLP中Zero Padding零填充数据流优化技术,通过分组贪⼼的数据填充策略,可最⼤程度消除⽆效Padding的⽐例。同时,ZeroPadding+FlashMask稀疏计算的特性也⼤幅减少了显存开销,使精调训练代码⽆缝从8K扩展到128K的⻓⽂训练。

综合上述优化,相比LLaMA-Factory,PaddleNLP在SFT环节性能提升120%,DPO环节性能提升130%~240%,大幅降低了大模型精调和对⻬环节所需的计算成本。

SFT/DPO训练有效吞吐性能对⽐

2. 训推一体框架特性加速RLHF训练效率

⼈类反馈强化学习(RLHF)通过不断接收⼈类对于模型⾏为的直接评价或示例指导,促使模型效果逐渐逼近⼈类预期的⾏为模式。然⽽,多样化的样本导致待对⻬模型出现奖励信号互斥和策略更新程度难以平衡的现象,进⽽导致模型训练时波动幅度⼤且收敛速度慢,多模型⽣成和训练容易占⽤显存⼤,训练速度慢。针对这⼀系列问题,PaddleNLP基于⻜桨训推⼀体框架特性和多种策略结合的来解决:

  • 训推⼀体:依托⻜桨框架训推⼀体特性,在Policy模型采样⽣成复⽤推理⾼性能融合算⼦,使RLHF训练加速 2.1 倍。
  • 显存优化:基于⻜桨原⽣的张量并⾏/流⽔线并⾏能⼒,结合Offload训练模式控制显存占⽤,单机即可完成训练百亿级别PPO训练。
  • 策略优化:⽀持优势函数平滑、EMA参数策略,提升模型训练稳定性。

综合上述优化,以LLaMA-7B模型为例,PaddleNLP的PPO训练性能达Beaver框架的3.2倍。

RLHF训练策略 

RLHF PPO训练速度对⽐

亮点三:⼤模型多硬件适配,30余接⼝低成本适配实现软硬协同优化

基于⻜桨框架3.0发布的⼤模型多硬件适配技术,通过插件式软硬件松耦合的分层设计,可以低成本完成芯⽚的⼤模型基础适配和软硬协同优化,其具备以下特点:

  • 硬件适配简捷⾼效:不同硬件仅需适配30余接⼝,即可全⾯⽀持⼤模型训压推。
  • 基础算⼦体系完备:通过基础算⼦体系,减少硬件适配所需开发的算⼦数量。
  • ⼤模型性能极致优化:⽀持算⼦融合、显存复⽤等⽅式实现⾼效算⼦流⽔编排,极致显存复⽤优化。
  • 硬件编译接⼊⾃动优化:⽀持通过神经⽹络编译器代码后端 CodeGen 的⽅式接⼊,实现多硬件后端的算⼦⽣成与性能优化。

PaddleNLP⽬前⼀站式⽀持英伟达 GPU、昆仑芯 XPU、昇腾 NPU、燧原 GCU 和海光 DCU 等多款芯⽚的⼤模型训练和推理,依托框架多种算⼦接⼊和适配模式,以及⾃动并⾏调优等技术,便捷实现框架与芯⽚软硬协同的性能优化。

⻜桨⼤模型多硬件适配

当前PaddleNLP 3.0在⽀持英特尔CPU和英伟达GPU的硬件基础上,针对Llama类模型结构已适配了昆仑芯 XPU、昇腾NPU、海光DCU以及燧原GCU等国产硬件的训练和推理,只需要⼀⾏代码即可轻松切换硬件,欢迎与⽣态伙伴⼀起共建更多开源⼤模型的多硬件⽀持!


英特尔 CPU

英伟达 GPU

昆仑芯 XPU

昇腾 NPU

海光 DCU

燧原 GCU

Llama

一行代码切换硬件:

1 # ⼀⾏⾃动切换多种硬件环境  
2 paddle.device.set_device("gpu"# 切换英伟达GPU和海光DCU
3 paddle.device.set_device("xpu"# 切换昆仑芯XPU
4 paddle.device.set_device("npu"# 切换昇腾NPU
5 paddle.device.set_device("gcu"# 切换燧原GCU
6 paddle.device.set_device("cpu"# 切换英特尔CPU

精彩活动预告

为了让您能够迅速且深入地了解飞桨大模型开发套件PaddleNLP 3.0,我们在官方交流群内为大家提供了核心技术解读视频课程。同时为了帮助大家更好地上手体验如何借助PaddleNLP快速构建并部署一个大语言模型,官方交流群内提供了详细的全流程使用教程文档,参与实战营活动体验任务算力全免费,成功打卡全部任务还将额外获得AI Studio算力会员卡,官方技术人员也会提供技术答疑。机会难得,立即扫描下方二维码预约吧!

AINLP
一个有趣有AI的自然语言处理公众号:关注AI、NLP、大模型LLM、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试对对联、作诗机、藏头诗生成器、自动写作等,查询相似词,测试NLP相关工具包。
 最新文章