news 2026/10/17 2:26:59

为什么 InternVL2.5-26B-MPO-AWQ 推理更强?深度解析混合偏好优化(MPO)三大损失

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么 InternVL2.5-26B-MPO-AWQ 推理更强?深度解析混合偏好优化(MPO)三大损失

【免费下载链接】InternVL2_5-26B-MPO-AWQ

项目地址:https://ai.gitcode.com/OpenGVLab/InternVL2_5-26B-MPO-AWQ
点击查看免费下载

InternVL2.5-26B-MPO-AWQ 是 OpenGVLab 推出的 InternVL2.5-26B 多模态大模型(MLLM)的 AWQ 4-bit 量化版本,它推理能力强的秘密,来自训练阶段采用的混合偏好优化(Mixed Preference Optimization,简称 MPO)。本文将带你拆解 MPO 的三大核心损失——DPO 偏好损失、BCO 质量损失、SFT 生成损失,并附上 26B 模型优化前后的评测对比和快速部署指南,一篇看懂这个模型的来龙去脉 📖。

一、认识 InternVL2.5-26B-MPO-AWQ:它由哪些部分构成?

这个模型遵循经典的"ViT + MLP + LLM"三段式架构,就像一条流水线:

组件具体模型职责
视觉编码器InternViT-6B(448px)把图片切成 448×448 的图块,提取视觉特征
投影层MLP(随机初始化)把视觉特征"翻译"成语言模型能懂的向量
语言模型internlm2_5-20b-chat结合图像理解结果,生成自然语言回答

三个组件分别对应仓库中的 modeling_intern_vit.py、modeling_internvl_chat.py(含 MLP 投影层)和 modeling_internlm2.py。

两个值得一提的工程细节:

  • 动态分辨率 + 像素重排:图片按 448×448 图块切分,再经 pixel unshuffle 把视觉 token 数量压缩到原来的 1/4,既看得清细节又省算力;
  • 支持多图和视频输入:这是自 InternVL 2.0 起的关键能力,配置中max_dynamic_patch限制最多 12 个图块,见 config.json。

二、MPO 混合偏好优化的核心思想:为什么只靠 DPO 还不够?

传统的 DPO(Direct Preference Optimization)只能教模型"两个答案里哪个更好",但推理任务需要的是真本事:答案不仅要"相对好",还要"绝对好",而且模型得学会怎么一步步推导出来。

MPO 的关键洞见正是:

一个有效的偏好优化过程,应让模型同时学会三件事——响应之间的相对偏好、单个响应的绝对质量、以及生成优质响应的过程。

因此,MPO 把训练目标定义为三项损失的加权和(详见 README.md):

L = w_p · L_p + w_q · L_q + w_g · L_g DPO偏好损失 BCO质量损失 SFT生成损失

下面逐一拆解这三大损失。

三、MPO 三大损失深度解析

损失一:DPO 偏好损失——学习"相对好坏"

DPO 作为偏好损失L_p,用"chosen(被选)"和"rejected(被拒)"回答对来训练模型,核心是让好答案的概率相对变高,差答案的概率相对变低:

L_p = -log σ( β·log π_θ(y_c|x)/π_0(y_c|x) − β·log π_θ(y_r|x)/π_0(y_r|x) )

其中x是用户问题,y_c、y_r分别是好/差回答,β是 KL 惩罚系数,π_0是训练起点模型。直观理解:模型不再死记硬背标准答案,而是学会比较和取舍。

损失二:BCO 质量损失——学习"绝对质量"

光会"挑更好的"还不够——如果一对答案都很差,比较就没有意义。BCO(Binary Classifier Optimization)作为质量损失L_q,分别对好答案和差答案做独立打分:

L_q⁺ = -log σ( β·log π_θ(y_c|x)/π_0(y_c|x) − δ ) (好答案应得正奖励) L_q⁻ = -log σ( -(β·log π_θ(y_r|x)/π_0(y_r|x) − δ) ) (差答案应得负奖励) L_q = L_q⁺ + L_q⁻

参数δ是奖励偏移量,取前序奖励的滑动平均值,作用是稳定训练过程,防止分数忽高忽低。可以说,BCO 教会了模型一把"绝对标尺",而不只是"相对尺子"。

损失三:SFT 生成损失——学习"如何生成好答案"

推理能力的落地,最终要体现在"写得出完整推导过程"上。SFT 损失L_g就是普通的监督微调(SFT)交叉熵,直接让模型逐词模仿好答案的完整生成路径:

L_g = − log π_θ(y_c|x) / |y_c|

按回答长度做了归一化,避免长答案天然占便宜。

三大损失分工一览表

损失算法教会模型的能力一句话类比
偏好损失L_pDPO判断相对偏好"这两道菜哪道更好吃"
质量损失L_qBCO评估绝对质量"这道菜能打几分"
生成损失L_gSFT复现优质回答过程"亲手把这道菜做出来"

这套"相对 + 绝对 + 生成"的组合拳,就是 MPO(MixedPreferenceOptimization)名字里"Mixed"的由来,配合约 300 万条的 MMPR 多模态推理偏好数据集(MMPR-v1.1)共同驱动了推理能力的跃升。

四、效果验证:MPO 让 26B 模型推理能力提升了多少?

来看官方评测(OpenCompass 基准,数据来自 README.md):

基准测试InternVL2_5-26BInternVL2_5-26B-MPO提升
平均分 Avg.71.672.7+1.1
MMBench v1.184.684.2-0.4
MMStar66.567.2+0.7
MMMU60.757.7-3.0
MathVista(数学推理)68.072.8+4.8
HallusionBench55.855.3-0.5
AI2D86.286.20.0
OCRBench(文字识别)85.491.2+5.8
MMVet(综合主观评测)65.467.1+1.7

📌解读:提升集中在 MathVista(+4.8)、OCRBench(+5.8)和 MMVet(+1.7)上——正是需要"逐步推理 + 精确读图"的任务类型,这与 MPO 三大损失的设计目标完全吻合。

五、AWQ 4-bit 量化:几乎无损的推理加速

"AWQ"代表Activation-aware Weight Quantization(激活感知权重量化):它通过分析激活分布,找出并高精度保护少数"关键权重",其余权重压缩到 4-bit,从而大幅降低显存占用、加速推理。

在 config.json 中可以看到本仓库的量化配置:

参数值含义
bits4权重压缩至 4-bit
group_size128每 128 个权重共享一组量化参数
quant_methodawq量化方法
zero_pointtrue启用零点校正,减少量化误差

得益于 AWQ 的精度保护机制,26B 级别的模型可以在单卡显存更紧张的环境下部署,而推理质量基本保持 MPO 全精度版本的水平。

六、快速部署:LMDeploy 一键推理与 API 服务

推荐使用LMDeploy部署这个 AWQ 量化模型,安装命令如下:

pip install lmdeploy>=0.6.4

最简调用示例(对话模板见 conversation.py,对话格式定义见 tokenizer_config.json):

from lmdeploy import pipeline, TurbomindEngineConfig from lmdeploy.vl import load_image model = 'OpenGVLab/InternVL2_5-26B-MPO-AWQ' image = load_image('your_image.jpg') pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192)) response = pipe(('describe this image', image)) print(response.text)

如果需要在本地保存权重文件,可克隆模型仓库:

git clone https://gitcode.com/OpenGVLab/InternVL2_5-26B-MPO-AWQ

想要打包成 OpenAI 兼容的 API 服务,只需一条命令:

lmdeploy serve api_server OpenGVLab/InternVL2_5-26B-MPO-AWQ --server-port 23333

更多用法(多图推理、批量 Prompt、多轮对话)都在 README.md 的 Deployment 一节中。

七、项目关键文件导航

文件说明
README.md模型介绍、MPO 方法细节、评测表与部署教程
config.json模型主配置:架构、AWQ 量化参数、动态分辨率
modeling_internvl_chat.pyInternVLChatModel 主模型(ViT + MLP + LLM 组装)
modeling_intern_vit.pyInternViT 视觉编码器实现
modeling_internlm2.pyInternLM2 语言模型实现
conversation.py对话模板(internvl2_5 模板)
preprocessor_config.json图像预处理参数(448 裁剪、归一化均值/方差)
generation_config.json生成参数与结束符定义
tokenization_internlm2_fast.py快速分词器(配合 tokenizer.model)

总结

InternVL2.5-26B-MPO-AWQ 的推理实力可以浓缩成一条逻辑链:

  1. MPO 三大损失(DPO 学相对偏好 + BCO 学绝对质量 + SFT 学生成过程)在 MMPR 偏好数据集上联合训练,显著强化了数学推理与 OCR 等核心能力;
  2. AWQ 4-bit 量化在几乎不损失精度的前提下大幅降低显存门槛,让 26B 多模态模型更易落地。

理解了这个"训练目标混合 + 推理量化加速"的双重设计,你就能明白它名字里MPO和AWQ各自的价值——前者决定"聪明程度",后者决定"部署成本" 🚀。

【免费下载链接】InternVL2_5-26B-MPO-AWQ

项目地址:https://ai.gitcode.com/OpenGVLab/InternVL2_5-26B-MPO-AWQ
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 2:24:31

基于MP2642GR-Z与STM32F373RC的串联电芯被动均衡设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 2:24:24

Qwen-Image-2.1开源图像编辑模型:本地部署与ComfyUI工作流实战指南

1. 这次开源到底放了什么料Qwen-Image-2.1 开源发布这件事,我第一反应不是去看榜单,而是先去翻它的模型卡和权重文件。原因很简单,图像编辑这个赛道,榜单排名和实际手感经常是两回事。Arena 图像编辑榜开源第一这个成绩确实亮眼&a…

作者头像 李华
网站建设 2026/10/17 2:23:04

VTK像素拾取完全指南:选择器选型与坐标换算实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 2:21:20

ComfyUI工作流排错:节点依赖、缺失模型与循环链路检查

项目编号:20260728-019。本文代码、测试、文档与示例数据均为独立编写,不包含榜单项目源码或受限素材。为什么需要这个工具 读取ComfyUI风格工作流JSON,提取节点依赖、检测缺失引用和孤立节点,汇总模型文件清单并生成HTML报告。实…

作者头像 李华
网站建设 2026/10/17 2:20:59

MP2642GR-Z主动均衡与MK64FN1M0VDC12协同设计实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华