大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本文详细介绍多模态模型的LoRA版本——CogVLM和CogVLM2。在SD 3中使用其作为captioner基准模型的原因和优势。
@[toc]
首先我们需要知道CogVLM是主要用于图像生成文本的。在此之前,我们已经介绍了BLIP和BLIP2,但是BLIP模型生成的文本描述较为简单,模型训练则需要更详细、准确的图像描述或字幕。
在上期文章中将介绍了模型Coca(Contrastive Captioners,谷歌出品),OpenAI的DALL·E 3在处理图像-文本训练数据集就是基于谷歌的CoCa模型,微调一个image captioner,用来合成图像的caption。
Coca参考历史文章:多模态论文笔记——Coca
同样,在SD 3中也使用了模型去优化图像-文本数据集中的文本描述,只不过SD 3中使用了CogVLM。
SD 3介绍参考 SD 系列文章:Stable Diffusion 3详解
CogVLM
论文
CogVLM: Visual Expert for Pretrained Language Models
背景
VLMs 的任务与挑战
VLM 的应用任务: 视觉语言模型具有广泛的应用场景,例如:图像描述、视觉问答、视觉定位、分割等。这些任务需要模型具备强大的多模态推理能力,而这种能力通常依赖于对视觉和语言数据的深度理解与融合。
训练 VLM 的挑战: 训练与大规模语言模型(如 LLaMA2)性能相匹配的 VLM 是一项复杂任务。当前的主流方法是复用已有的预训练语言模型(如 GPT),并在此基础上扩展视觉处理能力。而这个扩展过程的核心挑战在于解决视觉特征和语言特征的对齐问题。
现有方法及其局限性
浅层对齐方法(Shallow Alignment Methods)
代表方法有 BLIP 2(原文为:InstructBLIP,) 和 MiniGPT-4:
- 通过一个 冻结的预训练语言模型(如 GPT)和 预训练视觉编码器(如 CLIP)实现简单连接。
- 通过 可训练的 Q-Former 或线性层,将图像特征映射到语言模型的输入嵌入空间。
- 优势:收敛快,训练简单。
- 劣势:性能劣于深度融合模型,例如 LLaVA-1.5。问题包括:
- 视觉与语言特征的不匹配:视觉特征在经过浅层映射后无法充分适配语言模型的深层结构。
- 任务表现受限:在生成任务(如图像描述)中,这种方法难以捕获特定任务的细节。
BLIP2 参考历史文章:多模态论文笔记——BLIP2
深度融合方法(Deep Fusion Methods)
代表方法有 LLaVA-1.5、 PaLI 和 Qwen-VL:
- 在预训练或监督微调阶段,直接对语言模型进行训练。
- 问题:深度融合方法会显著改变语言模型的分布,导致 灾难性遗忘(Catastrophic Forgetting)。
- 语言模型在训练过程中会失去其原有的 NLP 能力,例如自然语言生成(NLG)性能下降。
注意:
- 浅层对齐方法和深度融合方法的区分点在于:是否会改变原始模型的权重参数,如果会修改,则是深度融合方法,否则,为浅层对齐方法。
- 在 LLaVA 属于浅层对齐方法,原始的语言和视觉模型权重是冻结的;
- 在 LLaVA 1.5 属于深度融合方法,原始的语言和视觉模型权重不是被冻结的,而是可以进行训练的。
CogVLM 的创新点
CogVLM 提出了新的解决方案,回答了一个核心问题:是否能在保留语言模型 NLP 能力的同时,赋予其强大的视觉理解能力?
CogVLM 的方法:引入视觉专家(Visual Expert)
- CogVLM 并不对原始语言模型进行修改,而是添加了一个 可训练的视觉专家:
- 视觉专家的作用:在每一层中,视觉特征通过新的 QKV 矩阵 和 MLP 层 与文本特征交互。
- 参数与效率:视觉专家的引入使参数数量增加一倍,但模型的计算量(FLOPs)保持不变。
- 优势:
- 保留语言模型的 NLP 能力:原始语言模型的参数完全冻结,避免灾难性遗忘问题。如果输入序列中没有图像,模型表现与原始语言模型一致。
- 深度融合视觉与语言特征:使用类似低秩矩阵的思想,间接改变模型参数的方式实现深度融合。避免浅层对齐中的特征分布偏移问题。
详细全文请移步公主号:Goodnote。