当前位置: 首页 > news >正文

多模态理解大模型高性能优化丨前沿多模态模型开发与应用实战第七期

一、引言

在前序课程中,我们系统剖析了多模态理解大模型(Qwen2.5-VL、DeepSeek-VL2)的架构设计。鉴于此类模型训练需消耗千卡级算力与TB级数据,实际应用中绝大多数的用户场景均围绕推理部署展开,模型推理的效率影响着用户的实际体验。本次将聚焦工业级部署的核心挑战——多模态理解大模型的高性能推理优化

飞桨(PaddlePaddle)作为国内领先的深度学习框架,在多模态模型的高性能推理方面具有显著优势和亮点:

  • 高效的推理引擎:飞桨提供了高性能推理引擎,能够以低比特量化压缩等方法加速多模态模型的推理过程。
  • 优化的计算算子:飞桨通过算子融合、高效KVCache的注意力算法,使得多模态大模型能够在有限的硬件资源下实现高性能推理。

基于飞桨的高效引擎与算子优化,飞桨多模态开发套件PaddleMIX中实现了多种先进多模态理解模型的高性能推理,支持了Dense架构的Qwen2.5-VL模型以及采用稀疏激活机制的MoE架构的DeepSeek-VL2模型。我们在密集激活Dense模型与稀疏激活MoE架构均有性能优势,在单张图像的BF16精度推理相较于开源框架vLLM最高可提升40%的解码速度!

接下来,本篇文章内容将对飞桨多模态开发套件 PaddleMIX 中多模态理解模型的高性能推理实现方案进行逐步解读。

二、高性能推理优化方案

2.1 飞桨通用优化策略

低比特权重量化技术:权重量化(Weight Quantization)是一种模型压缩和加速技术,通过降低模型权重的数值精度(如从 32 位浮点数转为 8 位整数),显著减少模型大小和计算量,同时尽量保持模型精度。PaddleMIX的高性能推理支持INT4、INT8权重量化技术,通过利用低比特的运算能力进一步对模型推理的过程加速。

多卡并行推理:如今深度学习模型包含的参数量已经亿级别,单张显卡或单个主机难以进行部署,PaddleMIX基于飞桨自研分布式并行功能实现对多模态大模型的分布式推理,支持张量并行(Tensor Parallelism)策略。张量并行通过切分张量计算,将模型计算任务分配到多个显卡设备上,从而降低每个设备的显存压力。其中图1为基于张量并行的MLP层进行前向计算示意图,对一个输入张量 X 经过权重 A 的线性层进行投影,将线性层权重矩阵切分成四份(A1,A2,A3,A4),分别在四个设备上进行X的特征投影,最后将各张显卡上的计算结果通过all_reduce操作汇总得到与非张量并行方式的等价结果。


图1 基于张量并行的MLP层计算示意图

2.2 Qwen2.5-VL 高性能推理

首先简单回顾下 Qwen2.5-VL 的网络结构,整体上还是经典的 ViT + LLM 的串联结构,采用 600M 参数量的 ViT 作为视觉编码器,并且支持图像和视频统一输入,语言模型使用Qwen2.5系列的各种模型大小版本。PaddleMIX套件在Qwen2.5-VL的高性能优化方案中将视觉与语言模型两部分单独优化。视觉模型采用FlashAttention-2的优化方案加速,针对高耗时的语言模型进行细粒度的推理优化:

2.2.1 高性能算子融合

目前主流深度学习框架的默认推理模式采用动态图推理,算子将按顺序逐行执行,默认不自动融合相邻操作主要存在两个问题:一是需要保存更多的中间结果内存开销增加二是频繁在显存读写导致计算效率下降。在推理部署阶段,未融合的动态图效率极低,尤其是长序列生成(如大模型语言模型的逐Token解码)。

为此PaddleMIX套件对Qwen2.5结构的注意力计算、全连接层的注意力计算进行算子融合,从而显著提升多模态大模型的推理效率。

  • 注意力算子融合:Qwen2.5语言模型的推理过程,注意力计算中额外新增RoPE位置编码、KVCache等技术,可以将RoPE应用到Q、K和缓存K、V操作合并到注意力计算过程,减少GPU访问和计算开销,显著提升推理速度
  • FFN算子融合:Qwen2.5语言模型FFN层中包含两个线性投影以及SwiGLU激活函数,其中SwiGLU计算公式为 SwiGLU ( x , W , V , b , c , β ) = Swish β ( x W + b ) ⊗ ( x V + c ) \text{SwiGLU}\left(x, W, V, b, c, \beta\right) = \text{Swish}_{\beta}\left(xW + b\right) \otimes \left(xV + c\right) SwiGLU(x,W,V,b,c,β)=Swishβ(xW+b)(xV+c),x为输入特征,W、V为线性层的投影矩阵,b、c是线性层的偏置项。我们可以将W、V两个线性层权重拼接,将两个线性层的矩阵乘法融合成一次矩阵乘法计算然后再去调用SwiGLU激活函数。


图2 融合后的SwiGLU算子

2.2.2 高效的注意力算法:

传统的多头注意力Multi-Head Attention(MHA) 每个Query有独立的Key和Value投影,Qwen2.5-VL语言模型结构中使用Group Query Attention(GQA)将Query头分组,组内共享Key和Value投影,这种设计降低显存占用,优化了KVCache缓存的KV数量。PaddleMIX基于自研AppendAttention算子加速语言模型部分的GQA注意力计算,实现了高效的KVCache管理、注意力并行计算算法。

  • 高效RoPE融合与KVCache管理:考虑到RoPE位置编码添加属于浮点运算密集型操作,AppendAttention算子中使用CUDA Core实现位置编码添加到并行计算,同时利用CUDA提供并行存储机制将寄存器中融合编码后的KV写入全局内存中,从而加速了RoPE位置编码与QKV的融合。
  • GQA并行加速:AppendAttention中基于Tensor Core实现对GQA的注意力加速,使用NVIDIA GPU 提供的 PTX 内联汇编指令对分块后的矩阵进行加速运算,从而取得极致的矩阵乘法运算加速。


图3 Group Query Attention 示意图

2.2.3 Token拒绝采样推理生成加速:

在多模态大语言模型每一步需要计算整个词表的概率分布(Softmax),并采样下一个Token。这一过程计算成本高,尤其是当词表规模大时(如数万Token),PaddleMIX套件采用Token 拒绝采样改进Token采样策略,减少排序等高耗时操作加速Token的采样速度。

1.Token拒绝采样加速的核心思想

  • 提前拒绝低概率Token:在Softmax完全计算前,通过阈值或启发式方法过滤掉明显低概率的候选Token,仅对高概率Token进行精确计算。
  • 平衡速度与质量:通过动态调整拒绝阈值,在加速生成的同时,避免显著影响生成文本的多样性或合理性。

2.拒绝采样优势

  • 避免全量排序:传统Top-k采样需对所有Token排序,而拒绝采样仅需一次阈值比较,减少计算量。
  • 并行计算优化:结合GPU硬件加速,对Logits进行批量筛选。

2.2.4 Qwen2.5-VL 高性能效果展示

基于上述优化,我们展开与业内主流解决方案的性能测评。Qwen2.5-VL模型的推理时延评测环境使用单卡A800 GPU进行,与现有主流开源框架PyTorch、vLLM进行性能比较。对于不同框架,我们都采用相同的图像、视频和文本作为输入,具体实验设置参考文末项目地址进行推理复现。

首先是单张图像推理,飞桨的BF16推理每秒输出token数目相较于vLLM框架在Qwen2.5-VL-3B-Instruct和Qwen2.5-VL-7B-Instruct模型分别提升20%和46%值得注意的是Qwen2.5-VL-3B-Instruct模型在8bit权重量化设置下解码速度高达155Token/s,取得了极致的推理性能。


图4 Qwen2.5-VL模型单图测速对比

Qwen2.5-VL同样支持视频输入,我们进一步评估视频处理的推理性能。飞桨的BF16推理解码速度相较于vLLM框架在Qwen2.5-VL-3B-Instruct和Qwen2.5-VL-7B-Instruct模型分别提升110%和33%。8bit权重量化技术带来显著性能提升,8bit的解码速度(token/s)相比Paddle BF16精度推理在3B和7B上分别提升29%、33%。


图5 Qwen2.5-VL模型单视频测速对比

2.3 DeepSeek-VL2 高性能推理

2.3.1 优化方案解读

DeepSeek-VL2 的结构也是由三部分核心模块组成:视觉编码器 Vision Encoder、视觉-语言适配器 VL Adaptor 和 DeepSeek-MoE 语言模型。DeepSeek-VL2 在视觉编码器和语言建模部分都有了显著提升,这主要是因为DeepSeek-VL2引入了两项重大改进:动态切片策略,以及采用多头潜在注意力(Multi-head Latent Attention,MLA)机制的 DeepSeek-MoE 语言模型。这些创新使得 DeepSeek-VL2 能够更高效地处理高分辨率视觉输入和文本数据。


图6 DeepSeek-VL2 架构

PaddleMIX对DeepSeek-VL2的语言模型进行高性能优化,总结如下:

1.高效MLA机制

  • 通过多级流水线编排、精细的寄存器及共享内存分配,深度调优MLA算子性能,性能优于业内方法FlashMLA。

2.长序列注意力机制量化加速

  • 长序列推理,由于自注意力机制计算复杂度与Token序列长度的平方成正比,量化和稀疏都能取得非常好的加速。飞桨框架3.0大模型推理集成了自注意力动态量化方案SageAttention,在精度近乎无损的基础上,实现了长序列输入Prefilling阶段的高性能注意力计算。
  • 如下图7所示,SageAttention通过动态的将Q、K矩阵量化为INT8,V矩阵量化为FP8来重新组织注意力计算各阶段的数据类型;在Softmax阶段先将INT32的QK转换为FP32,之后进行QK的反量化,再采用Online Softmax加速计算;将Softmax后的注意力权重P量化为FP8,与经过FP8量化的V矩阵相乘,之后在进行对V的反量化,得到Attention的计算结果O。上述两次量化和反量化过程**在保证精度的前提下,大幅度提升了注意力计算的性能****。**


图7 SageAttention量化流程

2.3.2 高性能展示

在讲解完DeepSeek-VL2的优化策略,我们采取与Qwen2.5-VL相同的环境进行测试,样例覆盖单图、多图测试。 DeepSeek-VL2-small 是一个16B总参数量3B激活参数的混合专家模型,这在推理部署上添加了更大难度。得益于飞桨的高效推理引擎与先进优化策略,我们的BF16推理速度与PyTorch动态图推理相比提升3倍以上,相较于vLLM框架提升10%!


图8 DeepSeek-VL2模型单图测速对比

我们在多张图像推理评测上也极具竞争力,飞桨的BF16精度推理每秒输出token数目相较于vLLM提升11%。其中Paddle 8bit权重量化方法的解码速度在相同设置下最优,平均一秒输出77个Token数目,相比vLLM最高可提速22%!


图9 DeepSeek-VL2模型多图测速对比

三、上手教程

多模态理解模型高性能推理

  • 环境安装
# 以CUDA11.8版本为例安装Paddle
# 3.0版本和nighly build 版本均可以使用(推荐使用paddlepaddle-gpu==3.0.0版本)
# 更多版本可以参考https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/develop/install/pip/linux-pip.html
python -m pip install --pre paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/nightly/cu118/
python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/# 安装PaddleMIX以及PaddleNLP,目前高性能推理只支持PaddleNLP的develop版本
git clone https://github.com/PaddlePaddle/PaddleMIX
cd PaddleMIX
sh build_env.sh --nlp_dev# 此处提供两种paddlenlp_ops安装方法,如果CUDA版本11.8建议建议使用预编译的paddlenlp_ops进行安装
# 如果CUDA版本不是11.8可以手动编译安装paddlenlp_ops
cd csrc
python setup_cuda.py install# 安装pre-build paddlenlp_ops,pre-build 版本paddlenlp_ops目前暂时只支持CUDA11.8版本
wget https://paddlenlp.bj.bcebos.com/wheels/paddlenlp_ops-ci-py3-none-any.whl -O paddlenlp_ops-0.0.0-py3-none-any.whl
pip install paddlenlp_ops-0.0.0-py3-none-any.whl
  • Qwen2.5-VL高性能推理
# 在PaddleMIX目录下运行以下命令
sh deploy/qwen2_5_vl/scripts/qwen2_5_vl.sh
  • DeepSeek-VL2高性能推理
sh deploy/deepseek_vl2/scripts/deepseek_vl2.sh

四、总结

本文介绍了基于PaddleMIX套件的多模态模型的高性能推理实现,在推理性能上取得显著提升,上手容易降低了模型部署成本!其中多模态理解模型以 Qwen2.5-VL 和 DeepSeek-VL2 为例逐步拆解飞桨高性能优化策略,两个模型高性能推理均优于vLLM框架。

百度飞桨团队推出的PaddleMIX套件现已支持 Qwen2.5-VL、DeepSeek-VL2 这两个热门模型的高性能推理,通过深入解析其代码实现,研究人员和开发者能够更透彻地理解模型的核心技术细节与创新突破。我们诚挚推荐您访问AI Studio平台的专项教程(点击以下链接🔗),通过实践演练掌握前沿多模态模型的开发与应用技巧。

AI Studio教程链接:

https://aistudio.baidu.com/projectdetail/8964029

论文链接:

Qwen2.5-VL Technical Report

https://arxiv.org/abs/2502.13923

DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding

https://arxiv.org/pdf/2412.10302

项目地址:

Qwen2.5-VL:

https://github.com/PaddlePaddle/PaddleMIX/tree/develop/deploy/qwen2_5_vl

DeepSeek-VL2:

https://github.com/PaddlePaddle/PaddleMIX/tree/develop/deploy/deepseek_vl2

为了帮助您通过解析代码深入理解模型实现细节与技术创新,基于PaddleMIX框架实操多模态高性能推理,我们将开展“多模态大模型PaddleMIX产业实战精品课”,带您实战操作多模态高性能推理。5月26日正式开营,报名即可免费获得项目消耗算力(限时一周),名额有限,立即点击链接报名:https://www.wjx.top/vm/wpv02PB.aspx?udsid=554465

在这里插入图片描述

http://www.xdnf.cn/news/611587.html

相关文章:

  • WPF性能优化之延迟加载(解决页面卡顿问题)
  • Python面向对象编程:封装、继承与多态
  • 七彩喜适老化改造:让每个空间成为长者尊严的守护者
  • Jouier 普及组十连测 R4
  • leetcode-快慢指针系列
  • 利用chat搜索需求相关视频链接
  • 45道工程模块化高频题整理(附答案背诵版)
  • `ol/proj`简介
  • 在日本,书法也是美术
  • WebSphere Application Server(WAS)8.5.5教程第十二讲:EJB
  • Zephyr OS 使能和失能蓝牙协议栈的操作
  • [linux] git强行拉取并覆盖
  • VR全景制作方法都有哪些?需要注意什么?
  • IT | 词汇科普手册Ⅱ
  • Leetcode 3313. 查找树中最后标记的节点
  • FreeGPT+内网穿透外网远程连接使用,搞定ChatGPT访问难题!
  • LPRNet实现车牌识别并完成ONNX和TensorRT推理
  • 怎么判断一个Android APP使用了Electron 这个跨端框架
  • 【动态规划】5 从一次函数出发推导斜率优化dp
  • VS Code-i18n Ally国际化插件 配置百度翻译
  • 【北京盈达科技】GEO优化中的多模态了解
  • 基于 Spring Boot + Vue 的墙绘产品展示交易平台设计与实现【含源码+文档】
  • MySQL备份工具:XtraBackup
  • Vue3 + Element Plus 中修改表格当前选中行的颜色
  • Linux——网络基础概念
  • multipart/form-data
  • 光伏电站及时巡检:守护清洁能源的“生命线”
  • 图解深度学习 - 深度学习的工作原理
  • PostgreSQL中的权限管理简介
  • 【49. 字母异位词分组】