CogVLM2重磅发布:新一代多模态大模型革新视觉语言理解能力
如上图所示,这是CogVLM2模型的官方标志。该标志以简洁现代的设计风格展现了模型的技术属性,蓝色主调象征人工智能的科技感与可靠性,齿轮与脑图元素的结合直观体现了模型在视觉理解与语言处理方面的核心能力,为开发者和研究者提供了直观的品牌识别。
👋 微信交流 · 💡在线演示 · 🎈项目主页 · 📑 学术论文
📍在智谱AI开放平台体验更大规模的CogVLM模型。
新一代多模态模型技术解析
我们正式推出全新一代CogVLM2系列模型,并开源了基于Meta-Llama-3-8B-Instruct构建的两个模型版本。相较于上一代CogVLM开源模型,CogVLM2系列开源模型实现了多维度的显著升级:
- 在
TextVQA、DocVQA等多个权威评测基准上取得大幅性能提升 - 支持8K超长文本上下文理解能力
- 图像分辨率处理能力提升至1344×1344像素
- 首次提供同时支持中英文双语的开源模型版本
以下表格详细展示了CogVLM2开源模型家族的核心参数配置:
| 模型名称 | cogvlm2-llama3-chat-19B | cogvlm2-llama3-chinese-chat-19B |
|---|---|---|
| 基础模型 | Meta-Llama-3-8B-Instruct | Meta-Llama-3-8B-Instruct |
| 支持语言 | 英文 | 中文、英文 |
| 模型规模 | 190亿参数 | 190亿参数 |
| 核心功能 | 图像理解、对话交互 | 图像理解、对话交互 |
| 文本处理长度 | 8K tokens | 8K tokens |
| 图像分辨率支持 | 1344×1344 | 1344×1344 |
多模态能力评测报告
CogVLM2开源模型在各项评测指标上均超越上一代CogVLM模型,其卓越性能已可与部分闭源商业模型相媲美。以下是在标准多模态评测基准上的对比结果:
| 模型名称 | 是否开源 | 语言模型规模 | TextVQA | DocVQA | ChartQA | OCRbench | VCR_EASY | VCR_HARD | MMMU | MMVet | MMBench |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CogVLM1.1 | ✅ | 7B | 69.7 | - | 68.3 | 590 | 73.9 | 34.6 | 37.3 | 52.0 | 65.8 |
| LLaVA-1.5 | ✅ | 13B | 61.3 | - | - | 337 | - | - | 37.0 | 35.4 | 67.7 |
| Mini-Gemini | ✅ | 34B | 74.1 | - | - | - | - | - | 48.0 | 59.3 | 80.6 |
| LLaVA-NeXT-LLaMA3 | ✅ | 8B | - | 78.2 | 69.5 | - | - | - | 41.7 | - | 72.1 |
| LLaVA-NeXT-110B | ✅ | 110B | - | 85.7 | 79.7 | - | - | - | 49.1 | - | 80.5 |
| InternVL-1.5 | ✅ | 20B | 80.6 | 90.9 | 83.8 | 720 | 14.7 | 2.0 | 46.8 | 55.4 | 82.3 |
| QwenVL-Plus | ❌ | - | 78.9 | 91.4 | 78.1 | 726 | - | - | 51.4 | 55.7 | 67.0 |
| Claude3-Opus | ❌ | - | - | 89.3 | 80.8 | 694 | 63.85 | 37.8 | 59.4 | 51.7 | 63.3 |
| Gemini Pro 1.5 | ❌ | - | 73.5 | 86.5 | 81.3 | - | 62.73 | 28.1 | 58.5 | - | - |
| GPT-4V | ❌ | - | 78.0 | 88.4 | 78.5 | 656 | 52.04 | 25.8 | 56.8 | 67.7 | 75.0 |
| CogVLM2-LLaMA3 | ✅ | 8B | 84.2 | 92.3 | 81.0 | 756 | 83.3 | 38.0 | 44.3 | 60.4 | 80.5 |
| CogVLM2-LLaMA3-Chinese | ✅ | 8B | 85.0 | 88.4 | 74.7 | 780 | 79.9 | 25.1 | 42.8 | 60.5 | 78.9 |
所有评测结果均在不使用外部OCR工具的条件下获得("纯像素输入"模式)
从评测数据可以看出,CogVLM2-LLaMA3在DocVQA任务上以92.3的得分位居榜首,超过QwenVL-Plus和GPT-4V等模型;中文优化版本CogVLM2-LLaMA3-Chinese则在TextVQA(85.0)和OCRbench(780)两项指标上创造新高。特别值得注意的是,在VCR视觉常识推理任务中,CogVLM2-LLaMA3的EASY子集得分达到83.3,显著领先于其他开源模型,展示了其在复杂场景理解方面的突出优势。
快速上手指南
以下是使用CogVLM2模型进行图像对话交互的简明示例代码。更多使用场景和高级功能请参考项目GitHub仓库。
import torch
from PIL import Image
from transformers import AutoModelForCausalLM, AutoTokenizer
# 模型路径配置
MODEL_PATH = "THUDM/cogvlm2-llama3-chinese-chat-19B"
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
# 根据GPU算力自动选择数据类型
TORCH_TYPE = torch.bfloat16 if torch.cuda.is_available() and torch.cuda.get_device_capability()[0] >= 8 else torch.float16
# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained(
MODEL_PATH,
trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
torch_dtype=TORCH_TYPE,
trust_remote_code=True,
).to(DEVICE).eval()
# 纯文本对话模板
text_only_template = "一段好奇的用户与人工智能助手的对话。助手需要给出有帮助、详细且礼貌的回答。用户:{} 助手:"
while True:
# 输入图像路径
image_path = input("请输入图像路径 >>>>> ")
if image_path == '':
print('未输入图像路径,将进入纯文本对话模式。')
image = None
text_only_first_query = True
else:
try:
image = Image.open(image_path).convert('RGB')
print(f"成功加载图像: {image_path}")
except Exception as e:
print(f"图像加载失败: {e}")
continue
history = [] # 对话历史记录
while True:
query = input("人类: ")
if query == "clear":
break # 清空对话历史
# 构建对话输入
if image is None:
if text_only_first_query:
query = text_only_template.format(query)
text_only_first_query = False
else:
# 拼接历史对话
conversation_history = ''
for _, (old_query, response) in enumerate(history):
conversation_history += old_query + " " + response + "\n"
query = conversation_history + "用户: {} 助手:".format(query)
# 构建模型输入
if image is None:
input_by_model = model.build_conversation_input_ids(
tokenizer,
query=query,
history=history,
template_version='chat'
)
else:
input_by_model = model.build_conversation_input_ids(
tokenizer,
query=query,
history=history,
images=[image],
template_version='chat'
)
# 准备输入数据
inputs = {
'input_ids': input_by_model['input_ids'].unsqueeze(0).to(DEVICE),
'token_type_ids': input_by_model['token_type_ids'].unsqueeze(0).to(DEVICE),
'attention_mask': input_by_model['attention_mask'].unsqueeze(0).to(DEVICE),
'images': [[input_by_model['images'][0].to(DEVICE).to(TORCH_TYPE)]] if image is not None else None,
}
# 生成配置
gen_kwargs = {
"max_new_tokens": 2048, # 最大生成长度
"pad_token_id": 128002, # 填充token
"temperature": 0.7, # 采样温度
"do_sample": True # 启用采样生成
}
# 模型推理
with torch.no_grad():
outputs = model.generate(**inputs, **gen_kwargs)
# 提取生成部分
outputs = outputs[:, inputs['input_ids'].shape[1]:]
response = tokenizer.decode(outputs[0])
# 移除结束标记
response = response.split("<|end_of_text|>")[0]
print("\nCogVLM2:", response)
# 添加到对话历史
history.append((query, response))
使用说明:代码实现了两种交互模式——图像对话和纯文本对话。用户可通过输入图像路径启动图像理解功能,或直接回车进入纯文本对话。模型会自动维护对话历史,支持多轮交互。推理过程中会根据GPU性能自动选择BF16或FP16精度,在保证效果的同时优化显存占用。
开源许可协议
本模型采用CogVLM2 LICENSE许可协议发布。对于基于Meta Llama 3构建的模型版本,还需同时遵守LLAMA3_LICENSE中的相关规定。
开发者在使用模型时应注意:
- 非商业研究用途可直接使用
- 商业用途需联系作者获取授权
- 二次开发作品需保留原许可信息
- 不得用于危害安全或违反伦理的用途
学术引用规范
如果您的研究工作使用了CogVLM2模型,请引用以下论文:
@misc{hong2024cogvlm2,
title={CogVLM2: Visual Language Models for Image and Video Understanding},
author={Hong, Wenyi and Wang, Weihan and Ding, Ming and Yu, Wenmeng and Lv, Qingsong and Wang, Yan and Cheng, Yean and Huang, Shiyu and Ji, Junhui and Xue, Zhao and others},
year={2024},
eprint={2408.16500},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{wang2023cogvlm,
title={CogVLM: Visual Expert for Pretrained Language Models},
author={Weihan Wang and Qingsong Lv and Wenmeng Yu and Wenyi Hong and Ji Qi and Yan Wang and Junhui Ji and Zhuoyi Yang and Lei Zhao and Xixuan Song and Jiazheng Xu and Bin Xu and Juanzi Li and Yuxiao Dong and Ming Ding and Jie Tang},
year={2023},
eprint={2311.03079},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
CogVLM2的发布标志着开源多模态模型在实际应用能力上的重要突破。其8K上下文理解、超高分辨率图像处理和双语支持能力,为构建企业级多模态应用提供了强大基础。随着模型的持续优化和社区生态的发展,我们期待看到CogVLM2在智能文档处理、视觉问答系统、多语言内容创作等领域的创新性应用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



