论文:https://arxiv.org/abs/2309.15112
代码:GitHub - InternLM/InternLM-XComposer: InternLM-XComposer2 is a groundbreaking vision-language large model (VLLM) excelling in free-form text-image composition and comprehension.
引言:
-
本文亮点:
-
图文交错文章创作: 只需要提供主题 or 标题,灵笔模型(InternLM-XComposer)就可以为用户打造图文并貌的文章,给予用户沉浸式、更吸引人的阅读体验。
-
具备丰富的多语言理解能力:通过对广泛的多模态多语言概念进行精心设计的策略训练,增强了对文本-图像的理解,加深对视觉内容的理解。
-
State-of-the-art表现:在包括MME Benchmark, MMBench, MMBench-CN,Seed-Bench, and CCBench等多模态中文榜单上达到SOTA
-
模型效果:
图文交错文章创作
271174560-0a2b475b-3f74-4f41-a5df-796680fa56cd.mp4
多模态理解、多轮对话
模型结构:
BLIP-2模型结构
InternLM-XComposer模型
模型结构:
-
Visual Encoder:InternLM-XComposer使用EVA-CLIP的的预训练视觉encoder,ViT-Large版模型,stride 14x14
-
Perceive Sampler:BLIP-2模型的Q-Former结构,将Visual Encoder输出的特征向量压缩为与LLM特征空间对齐的64个特征向量,query embedding
-
LLM: 书生大模型 InterLM开源的InternLM-Chat-7B模型
模型训练:
-
Pre-training阶段:
-
训练策略:Visual Encoder冻结,微调Perceive Sampler和LLM,LM loss训练
-
训练目的:增强LLM理解图像特征的能力,增强多模态的对齐能力
-
训练数据:预训练使用数据如下,基本都是image-pair对的中英双语数据,为了保留初始InternLM的能力,训练时候也用到了InternLM预训练阶段的部分文本数据
-
-
Supervised Fine-Tuning阶段:
-
训练策略:Visual Encoder冻结,LLM冻结但添加LoRa微调,微调Perceive Sampler,两步训练Multi-task training+Instruction tuning
-
训练目的:Pre-training阶段只是让LLM初步具备理解视觉的能力,需要让LLM更好地利用视觉信息
-
训练数据:预训练使用数据如下,Multi-task training数据按照如下方式设计成会话交互形式
-
Interleaved Image-Text Composition数据构建
整体流程:
数据构建步骤:
-
Text Generation阶段:GPT-4对原始数据的每个段落进行noise评估,识别为噪声的段落和文章噪声内容占比超过30%的,都会被过滤。剩余数据进一步构造数据,让模型基于title生成文章
-
Image Spotting and Captioning阶段:受限于模型能力,现有小模型对于文章的caption生成效果较差,容易遗漏文章的中心思想和概念,通过GPT-4生成微调数据改善这个问题
-
Image Retrieval and Selection阶段:已知适合图片插入的段落位置和caption,clip模型用caption去检索底库图片,获取topn个图片作为候选集,再用多模态LLM从候选集中进行选择,图片的选择信息结合了前文的文本和图片,进一步提升图片、文本主题一致性
模型实验
模型实验结果