Logo

VisCPM: 基于CPM的中英双语多模态大模型

VisCPM: 基于CPM的中英双语多模态大模型

VisCPM是由清华大学自然语言处理实验室、面壁智能和知乎联合开发的一个开源多模态大模型系列。该系列模型支持中英双语的多模态对话能力(VisCPM-Chat模型)和文到图生成能力(VisCPM-Paint模型),在中文多模态开源模型中达到了最佳水平。

模型特点

VisCPM具有以下几个主要特点:

  1. 开源使用:VisCPM可以自由用于个人和研究用途,推动了多模态大模型开源社区和相关研究的发展。

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

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

模型架构

VisCPM基于百亿参数量语言大模型CPM-Bee(10B)训练而成,融合了视觉编码器Muffin和视觉解码器Diffusion-UNet,以支持视觉信号的输入和输出。得益于CPM-Bee基座优秀的双语能力,VisCPM可以仅通过英文多模态数据预训练,就能泛化实现优秀的中文多模态能力。

VisCPM模型架构

VisCPM-Chat

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

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

  2. 指令精调:采用LLaVA-150K英文指令精调数据,并混合相应翻译后的中文数据对模型进行指令精调,以对齐模型多模态基础能力和用户使用意图。在此阶段更新全部模型参数,以提升指令精调数据的利用效率。

有趣的是,研究人员发现即使仅采用英文指令数据进行指令精调,模型也可以理解中文问题,但仅能用英文回答。这表明模型的多语言多模态能力已经得到良好的泛化。在指令精调阶段进一步加入少量中文翻译数据,可以将模型回复语言和用户问题语言对齐。

VisCPM-Chat在LLaVA标准英文测试集和翻译的中文测试集上进行了评测,该评测基准考察模型在开放域对话、图像细节描述、复杂推理方面的表现,并使用GPT-4进行打分。评测结果显示,VisCPM-Chat在中文多模态能力方面取得了最佳的平均性能,在通用域对话和复杂推理表现出色,同时也表现出了不错的英文多模态能力。

目前提供了两个模型版本:

  • VisCPM-Chat-balance:中英文能力较为平衡的多模态对话模型
  • VisCPM-Chat-zhplus:中文能力突出的多模态对话模型

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

此外,还发布了VisCPM-Chat-v1.1版本,在指令精调阶段额外加入了UniMM-Chat多模态指令精调数据集,进一步强化了细节理解和复杂推理能力。

下面是VisCPM-Chat的一个使用示例:

VisCPM-Chat示例

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_case1.png'
image = Image.open(image_path).convert("RGB")

question = '如果用一句中国唐代的著名诗人"李白"的古诗来描述这幅图像,你能想到什么?'
answer, _, _ = viscpm_chat.chat(image, question)

print(answer)

输出结果:

"黄河之水天上来,奔流到海不复回。" 李白的这句诗可以用来形容这幅图片中汹涌澎湃、波涛汹涌的景象:一条湍急的河流从山上奔腾而下,形成了一幅令人叹为观止的画面,展示出大自然的力量和雄伟壮丽。

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在中文文到图生成任务上达到了最佳效果。

同样提供了两个模型版本:

  • VisCPM-Paint-balance:中英文能力较为平衡的文生图模型
  • VisCPM-Paint-zhplus:中文能力突出的文生图模型

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

下面是VisCPM-Paint的一个使用示例:

VisCPM-Paint示例

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') 

安装与使用

  1. 克隆仓库并进入源码目录:
git clone https://github.com/OpenBMB/VisCPM.git
cd VisCPM
  1. 创建conda环境:
conda create -n viscpm python=3.10 -y
conda activate viscpm
  1. 安装依赖:
pip install torch>=1.10
pip install -r requirements.txt
  1. 下载模型权重并使用

VisCPM需要单卡40GB以上的GPU运行。为了支持更加高效的低资源推理场景,研究人员借助BMInf工具支持更低的显存需求。首先安装BMInf依赖pip install bminf,然后在命令行中指定export CUDA_MEMORY_CPMBEE_MAX=1g(具体数值可以根据个人需求设定),然后按照上述步骤进行推理,VisCPM-Chat最低显存占用可以降至5G,VisCPM-Paint最低显存占用可以降至17G。

此外,研究人员还提供了简易的基于gradio的网页版Demo,可以通过以下命令部署:

pip install gradio
git clone https://github.com/OpenBMB/VisCPM.git
cd VisCPM
python demo_chat.py # viscpm_chat demo, or
python demo_paint.py # viscpm_paint demo

模型微调

为适应特定场景下的需求,研究人员提供了VisCPM-Chat模型的微调代码,用户可以在私有数据上进行微调。微调代码位于./finetune/ft_viscpm_chat目录下,具体的微调代码使用方法如下:

# 获取数据集
bash ./finetune/ft_viscpm_chat/get_llava150k_zh.sh
# 模型微调, 注意修改其中的数据集与模型checkpoint路径
bash ./finetune/ft_viscpm_chat/run_viscpm_chat_ft.sh
# node: 8
# batch_size: 8 * 1
# 其他配置可参考'./finetune/ft_viscpm_chat/config/viscpm_chat_ft.json'与'./finetune/ft_viscpm_chat/run_viscpm_chat_ft.sh'

安全性

为了帮助用户防止模型处理或生成不符合普遍社会价值观的内容,研究人员在VisCPM中加入了内容安全保障模块。当安全模块检测到模型处理或生成的图像文本内容不符合安全规范时,会对相应内容进行拦截。对VisCPM-Chat接受的图片输入以及VisCPM-Paint接受的文字输入和图片输出均进行了安全检查。

开源协议

VisCPM系列模型采用"通用模型许可协议-来源说明-宣传限制-非商业化"协议,允许个人使用和研究用途。如需将模型用于商业用途,请联系cpm@modelbest.cn来洽谈商业授权事宜。

CPM-Bee基座采用"通用模型许可协议-来源说明-宣传限制-商业授权"协议,允许商用,如需将模型用于商业用途,请联系cpm@modelbest.cn来获取书面授权。

未来工作

研究人员计划在未来支持模型量化功能,以进一步降低推理成本。

总的来说,VisCPM作为一个开源的中英双语多模态大模型系列,在多模态对话和文到图生成任务上都取得了优异的表现。其开源性质和优秀的性能,为多模态AI技术的研究和应用提供了宝贵的资源。随着持续的优化和更新,VisCPM有望在未来为更多领域带来创新和突破。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号