飞桨大模型套件:一站式体验,性能极致,生态兼容

news2024/10/2 8:33:11

3892001d45ed7618e12eda86fa96409b.gif

在Wave Summit 2023深度学习开发者大会上,来自百度的资深研发工程师贺思俊和王冠中带来的分享主题是:飞桨大模型套件,一站式体验,性能极致,生态兼容。

65a83dc4df570af4a0f414ab2d6cf57e.jpeg

c004358efd65cb9353e0374a755cd8b6.png

大语言模型套件PaddleNLP

众所周知PaddleNLP并不是一个全新的模型库,自2021年以来PaddleNLP一直是国内头部的开源NLP库,在GitHub上拥有超过一万的Star。大模型时代,PaddleNLP升级成为飞桨大语言模型套件,同时秉承了一站式体验、性能极致、生态兼容的设计理念。

下面是飞桨大语言模型套件的全景图。中间是飞桨的核心深度学习框架,在其之上是飞桨针对大模型场景专门打造的全流程工具链。工具链里面主要分为五环,预训练、精调、压缩、推理、部署。从模型和工具链的角度,飞桨希望能够打造一个统一的全流程工具链,去覆盖尽可能多的模型。不管是百度自研的文心大模型,还是社区的第三方大语言模型,都尽可能去支持并沿用这套统一的方案。硬件方面,飞桨也希望能够发挥百度既有的硬件生态,让大模型在不同的平台上都跑起来。

4d98d16ac25d9aebd2ea55384c84eadc.jpeg

一站式体验

不论工程优化或者前沿算法多么复杂,都可以在飞桨解决端到端的问题,不需要用户到处去找开源库,去攒自己的方案。百度飞桨在2021年就发布了业界首创的4D混合并行技术,并且依赖这套技术数次在国际权威的Benchmark MLPerf Training上做到了世界范围的性能第一。

因为大模型对于极致性能的要求,飞桨也将这套分布式的技术加入了PaddleNLP的全场景Trainer。让用户可以通过简单的参数化配置,控制复杂的并行策略。

如下图右边的代码片段。导入飞桨框架和PaddleNLP套件,简单定义一个4D混合并行配置,初始分布式环境,最后通过Auto API来加载这个模型。加载回来的模型会根据用户所提供的分布式配置调整结构,后续就可以直接开始训练或者推理。

80a6d18013c097363a25fff02817ae4f.jpeg

关于精调部分,飞桨大模型内置了业界主流的两种高效精调算法,LoRA和Prefix Tuning。再搭配上面说到的分布式策略,单机就可以做到微调千亿以上的模型。同样,飞桨也提供了一套统一的使用方法。虽然LoRA和Prefix各有优劣,但他们使用的方法是基本一致的。用户只用定义一个Config,就可以把Auto API加载回来的模型自动转为LoRA模型或者Prefix模型,然后便可直接开始训练。高效精调策略的核心优势之一是大大降低了大模型训练的门槛,一般情况下,它跟普通的精调SFT相比,硬件门槛只有之前的1/4左右。

607109fb0dd06e9dc4d118e3dbd07106.jpeg

量化压缩方面,飞桨也内置了业界两种比较主流的量化算法,GPTQ和SmoothQuant。同时飞桨还开源了PaddleSlim团队自研的自适应Shift-SmoothQuant算法,这个算法能够解决一些SmoothQuant无法解决的量化Case。比如当一个模型的权重和激活的异常值发生在同一个通道的时候,一般SmoothQuant算法没有很好的方法去得到一个Scale,从而导致量化的损失。而PaddleSlim提出的分段搜索是一个很好的解决方案。

8dfddf7859755dc170f7049c08278814.jpeg

依托PaddleSlim全面实现了主流大模型的无损量化,从下图可以看到,不论是百度自研的ERNIE Bot Turbo,还是开源的ChatGLM、Bloomz、LLaMA等模型,不论是直接量化大模型或者先精调大模型再量化,都可以把量化的损失控制在一个点以内。

8bf34a7aa429357389c25fbcae316bed.jpeg

性能极致

预训练阶段,在飞桨框架以及大模型的Transformers结构上都做了全环节的算子融合。比如每个大模型都有一个不可或缺的Self-Attention层,将它的MultiHeadAttention层,还有FFN分层,甚至最后的Optimizer都做了算子融合,这让飞桨和业界主流的预训练库Megatron LM比起来有了一定的性能优势。

cf8532b0c239623f113951144082c076.jpeg

到了精调阶段,在算子融合的基础上,进一步对变长数据流做了比较极致的优化,大大提高了Token的有效率,其方法就是降低Pad Token的占比。通过上图可以看到飞桨和Hugging Face的Transformers比,在各个不同的模型结构上,都有一倍左右的性能优势。

ac60ac2987696d9473371fa80d1cb7ce.jpeg

自文心一言上线以来,推理部署性能达原先30多倍,这也是负责飞桨推理的同学的功劳。飞桨大模型套件也整合了一部分在文心一言上使用过的优化点。比如推理算子融合,它让飞桨在对齐Transformers生成API和使用体验的情况下,提升三倍以上的性能优势。同时,得益于自研的动态插入技术,静态图推理部署也是业界领先。和几个主流的开源部署代码库比,不管吞吐还是实验都是业界最好的。

eac59a550cb8cf5b2362cd201c5b5657.jpeg

生态兼容

一直以来,不管是飞桨还是PaddleNLP,都有生态兼容的理念。现在也有非常多优秀的开源大模型,大家都能够在自己发布的大模型上顺畅的走通训压推流程。而目前,应该只有飞桨大模型套件可以做到使用同样一套工具去覆盖业界主流模型。此外,飞桨还基本对齐Hugging Face Transformers的API,也支持比较方便的去加载Hugging Face社区上的模型权重。

19e8a6dba9ed43c7fab8f78462ca9dcb.jpeg

硬件生态是生态建设的重要一环。迄今为止,飞桨已经适配了超过40家的芯片/IP厂商,也成功发布了硬件共创计划。大模型时代的到来,给硬件带来新的挑战,飞桨大模型套件在国产硬件适配的道路上进行了很多优化,实现了芯片层、框架层和模型层的联动。比如基于飞桨和昆仑芯 ,实现了一套高性价比的国产大模型推理方案。能够在ERNIE Bot Turbo上使用更大的Batch Size,承载更高的QPS,以及产出更低的数据延迟。

7d4ce24397985153b62b7cb5992910df.jpeg

c51ff578325d3cab739c2790ac40357f.png跨模态大模型套件PaddleMIX

跨模态大模型技术发展趋势

跨模态的大模型被认为是从限定领域的弱人工智能,通向通用人工智能的一条探索路径,它更符合人类通过视觉、听觉等不同的感官去认知世界的过程。比如下图展现的这只狗,我们可以通过图片、文字、视频、音频的形式去描述它。目前跨模态大模型前沿的进展就包括了像以图生文为首的理解类任务,也包括以文生图为首的生成类任务。近期也出现了大量融合其他模态的跨模态大模型,这是必然的趋势之一。这些不同模态的增多也在促进创新应用的增多,另一个趋势是模型体量的增大。从下图右边部分可以看到,随着模型体量的增大,视觉问答的效果是不断提升的。

fdca4e4a528a8b9e69f87364f8afd15f.jpeg

结合前沿的发展趋势可以总结出,核心的技术要素主要分为开发、性能以及应用。目前跨模态大模型的开发主要是以大语言模型为基础,开发的一个核心是高效地融合大语言模型。而极致的性能优化可以为大模型带来成本的大幅降低。社区当中已经涌现了大量的跨模态应用,不同模态的融合也为更多的创新应用提供了空间。

跨模态大模型套件PaddleMIX

下面是PaddleMIX的全景图。依托飞桨的核心框架,PaddleMIX推出了一套完整的大模型开发工具链。从开发,训练,精调到推理部署,上层的模型也覆盖了像图片、文本、音频、视频等不同的模态。模型库划分为多模态预训练和扩散模型两部分,其中包含了一些主流的的跨模态算法,结合这些不同的跨模态模型,PaddleMIX也推出了大模型的应用工具集,其中包括了文生图的应用pipeline,以及跨模态任务流水线AppFlow。

0428e110425cbe34f6eeacba8240811e.jpeg

PaddleMIX的特点跟PaddleNLP大语言模型套件保持一致,它也具备一站式模型的开发体验,以及极致的训练、推理性能,同时保持生态的兼容。

在一站式开发上,PaddleMIX针对图文预训练提供了一套完整的预训练开发流程,从CLIP系列的图文特征对齐,到以BLIP-2为代表的通过衔接模块连接大语言模型,同时冻结视觉语言模块来实现低成本、高效的跨模态预训练。最后是以MiniGPT4为代表的指令微调任务,去实现像VQA/Caption这种跨模态的下游任务。这里,不同阶段涉及的模型代码权重在PaddleMIX当中有做充分的打通,以提高跨模态预训练的开发效率。

对于模型解耦、兼容PaddleNLP的各类大语言模型,举了两个典型的结构,BLIP-2分为视觉、衔接以及语言模块,这些不同的模块都可以独立地进行配置,语言模型也可以灵活地进行替换。扩散模型更多的以pipeline的形式来实现不同的生图功能,这里会通过像unet,还有VAE这样独立的子模型,以及不同策略来实现循环采样。

dc773210786c1f53aa8b5b7e51e8c1eb.jpeg

性能方面,结合飞桨核心框架做了一系列极致优化。训练侧,基于Flash Attention以及Fuse Linear的模块实现了BLIP-2在单机4卡的性能超越了Pytorch 25%。Stable Diffusion的训练性能超越了Pytorch 40%。推理侧,通过不同粒度的算子融合以及组网逻辑的一系列优化,在SD方面实现了出图速度达到Pytorch的四倍,它的显存占用也仅为TensorRT的43%。像MiniGPT-4的推力达到了加速1.6倍的效果,Grounded SAM较Pytorch的性能也提升了22%。

e6ae0db9797b00b2447797872f0f6db0.jpeg

生态方面,PaddleMIX也提供了一套独立的PPDiffusers扩散模型工具箱,通过兼容Web UI和Civital以支撑这些复杂的Prompt,还能和万余种权重在众多场景中完成生成任务。权重生态方面,PPDiffusers也支持了Civital,提供超过3万余个LORA权重,来实现各类的个性化文生图模型。

94fe3458f9b2efef3a98ba14ed11159f.jpeg

工具方面,兼容了WebUI来实现丰富的功能,比如可控生成、图像编辑。除此之外,PaddleMIX还提供了AppFlow跨模态任务流水线,它的目的是为了串联文生图、图生文这样的一些基础任务,来实现更加复杂的跨模态应用。比如基于对话的图像编辑系统,还有自动数据标注系统等等。同时,AppFlow也具备简单易用的特点,开发者们可以很方便的调用代码实现一键预测。

PaddleMIX应用体验

目前基于PaddleMIX所实现的这些特色应用已经上线到飞桨AI Studio星河社区,包括艺术风格二维码的生成,生成属于自己的特色二维码,这里推荐大家把链接复制到PC端,会有更好的使用体验。下图右下角是一个叠图应用,可以基于输入的两张图片和特定的提示词,自定义融合生成一张全新的图片。当然,后续PaddleMIX也会陆续上新更多的特色应用,也期待更多开发者们集思广益,来AI Studio上创建属于自己的大模型应用。

d36e4ae76e1f0b05cc05c3816deb0fc6.jpeg

本篇文章根据WAVE SUMMIT 2023深度学习开发者大会讲稿整理而成

81119aae4f4f6af0c370e5613dd56e78.png

87f912d82db8357bb693386b65f7de4b.jpeg

62baac8fe40edc6fea72d8a26b82bab1.jpeg

56b6964dbfa51d4b25a6faac80e408d4.jpeg

cbdb3b0d69d471f4d841fd8efcbbc04e.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Google-CTF-2016-Stego.pcap数据包解析

Google-CTF-2016(a-cute-stegosaurus-100) 前言:别人发的题目 随便看看 记录一下解题过程! 知识点: 在报文段中有 6Bit 的状态控制码, 分别如下tcp URG:紧急比特(urgent)&#x…

机械臂抓取的产业落地进展与思考

工业机械臂是一种能够模拟人类手臂动作的机械装置,具有高精度、高速度和高灵活性的特点。近年来,随着人工智能和机器人技术的快速发展,机械臂在工业生产、物流仓储、医疗护理等领域得到了广泛应用。机械臂抓取技术作为机械臂的核心功能之一&a…

C语言进阶---程序环境和预处理

C语言进阶---程序环境和预处理 前言一、程序的翻译环境、执行环境二、详解:C语言程序的编译链接三、预定义符号介绍四、预处理指令 #define五、宏和函数的对比(思维导图)六、命令定义、预处理指令 #include #undef1.命名约定2.命令行定义 七、…

撤销git本地修改(万能)

使用 git reflog 和 git reset 命令。 git reflog 命令可以查看 Git 中所有的提交历史和分支移动情况,包括已经删除的提交。 您可以通过这个命令找到git操作时间线上的某一个节点,也就是git提交快照的Hash值。 假设您要回滚的提交的哈希值是 e9769f5…

轻松实现时间录入自由!如何在Microsoft Word中轻松插入格式化的日期和时间

在文档中插入当前日期和时间有几个原因。你可能希望将其插入信函或页眉或页脚中。无论是什么原因,Word都可以轻松地将日期和时间插入文档。 如果希望在打开或打印文档时自动更新日期和时间,可以将其作为自动更新的字段插入。该字段也可以随时手动更新。…

【虚拟机】桥接模式下访问外网

目录 一、桥接模式的作用原理 二、配置桥接模式实现外网访问 1、设置 VMnet0 要桥接的网卡 2、虚拟机选择 VMnet0 网卡 3、手动配置虚拟机IP 一、桥接模式的作用原理 桥接模式相当于在当前局域网里创立了一个单独的主机,该主机桥接到宿主主机的网卡&#xff0…

TPU编程竞赛|Stable Diffusion大模型巅峰对决,第五届全球校园人工智能算法精英赛正式启动!

目录 赛题介绍 赛题背景 赛题任务 赛程安排 评分机制 奖项设置 近日,2023第五届全球校园人工智能算法精英赛正式开启报名。作为赛题合作方,算丰承办了“算法专项赛”赛道,提供赛题「面向Stable Diffusion的图像提示语优化」&#xff0c…

ORB-SLAM2运行自己的数据集进行定位教程

ORB-SLAM2只做定位的话,精度还是挺准确的,所以用单目摄像头录制视频,制作自己的数据集跑一下,看看定位精度,将过程加以记录。 文章目录 一、系统配置二、制作数据集1、脚本编写2、配置文件编写3、录制视频素材&#x…

亚马逊、速卖通卖家旺季攻略:抢占旺季销售先机!

随着11月的到来,海外跨境电商又将迎来一年中最重要的营销季节。 11月营销节点 1. 黑色星期五(Black Friday):11月的第四个星期五 作为西方传统节日,黑色星期五通常位于11月第四个星期五,是购物狂欢的黄金…

LeetCode刷题笔记【35】:动态规划专题-7(爬楼梯、零钱兑换、完全平方数)

文章目录 前置知识70. 爬楼梯 (进阶)题目描述解题思路代码 322. 零钱兑换题目描述解题思路代码 279.完全平方数题目描述解题思路代码 总结 前置知识 今天的三道题都聚焦完全背包问题, 关于完全背包, 基础性的思路可以参考上一篇文章 本文的很多操作就是…

4.Docker 搭建 redis6

1.下载redis docker pull redis:6.2.62.创建需要挂载的宿主机文件夹 mkdir -p /data/redis/conf mkdir -p /data/redis/data3.配置redis 切换到/data/redis/conf文件夹下,创建redis.conf,复制redis.conf配置文件内容到redis.conf文件中,然后按下键盘 …

多层包的java程序使用命令行编译、运行、打包

对于没有包层级的java程序,用命令行进行编译、运行、打包很简单。对于多层级包的java程序会有所不同。以如下程序为例 package HeadFirstJava.chapter01.guessGame;public class GameLanucher {public static void main(String[] args) {GuessGame game new Guess…

CentOS停服遭替代,这些操作差异,你了解了吗?

背景 随着 CentOS停服,各个行业的运维都在寻找各自的替代方案,考虑的出发点有: 新操作系统是否兼容CentOS,避免太大的操作差异; 新操作系统是否为信创,其具体收费情况如何; 新操作系统是否支…

亚马逊电子产品日本站PSE认证,TELEC认证如何办理?

日本市场准入认证——PSE认证,TELEC认证 日本作为第三大经济体国家,是中国商品对外出口的最多的国家之一,无论是在日本亚马逊销售还是在日本当地销售,都需要符合日本市场准入许可。需要注意的是日本的电气安全标准都是自主特色的…

2023最新站长必备在线工具箱系统源码优化修复版

2023最新站长必备在线工具箱系统源码 含上百款工具 带后台版本 自适应模板 优化修复版 搭建看了一下,系统一切正常可用,就是后台登录方式使用的是QQ扫码登录的,建议有能力的可以改一改 此工具箱系统源码还是比较成熟的,虽然没有那么花里胡哨,但贵在简洁大…

软件项目管理【第一章:软件项目管理概述/项目启动】

目录 一、软件项目管理概述 1.项目 2.项目管理 3.项目管理框架 3.整个软件项目管理概述 二、项目启动 1.项目类型 2.初始化项目分析 3.生存期模型(常用) 4.项目立项 一、软件项目管理概述 1.项目 项目的定义: 是为了创造一个唯一的产品或提供一个唯一的…

N9030B是德科技信号分析仪

181/2461/8938它能够实现对复杂信号的实时捕获、分析和处理。Keysight N9030B采用了最先进的技术和设计,为工程师和科学家们提供了一系列强大的功能,帮助他们更好地进行信号分析,以满足不断变化的应用需求。 Keysight N9030B采用了全新的硬件…

TensorFlow入门(十二、分布式训练)

1、按照并行方式来分 ①模型并行 假设我们有n张GPU,不同的GPU被输入相同的数据,运行同一个模型的不同部分。 在实际训练过程中,如果遇到模型非常庞大,一张GPU不够存储的情况,可以使用模型并行的分布式训练,把模型的不同部分交给不同的GPU负责。这种方式存在一定的弊端:①这种方…

COM组件IDispatch操作

IDispatch 组件接口,继承IUnkown,实现了反射机制,可以通过invoke调用dll函数 一般执行过程需要GetIDsOfNames、InvokeHelper函数执行,queryinterface查询获取对象 检查GetIDsOfNames返回的dispid是否正确 COleDispatchDriver 单…

Windows搭建FTP服务器

以win10为例: 安装FTP服务器支持和IIS管理平台。 设置->应用->程序与功能->启用或关闭windows功能-> Internet Infomation Services->勾选【FTP服务器】和Web管理工具的【IIS管理控制台】-> 点击确定等待安装完成。 打开IIS管理器 此电脑-右键…