VisCPM:清华系开源的多模态大模型,支持中英双语对话和文图生成

欢迎关注公众号 - 【AICV与前沿】,一起学习最新技术吧

欢迎关注公众号 - 【AICV与前沿】,一起学习最新技术吧

欢迎关注公众号 - 【AICV与前沿】,一起学习最新技术吧

单位:清华自然语言处理实验室、面壁智能、知乎

由于没有放出文章知道更多细节,本文浅浅了解一下图片图片图片。

VisCPM 是一个开源的多模态大模型系列,包含VisCPM-Chat模型(多模态对话模型)和VisCPM-Paint模型(文到图生成模型)

基座模型:CPM-Bee(基于百亿参数量(10B)训练的语言模型)

架构:基座模型 + 融合视觉编码器(Q-Former)、视觉解码器(Diffusion-UNet)以支持视觉信号的输入和输出。
在这里插入图片描述

VisCPM的特性

开源使用:VisCPM可以自由被用于个人和研究用途。我们希望通过开源VisCPM模型系列,推动多模态大模型开源社区和相关研究的发展。

涵盖图文双向生成:VisCPM模型系列较为全面地支持了图文多模态能力,涵盖多模态对话(图到文生成)能力和文到图生成能力。

中英双语性能优异:得益于语言模型基座CPM-Bee优秀的双语能力,VisCPM在中英双语的多模态对话和文到图生成均取得亮眼的效果。

VisCPM-Chat对话模型

该模型因Q-Former作为视觉编码器,使用CPM-Bee(10B)作为基座模型,并通过语言建模训练目标融合视觉和语言模型。训练阶段分为两阶段

预训练阶段

(1)使用约100M高质量英文图文对数据对VisCPM-Chat进行了预训练,数据包括CC3M、CC12M、COCO、Visual Genome、Laion等。

(2)固定语言模型参数,仅更新Q-Former部分参数,以支持大规模视觉-语言表示的高效对齐。

指令精调阶段

(1)采用LLaVA-150K英文指令精调数据,并混合相应翻译后的中文数据对模型进行指令精调,以对齐模型多模态基础能力和用户使用意图。

(2)更新全部模型参数。用以提升指令精调数据的利用效率。实验发现,即使仅采用英文指令数据进行指令精调,模型也可以理解中文问题,但仅能用英文回答。这说明了模型的多语言多模态能力已经得到良好的泛化。如果在指令精调阶段进一步加入少量中文翻译数据,可以将模型回复语言和用户问题语言对齐。

测评

在LLaVA标准英文测试集和翻译的中文测试集对模型进行了评测,该评测基准考察模型在开放域对话、图像细节描述、复杂推理方面的表现,并使用GPT-4进行打分。
在这里插入图片描述

可以看出,VisCPM-Chat在中文多模态能力方面取得了最佳的平均性能,特别是在通用域对话和复杂推理方面表现较为出色,英文多模态能力也表现不错。

开源提供了两个模型版本,分别为VisCPM-Chat-balance和VisCPM-Chat-zhplus,前者在英文和中文两种语言上的能力较为平衡,后者在中文能力上更加突出

两个模型在指令精调阶段使用的数据相同,特别的是,VisCPM-Chat-zhplus在预训练阶段额外加入了20M清洗后的原生中文图文对数据和120M翻译到中文的图文对数据
在这里插入图片描述

VisCPM-Paint文生图模型

模型使用CPM-Bee(10B)作为文本编码器,将UNet作为图像解码器,通过扩散模型训练目标融合语言和视觉模型

在训练过程中,语言模型参数始终保持固定,使用Stable Diffusion 2.1的UNet参数初始化视觉解码器,并通过逐步解冻其中关键的桥接参数将其与语言模型融合

该模型在LAION 2B英文图文对数据上进行了训练。

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

VisCPM-Paint-balance只使用了英文图文对进行训练,VisCPM-Paint-zhplus在VisCPM-Paint-balance基础上增加了20M原生中文图文对数据和120M翻译到中文的图文对数据进行训练

使用

1. 准备

克隆仓库并进入源码目录

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

创建conda环境,如果已有就没必要

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

安装依赖,如果已有就没必要

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

VisCPM目前需要单卡20GB以上的GPU运行,我们未来会支持更加节省显存的推理方式。

2. 使用

-------------------------------------多轮对话--------------------------------------

输入
在这里插入图片描述
代码

from VisCPM import VisCPMChat
from PIL import Image
model_path = '/path/to/checkpoint'
viscpm_chat = VisCPMChat(model_path, image_safety_checker=True)
## 默认开启对输入图片的安全检查
image_path = 'figures/vlu_case2.jpeg'
image = Image.open(image_path).convert("RGB")
question = '这幅图像是在哪个节日拍摄的?'
answer, context, vision_hidden_states = viscpm_chat.chat(image, question)
## 多轮对话传入历史 context
question = '你能用什么古诗描述这幅画?'
answer, context, _ = viscpm_chat.chat(image, question, context, vision_hidden_states=vision_hidden_states)
print(context)

结果

User: 这幅图像是在哪个节日拍摄的?
AI: 这幅图像是在中秋节拍摄的, 也就是中国传统节日中的月圆之夜。
User: 你能用什么古诗描述这幅画?
AI: “明月几时有,把酒问青天。” 这是苏轼的《水调歌头》中的一句诗,用来形容这幅图片再贴切不过了:

---------------------------------------文生图----------------------------------------

promt

海上生明月,天涯共此时,唯美风格,抽象风格
人闲桂花落,月静春山空
一座蒸汽朋克风格的唐朝寺庙
布拉德皮特,西部牛仔,燃情岁月电影画面,神态忧伤,充满细节,有面部纹理
布拉德皮特披着飘逸的长发,充满细节,面部纹理清晰,表情忧郁
漂亮的女性,有神的眼睛,面部特写,十分美丽

代码

from VisCPM import VisCPMPaint
painter = VisCPMPaint('/path/to/checkpoint', image_safety_checker=True, prompt_safety_checker=True, add_ranker=True) 
# 默认对输入的文本和输出的图片进行安全检查,默认开启重排序
image = painter.generate('人闲桂花落,月静春山空') # 对应上图第一行第二张图片
image.save('/data/test.png')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值