【免费下载链接】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_p | DPO | 判断相对偏好 | "这两道菜哪道更好吃" |
质量损失L_q | BCO | 评估绝对质量 | "这道菜能打几分" |
生成损失L_g | SFT | 复现优质回答过程 | "亲手把这道菜做出来" |
这套"相对 + 绝对 + 生成"的组合拳,就是 MPO(MixedPreferenceOptimization)名字里"Mixed"的由来,配合约 300 万条的 MMPR 多模态推理偏好数据集(MMPR-v1.1)共同驱动了推理能力的跃升。
四、效果验证:MPO 让 26B 模型推理能力提升了多少?
来看官方评测(OpenCompass 基准,数据来自 README.md):
| 基准测试 | InternVL2_5-26B | InternVL2_5-26B-MPO | 提升 |
|---|---|---|---|
| 平均分 Avg. | 71.6 | 72.7 | +1.1 |
| MMBench v1.1 | 84.6 | 84.2 | -0.4 |
| MMStar | 66.5 | 67.2 | +0.7 |
| MMMU | 60.7 | 57.7 | -3.0 |
| MathVista(数学推理) | 68.0 | 72.8 | +4.8 |
| HallusionBench | 55.8 | 55.3 | -0.5 |
| AI2D | 86.2 | 86.2 | 0.0 |
| OCRBench(文字识别) | 85.4 | 91.2 | +5.8 |
| MMVet(综合主观评测) | 65.4 | 67.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 中可以看到本仓库的量化配置:
| 参数 | 值 | 含义 |
|---|---|---|
bits | 4 | 权重压缩至 4-bit |
group_size | 128 | 每 128 个权重共享一组量化参数 |
quant_method | awq | 量化方法 |
zero_point | true | 启用零点校正,减少量化误差 |
得益于 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.py | InternVLChatModel 主模型(ViT + MLP + LLM 组装) |
| modeling_intern_vit.py | InternViT 视觉编码器实现 |
| modeling_internlm2.py | InternLM2 语言模型实现 |
| conversation.py | 对话模板(internvl2_5 模板) |
| preprocessor_config.json | 图像预处理参数(448 裁剪、归一化均值/方差) |
| generation_config.json | 生成参数与结束符定义 |
| tokenization_internlm2_fast.py | 快速分词器(配合 tokenizer.model) |
总结
InternVL2.5-26B-MPO-AWQ 的推理实力可以浓缩成一条逻辑链:
- MPO 三大损失(DPO 学相对偏好 + BCO 学绝对质量 + SFT 学生成过程)在 MMPR 偏好数据集上联合训练,显著强化了数学推理与 OCR 等核心能力;
- AWQ 4-bit 量化在几乎不损失精度的前提下大幅降低显存门槛,让 26B 多模态模型更易落地。
理解了这个"训练目标混合 + 推理量化加速"的双重设计,你就能明白它名字里MPO和AWQ各自的价值——前者决定"聪明程度",后者决定"部署成本" 🚀。
【免费下载链接】InternVL2_5-26B-MPO-AWQ
相关推荐
InternVL2.5-26B-MPO-AWQ 能做什么?一张图看懂 26B 多模态推理模型的 5 大核心能力
InternVL2.5 26B MPO AWQ 能做什么?一张图看懂 26B 多模态推理模型的 5 大核心能力 InternVL2.5 26B MPO AWQ
Crush 的 agent 工具:让主 Agent 学会"放手"的搜索委派机制
Crush 的 agent 工具:让主 Agent 学会"放手"的搜索委派机制 导读:Crush 内置的 agent 工具允许编码主 Agent 将不确定的搜索
如何本地运行 InternVL2.5-26B-MPO-AWQ?Turbomind 引擎单图/多图推理完整教程
如何本地运行 InternVL2.5 26B MPO AWQ?Turbomind 引擎单图/多图推理完整教程 本文将带你用 LMDeploy 的 Turbomi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考