近日,一个重量级的开源多模态大语言模型(MLLM)新星横空出世。由上海人工智能实验室、商汤科技研究院等多家机构联合开发的InternVL3模型,以其卓越的性能和创新的架构设计,正在重新定义开源多模态模型的发展边界。
🔥🔥🔥本篇笔记所对应的视频:www.bilibili.com/video/BV1QD...
InternVL3模型采用了一种称为"原生多模态预训练"的创新方法,与传统模型不同,它没有先训练纯文本大语言模型再适配视觉输入,而是在单一预训练阶段同时从多样化的多模态数据和纯文本语料中共同学习语言能力和多模态能力。这种统一的训练范式有效解决了传统MLLM训练流程中常见的复杂性和对齐挑战。
技术创新点
InternVL3模型的核心技术创新包括:
- 可变视觉位置编码(V2PE) :该模型引入了可变视觉位置编码技术,为视觉令牌使用更小、更灵活的位置增量,从而支持更长的多模态上下文,而无需过度扩展位置窗口。
- 混合偏好优化(MPO) :为解决模型在推理过程中可能出现的分布偏移问题,研究团队采用了混合偏好优化技术,引入来自正负样本的额外监督,以使模型响应分布与真实分布保持一致,从而提高推理性能。
- 测试时扩展策略:InternVL3采用了Best-of-N评估策略并使用VisualPRM-8B作为评判模型,为推理和数学评估选择最佳响应,显著提升了模型的整体性能。
性能突破
根据研究团队的广泛经验评估,InternVL3在多种多模态任务上表现出色。特别值得一提的是,InternVL3-78B在MMMU基准测试中取得了72.2分的成绩,创下了开源MLLM的新纪录,其能力与领先的专有模型(包括ChatGPT-4o、Claude 3.5 Sonnet和Gemini 2.5 Pro)相当,同时保持了强大的纯语言能力。
这一成绩标志着开源多模态模型首次在这一重要基准上突破70%的门槛,相比于之前的InternVL 2.5模型有了显著提升。
广泛的应用场景
与前代InternVL 2.5相比,InternVL3不仅在多模态感知和推理能力方面表现更佳,还将其多模态能力进一步扩展到工具使用、GUI代理、工业图像分析、3D视觉感知等领域。
这使得InternVL3在实际应用中具有更广泛的价值,从基础图像理解到复杂的跨模态推理任务,都能表现出色。
开源贡献
遵循开放科学原则,研究团队将公开发布InternVL3的训练数据和模型权重,以促进下一代MLLM的进一步研究和开发。这一举措对开源AI社区具有重要意义,为研究人员和开发者提供了宝贵的资源。
未来展望
随着多模态大语言模型的不断发展,InternVL3的创新技术和优异性能为未来AI系统的发展提供了新的思路和参考。我们期待看到更多研究团队基于这一开源模型进行创新,推动多模态AI技术在各行各业的落地应用。
LMDeploy文档
Windows系统开启wsl:
learn.microsoft.com/zh-cn/windo...
🔥Open WebUI安装
arduino
pip install open-webui
open-webui serve
访问:<http://localhost:8080/>
🔥本地部署详细命令
bash
# AI超元域频道原创视频
# 安装Miniconda(如果尚未安装)
wget <https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh> -O ~/miniconda.sh
bash ~/miniconda.sh -b -p $HOME/miniconda
eval "$($HOME/miniconda/bin/conda shell.bash hook)"
echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# AI超元域频道原创视频
conda create -n lmdeploy python=3.11 -y && conda activate lmdeploy
pip install lmdeploy partial_json_parser timm
# serve
lmdeploy serve api_server OpenGVLab/InternVL3-14B-Instruct --backend turbomind --server-port 23333 --tp 2 --chat-template internvl2_5
# 调用api
from openai import OpenAI
client = OpenAI(api_key='YOUR_API_KEY', base_url='<http://0.0.0.0:23333/v1>')
model_name = client.models.list().data[0].id
response = client.chat.completions.create(
model=model_name,
messages=[{
'role':
'user',
'content': [{
'type': 'text',
'text': 'describe this image',
}, {
'type': 'image_url',
'image_url': {
'url':
'<https://modelscope.oss-cn-beijing.aliyuncs.com/resource/tiger.jpeg>',
},
}],
}],
temperature=0.8,
top_p=0.8)
print(response)