RepoOpenBMB (MiniCPM)OpenBMB (MiniCPM)published Jun 30, 2023seen 5d

OpenBMB/VisCPM

Python

Open original ↗

Captured source

source ↗
published Jun 30, 2023seen 5dcaptured 13hhttp 200method plain

OpenBMB/VisCPM

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

Language: Python

Stars: 1068

Forks: 89

Open issues: 8

Created: 2023-06-30T03:35:01Z

Pushed: 2024-06-13T14:02:54Z

Default branch: main

Fork: no

Archived: no

README:

`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在中英双语的多模态对话和文到图生成均取得亮眼的效果。

📰 更新信息

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使用指南](#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](#demo部署)
  • [2023/07/20] ⚡️ 支持[低资源推理](#低资源推理),最低5G显存运行多模态对话模型!
  • [2023/07/18] 🤗 VisCPM-ChatVisCPM-Paint 已整合到Huggingface框架中

VisCPM-Chat

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

  • 预训练:我们使用约100M高质量英文图文对数据对VisCPM-Chat进行了预训练,数据包括CC3M、CC12M、COCO、Visual Genome、Laion等。在预训练阶段,语言模型参数保持固定,仅更新视觉编码器的参数,以支持大规模视觉-语言表示的高效对齐。
  • 指令精调:我们采用LLaVA-150K英文指令精调数据,并混合相应翻译后的中文数据对模型进行指令精调,以对齐模型多模态基础能力和用户使用意图。在指令精调阶段,我们更新全部模型参数,以提升指令精调数据的利用效率。有趣的是,我们发现即使仅采用英文指令数据进行指令精调,模型也可以理解中文问题,但仅能用英文回答。这表明模型的多语言多模态能力已经得到良好的泛化。在指令精调阶段进一步加入少量中文翻译数据,可以将模型回复语言和用户问题语言对齐。

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

模型 语言模型基座 英文 中文

对话 精细描述 复杂推理 平均 对话 精细描述 复杂推理 平均

英文模型 MiniGPT4 Vicuna-13B 65.0 67.3 76.6 69.7 - - - -

InstructBLIP Vicuna-13B 81.9 68.0 91.2 80.5 - - - -

LLaVA Vicuna-13B 89.5 70.4 96.2 85.6 - - - -

中英双语模型 mPLUG-Owl LLaMA-7B 64.6 47.7 80.1 64.2 76.3 61.2 77.8 72.0

VisualGLM ChatGLM-6B 62.4 63.0 80.6 68.7 76.6 87.8 83.6 82.7

Ziya-Visual Ziya-LLaMA-13B-v1 82.7 69.9 92.1 81.7 85.0 74.7 82.4 80.8

Qwen-VL Qwen-7B 82.4 72.6 91.9 83.8 82.3 93.4 89.5 88.2

VisCPM-Chat-balance CPMBee-10B 83.3 68.9 90.5 81.1 92.7 76.1 89.2 86.3

VisCPM-Chat-zhplus CPMBee-10B 80.1 65.7 92.5 79.6 90.3 81.4 92.1 88.2

VisCPM-Chat-v1.1 CPMBee-10B 80.1 67.1 97.1 81.5 91.3 90.7 95.4 92.5

![图片](figures/vlu_case4.png)

VisCPM-Paint

VisCPM-Paint支持中英双语的文到图生成。该模型使用CPM-Bee(10B)作为文本编码器,使用UNet作为图像解码器,并通过扩散模型训练目标融合语言和视觉模型。在训练过程中,语言模型参数始终保持固定。我们使用Stable Diffusion 2.1的UNet参数初始化视觉解码器,并通过逐步解冻其中关键的桥接参数将其与语言模型融合。该模型在LAION 2B英文图文对数据上进行了训练。

VisCPM-Chat类似,我们发现得益于CPM-Bee的双语能力,VisCPM-Paint可以仅通过英文图文对训练,泛化实现良好的中文文到图生成能力,达到中文开源模型的最佳效果。通过进一步加入20M清洗后的原生中文图文对数据,以及120M翻译到中文的图文对数据,模型的中文文到图生成能力可以获得进一步提升。我们在标准图像生成测试集MSCOCO上采样了3万张图片,计算了常用评估图像生成指标FID (Fréchet Inception Distance)评估生成图片的质量。我们同样提供了两个模型版本,分别为VisCPM-Paint-balanceVisCPM-Paint-zhplus,前者在英文和中文两种语言上的能力较为平衡,后者在中文能力上更加突出。VisCPM-Paint-balance只使用了英文图文对进行训练,VisCPM-Paint-zhplusVisCPM-Paint-balance基础上增加了20M原生中文图文对数据和120M翻译到中文的图文对数据进行训练。

模型 Zero-shot FID↓

英文 中文

GLIDE 12.2 -

Make-A-Scene 11.8 -

DALL·E-2 10.4 -

Unidiffuser 9.7 -

Cogview2 - 24.0

Stable Diffusion 8.6 -

AltDiffusion 17.2 16.1

TaiyiDiffusion - 15.6

VisCPM-Paint-balance 9.5 10.9

VisCPM-Paint-zhplus 9.9 9.6

⚙️ 安装

1. 克隆仓库并进入源码目录

git clone https://github.com/OpenBMB/VisCPM.git
cd VisCPM

2. 创建conda环境

conda create -n viscpm python=3.10 -y
conda activate viscpm

3. 安装依赖

pip install torch>=1.10
pip install -r requirements.txt

💡 使用

模型下载

| 模型 | 描述 | 下载链接 | |----------------------|-------------------|------ | | VisCPM-Chat-v1.1 | 新版本多模态对话模型,强化了细节理解和复杂推理能力 |…

Excerpt shown — open the source for the full document.