SkillAgentSearch skills...

VisCPM

[ICLR'24 spotlight] Chinese and English Multimodal Large Model Series (Chat and Paint) | 基于CPM基础模型的中英双语多模态大模型系列

Install / Use

/learn @OpenBMB/VisCPM
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center">

VisCPM

基于CPM基础模型的中英双语多模态大模型系列

<p align="center"> <a href="#-viscpm-chat">多模态对话模型VisCPM-Chat</a> • <a href="#-viscpm-paint">文生图模型VisCPM-Paint</a> • <a href="#-使用">使用</a> • <a href="https://arxiv.org/pdf/2308.12038.pdf">论文</a> </p> <p> <a href="http://120.92.209.146/">VisCPM-Chat Demo</a> • <a href="https://huggingface.co/spaces/openbmb/viscpm-paint">VisCPM-Paint Demo</a> • <a href="https://huggingface.co/openbmb/VisCPM-Chat"> VisCPM-Chat🤗 </a> • <a href="https://huggingface.co/openbmb/VisCPM-Paint"> VisCPM-Paint🤗 </a> </p> <p align="center"> 简体中文 | <a href="README_en.md">English</a> </p> </div>

VisCPM is a family of open-source large multimodal models, which support multimodal conversational capabilities (VisCPM-Chat model) and text-to-image generation capabilities (VisCPM-Paint model) in both Chinese and English, achieving state-of-the-art performance among Chinese open-source multimodal models. VisCPM is trained based on the large language model CPM-Bee with 10B parameters, fusing visual encoder (Muffin) and visual decoder (Diffusion-UNet) to support visual inputs and outputs. Thanks to the good bilingual capability of CPM-Bee, VisCPM can be pre-trained with English multimodal data only and well generalize to achieve promising Chinese multimodal capabilities.

VisCPM 是一个开源的多模态大模型系列,支持中英双语的多模态对话能力(VisCPM-Chat模型)和文到图生成能力(VisCPM-Paint模型),在中文多模态开源模型中达到最佳水平。VisCPM基于百亿参数量语言大模型CPM-Bee(10B)训练,融合视觉编码器Muffin和视觉解码器Diffusion-UNet以支持视觉信号的输入和输出。得益于CPM-Bee基座优秀的双语能力,VisCPM可以仅通过英文多模态数据预训练,泛化实现优秀的中文多模态能力。

  • 👐 开源使用:VisCPM可以自由被用于个人和研究用途。我们希望通过开源VisCPM模型系列,推动多模态大模型开源社区和相关研究的发展。
  • 🌟 涵盖图文双向生成:VisCPM模型系列较为全面地支持了图文多模态能力,涵盖多模态对话(图到文生成)能力和文到图生成能力。
  • 💫 中英双语性能优异:得益于语言模型基座CPM-Bee优秀的双语能力,VisCPM在中英双语的多模态对话和文到图生成均取得亮眼的效果。
<div align="center"> <img src="figures/model_zh.png" width="600px"> </div>

📰 更新信息

VisCPM在持续升级中,我们支持了低资源推理、网页版部署等功能,并提供了能力升级的更高版本的模型OmniLMM,欢迎大家持续关注!

  • [2024/04/17] 🚀 欢迎关注我们最新发布的MiniCPM-V 2.0端侧多模态大模型,具备领先的光学字符识别(OCR)和多模态理解能力,在综合性OCR能力评测基准OCRBench上达到开源模型最佳水平,甚至在场景文字理解方面实现接近Gemini Pro的性能。
  • [2024/02/02] 🚀 欢迎关注我们最新发布的OmniLMM多模态大模型!其中OmniLMM-3B为中英双语多模态对话模型,基于中英双语大模型MiniCPM-2.4B和SigLip-400M视觉编码器训练,采用与VisCPM-Chat相同的训练流程训练,可在终端设备上部署并具备先进的多模态对话能力;OmniLMM-13B为英文多模态模型,基于EVA02-5B和Zephyr-7B-β初始化训练,相比同规模其他模型在多个基准测试中具有领先性能。
  • [2024/01/16] 🎉 VisCPM论文ICLR 2024接收,并被选为spotlight(top 5%)
  • [2023/09/06] 🔌 VisCPM-Chat API 发布!现在您可以直接通过API轻松地使用VisCPM-Chat模型了。查看API使用指南以了解更多详情。
  • [2023/08/23] 📑 VisCPM论文发布:Large Multilingual Models Pivot Zero-Shot Multimodal Learning across Languages,论文提供了更详细的实现细节和实验结果
  • [2023/08/18] ⤴️ VisCPM-Chat-v1.1版本发布,带来更强的细节理解和复杂推理能力!
  • [2023/08/18] 🛠️ 支持微调,让VisCPM更适配你的应用场景!
  • [2023/07/20] 🌐 发布VisCPM-ChatVisCPM-Paint 的在线Demo,欢迎尝试!
  • [2023/07/20] 🎢 支持一键部署本地网页版Demo
  • [2023/07/20] ⚡️ 支持低资源推理,最低5G显存运行多模态对话模型!
  • [2023/07/18] 🤗 VisCPM-ChatVisCPM-Paint 已整合到Huggingface框架中

<img src="figures/chat.png" width="28px" /> VisCPM-Chat

VisCPM-Chat支持面向图像进行中英双语多模态对话。该模型使用Muffin视觉编码架构,使用CPM-Bee(10B)作为语言基座模型,并通过语言建模训练目标融合视觉和语言模型。模型训练包括预训练和指令精调两阶段:

  • 预训练:我们使用约100M高质量英文图文对数据对VisCPM-Chat进行了预训练,数据包括CC3M、CC12M、COCO、Visual Genome、Laion等。在预训练阶段,语言模型参数保持固定,仅更新视觉编码器的参数,以支持大规模视觉-语言表示的高效对齐。

  • 指令精调:我们采用LLaVA-150K英文指令精调数据,并混合相应翻译后的中文数据对模型进行指令精调,以对齐模型多模态基础能力和用户使用意图。在指令精调阶段,我们更新全部模型参数,以提升指令精调数据的利用效率。有趣的是,我们发现即使仅采用英文指令数据进行指令精调,模型也可以理解中文问题,但仅能用英文回答。这表明模型的多语言多模态能力已经得到良好的泛化。在指令精调阶段进一步加入少量中文翻译数据,可以将模型回复语言和用户问题语言对齐。

我们在LLaVA标准英文测试集和翻译的中文测试集对模型进行了评测,该评测基准考察模型在开放域对话、图像细节描述、复杂推理方面的表现,并使用GPT-4进行打分。可以观察到,VisCPM-Chat在中文多模态能力方面取得了最佳的平均性能,在通用域对话和复杂推理表现出色,同时也表现出了不错的英文多模态能力。我们提供了两个模型版本,分别为VisCPM-Chat-balanceVisCPM-Chat-zhplus,前者在英文和中文两种语言上的能力较为平衡,后者在中文能力上更加突出。两个模型在指令精调阶段使用的数据相同,VisCPM-Chat-zhplus在预训练阶段额外加入了20M清洗后的原生中文图文对数据和120M翻译到中文的图文对数据。VisCPM-Chat-v1.1在指令精调阶段额外加入了UniMM-Chat多模态指令精调数据集。

<table> <tr> <td align="center" rowspan="2" colspan="2">模型</td> <td align="center" rowspan="2">语言模型基座</td> <td align="center" colspan="4">英文</td> <td align="center" colspan="4">中文</td> </tr> <tr> <td align="center">对话</td> <td align="center">精细描述</td> <td align="center">复杂推理</td> <td align="center">平均</td> <td align="center">对话</td> <td align="center">精细描述</td> <td align="center">复杂推理</td> <td align="center">平均</td> </tr> <tr> <td align="center" rowspan="3">英文模型</td> <td align="center">MiniGPT4</td> <td align="center">Vicuna-13B</td> <td align="center">65.0</td> <td align="center">67.3</td> <td align="center">76.6</td> <td align="center">69.7</td> <td align="center">-</td> <td align="center">-</td> <td align="center">-</td> <td align="center">-</td> </tr> <tr> <td align="center">InstructBLIP</td> <td align="center">Vicuna-13B</td> <td align="center">81.9</td> <td align="center">68.0</td> <td align="center">91.2</td> <td align="center">80.5</td> <td align="center">-</td> <td align="center">-</td> <td align="center">-</td> <td align="center">-</td> </tr> <tr> <td align="center">LLaVA</td> <td align="center">Vicuna-13B</td> <td align="center"><b><span style="color:#c00000;">89.5</span></b></td> <td align="center">70.4</td> <td align="center">96.2</td> <td align="center"><b><span style="color:#c00000;">85.6</span></b></td> <td align="center">-</td> <td align="center">-</td> <td align="center">-</td> <td align="center">-</td> </tr> <tr> <td align="center" rowspan="7">中英双语模型</td> <td align="center">mPLUG-Owl </td> <td align="center">LLaMA-7B</td> <td align="center">64.6</td> <td align="center">47.7</td> <td align="center">80.1</td> <td align="center">64.2</td> <td align="center">76.3</td> <td align="center">61.2</td> <td align="center">77.8</td> <td align="center">72.0</td> </tr> <tr> <td align="center">VisualGLM</td> <td align="center">ChatGLM-6B</td> <td align="center">62.4</td> <td align="center">63.0</td> <td align="center">80.6</td> <td align="center">68.7</td> <td align="center">76.6</td> <td align="center">87.8</td> <td align="center">83.6</td> <td align="center">82.7</td> </tr> <tr> <td align="center">Ziya-Visual </td> <td align="center">Ziya-LLaMA-13B-v1</td> <td align="center">82.7</td> <td align="center">69.9</td> <td align="center">92.1</td> <td align="center">81.7</td> <td align="center">85.0</td> <td align="center">74.7</td> <td align="center">82.4</td> <td align="center">80.8</td> </tr> <tr> <td align="center">Qwen-VL </td> <td align="center">Qwen-7B</td> <td align="center">82.4</td> <td align="center"><b><span style="color:#c00000;">72.6</span></b></td> <td align="center">91.9</td> <td align="center">83.8</td> <td align="center">82.3</td> <td align="center"><b><span style="color:#c00000;">93.4</span></b></td> <td align="center">89.5</td> <td align="center">88.2</td> </tr> <tr> <td align="center">VisCPM-Chat-balance</td> <td align="center">CPMBee-10B</td> <td align="center">83.3</td> <td align="center">68.9</td> <td align="center">90.5</td> <td align="center">81.1</td> <td align="center"><b><span style="color:#c00000;">92.7</span></b></td> <td align="center">76.1</td> <td align="center">89.2</td> <td align="center">86.3</td> </tr> <tr> <td align="center">VisCPM-Chat-zhplus</td> <td align="center">CPMBee-10B</td> <td align="center">80.1</td> <td align="center">65.7</td> <td align="center">92.5</td> <td align="center">79.6</td> <td align="center">90.3</td> <td align="center">81.4</td> <td align="center">92.1</td> <td align="center">88.2</td> </tr> <tr> <td align="center">VisCPM-Chat-v1.1</td> <td align="center">CPMBee-10B</td> <td align="center">80.1</td> <td align="center">67.1</td> <td align="center"><b><span style="color:#c00000;">97.1</span></b></td> <td align="center">81.5</td> <td align="center">91.3</td> <td align="center">90.7</td> <td align="center"><b><span style="color:#c00000;">95.4</span></b></td> <td align="center"><b><span style="color:#c00000;">92.5</span></b></td> </tr> </table>

图片

<img src="figures/paint.png" height="28px" /> VisCPM-Paint

VisCPM-Paint支持中英双语的文到图生成。该模型使用CPM-Bee(10B)作为文本编码器,使用UNet作为图像解码器,并通过扩散模型训练目标融合语言和视觉模型。在训练过程中,语言模型参数始终保持

Related Skills

View on GitHub
GitHub Stars1.1k
CategoryDevelopment
Updated2d ago
Forks88

Languages

Python

Security Score

85/100

Audited on Mar 29, 2026

No findings