VLM
现代多模态模型一般采用以下三种架构策略
模型类型 | 架构组成 | 执行流程简述 |
---|---|---|
VLM + LLM(分离) | 图像 → VLM 编码 文本 → LLM 解码 |
图像由视觉模型编码后交给语言模型处理,例如 CLIP + GPT。较早期方式。 |
统一架构(VLM内含LLM)主流 | 图像编码器 + 文本解码器在同一个框架 | 输入图像与文本→共享 token 空间→LLM直接处理并生成。如 MedGemma、MedVLM。 |
仅调用 VLM 模型 | 图像 → 输出标签/嵌入 | 不涉及语言处理,仅用于分类或图像嵌入。 |
📘 什么是 VLM?
视觉语言模型(VLM, Vision-Language Model) 是一种能同时理解图像和文本的多模态模型,能够执行如图文问答(VQA)、图像字幕生成、图像推理、图文匹配、图文对话等任务。
🧠 实现原理框架
VLM 通常由两个主要模块组成:
1️⃣ 图像编码器(Vision Encoder)
将图像转换为向量(token)表示。
常用架构:
CLIP-ViT
(OpenAI 的 Vision Transformer)Swin Transformer
(滑窗Transformer)ResNet
(早期常用)
输出:一组图像 patch token,形如
[v₁, v₂, ..., vₙ]
2️⃣ 文本模块(Language Module)
- 输入用户的文本(prompt),经过分词和嵌入,转为
[t₁, t₂, ..., tₘ]
- 通常是基于 LLM 架构(如 GPT、LLaMA、Qwen)
- 输出自然语言回答或解释
3️⃣ 融合机制(Multimodal Fusion)
图像 token 与文本 token 融合后输入语言模型。融合方式常见有:
方法 | 描述 |
---|---|
Early Fusion | 图像 token 和文本 token 合并后一起送入 LLM(如 LLaVA) |
Cross-Attention | 文本作为主流,图像 token 通过 cross-attn 融合进来(如 Flamingo) |
Separate Encoder + Projection | 图像经过 encoder 后用映射层转成 LLM 可识别的形式 |
⚙️ 推理流程示意
[图像输入] ──► Vision Encoder ──► 图像 Token
[文本输入] ──► Tokenizer ──► 文本 Token
图文 Token 融合 ──► LLM 解码 ──► 输出回答 / 推理
🧪 训练方式
🧩 1. 监督微调(SFT)
- 使用图像+文本对(如图文问答、caption)进行直接训练。
🎯 2. 对比学习(如 CLIP)
- 学习图文嵌入空间,使图文成对更接近。
🚀 3. 强化学习(如 MedVLM-R1)
- 使用 reward 函数激励模型输出结构化推理过程而不仅仅是最终答案。
💡 代表性模型
模型 | 结构说明 | 特点 |
---|---|---|
CLIP(Contrastive Language–Image Pre-training) | 图像 & 文本对比训练 | 检索与分类强。 OpenAI提出,通过对比学习对齐图像和文本特征,广泛用于零样本分类和检索任务。 |
BLIP-2(Bootstrapping Language-Image Pre-training) | 图像编码器 + Qformer + LLM | 可扩展多任务 。Salesforce开发,支持多种视觉语言任务,强调数据效率。 |
LLaVA | CLIP + LLaMA + 图文 prompt | 开源对话式图文问答 |
MiniGPT-4 | CLIP + Vicuna | 图文对话 |
MedVLM | CLIP + LLM + RL优化 | 医学多模态,支持推理输出 |
Gemini | 多模态 Transformer(闭源) | 商业 SOTA 模型 |
✅ 总结:VLM 的核心设计原理
模块 | 技术核心 |
---|---|
图像理解 | Vision Transformer + Token 化 |
文本理解 | LLM 结构(如 GPT、LLaMA、Qwen) |
图文融合 | token 拼接、cross-attn 或投影映射 |
训练方式 | SFT、对比学习、强化学习 |
输出结构 | 最终答案 / 推理 + 答案 |
MedGemma
MedGemma(如 MedGemma-4B-Instruct) 是 Google 基于 Gemini/Gemma VLM 系列,针对医学图文任务做的微调模型。
https://huggingface.co/google/medgemma-4b-it
图像(如X光、皮肤图)
↓
Vision Encoder(ViT/GeminiVision)
↓
图像特征转为视觉token(如 patch embeddings)
↓
+ 文本输入 prompt
↓
MedGemma 解码器(LLM部分,Gemma架构)
↓
输出回答 / 解释(自然语言形式)
处理机制总结:
图像+文本同时传入,经过一个统一的 Transformer。
图像编码器将图像嵌入作为提示信号提供给文本生成器。
Gemma-like 解码器直接使用 cross-attention 处理图文融合。
无需外接 LLM,MedGemma 本身就是 VLM+LLM 一体模型。
MedVLM-R1
MedVLM-R1 是一个专注于“医疗图文问答+推理”的强化学习微调模型,由多个 VQA 数据集训练强化(如 OmniMedVQA、VQA-RAD)。
https://huggingface.co/JZPeterPan/MedVLM-R1
图像(如医学影像)
↓
CLIP-ViT 图像编码器(冻结)
↓
映射为视觉token(如 Qformer / Projection)
↓
文本prompt(问题)
↓
输入一并送入 LLM(如 LLaMA/Qwen)
↓
文本生成回答(医学解释)
处理机制总结:
MedVLM 使用的是改进的 LLaVA 架构:图像嵌入经过映射层投射到语言模型 token 序列中。
LLM(如 LLaMA)作为主控单元,直接处理 fused token。
和 MedGemma 不同的是,MedVLM 使用 外部视觉编码器(CLIP-ViT) + LLM 连接方式,但最终行为也相当于 VLM+LLM 融合结构
对比总结
特性 | MedGemma | MedVLM-R1 |
---|---|---|
模型类型 | VLM+LLM 一体结构(Gemma架构) | LLaVA 改进型结构(视觉 + LLM 融合) |
图像编码器 | ViT / Gemini Vision | CLIP-ViT |
文本生成模块(LLM) | 内建 Gemma 解码器 | LLaMA / Qwen 等自定义 LLM |
输入格式 | 图像 + prompt | 图像 + prompt |
推理调用方式 | AutoModelForImageTextToText |
AutoModelForCausalLM |
图文融合方式 | cross-attn 到 LLM decoder | Vision token injected into language stream |
是否需要外接LLM? | ❌(完全内建) | ✅(LLM 模块是显式组件) |
多轮医学对话适配性 | 强(需微调) | 非常强(R1强化学习后可多轮推理) |
输出风格 | 更偏自然语言、结构化解释 | 更偏医学问答、VQA链式推理 |
输入“图片+问题”的 prompt,本质是同时经过图像编码器与语言模型融合处理,MedGemma 和 MedVLM 都已将 VLM+LLM 集成到一个模型中,推理时只需调用一次 generate() 接口
MedGemma-4B-Instruct:Gemma解码器统一处理图像与文本,内建VLM+LLM结构。
MedVLM-R1:CLIP图像编码+Qwen2-VL语言模型,LLaVA式结构融合图文。
参考资源
以下是学习和实现 视觉语言模型(VLM) 的权威资料与参考资源,涵盖论文、开源项目、教程与工具,适用于学术研究和开发实践:
📄 一、权威论文推荐
标题 | 链接 | 内容亮点 |
---|---|---|
CLIP (Radford et al., 2021) | arXiv:2103.00020 | 开创 VLM 方向的基础对比学习方法 |
BLIP-2 (Li et al., 2023) | arXiv:2301.12597 | 图像编码 + Qformer + LLM,模块化结构 |
LLaVA (Liu et al., 2023) | arXiv:2304.08485 | 端到端图文问答模型,基础 VLM 教科书 |
MiniGPT-4 | arXiv:2304.10592 | 低成本实现 GPT-4 类图文对话 |
Flamingo (DeepMind, 2022) | arXiv:2204.14198 | 强大的 Few-shot 多模态模型,cross-attn 核心 |
MedVLM-R1 (Pan et al., 2024) | arXiv:2403.13691 | 用 GRPO 强化学习训练医学推理 VLM |
🧑💻 二、开源项目推荐(代码实践)
项目名 | 地址 | 简介 |
---|---|---|
LLaVA | github.com/haotian-liu/LLaVA | 最经典图文问答 VLM,结构清晰、社区活跃 |
BLIP-2 | github.com/salesforce/BLIP | 支持 BLIP, BLIP-2 的 Hugging Face 实现 |
MiniGPT-4 | github.com/Vision-CAIR/MiniGPT-4 | 类 GPT-4 图文问答,适合快速上手 |
Qwen-VL | github.com/QwenLM/Qwen-VL | 阿里发布的 LLaVA-style 中文/多语种 VLM |
MedVLM-R1 | huggingface.co/JZPeterPan/MedVLM-R1 | 医学图文问答,GRPO训练示例代码 |
📚 三、教学与综述类资源
名称 | 类型 | 链接 | 内容 |
---|---|---|---|
Multimodal LLM Survey (2023) | 综述论文 | arXiv:2306.05498 | 多模态模型研究综述(包括 VLM) |
Visual ChatGPT | 博文+代码 | https://github.com/microsoft/visual-chatgpt | 微软的图文对话系统 |
CS224N + CS231N | 斯坦福课程 | Stanford Online | NLP 与视觉课程,理解 VLM 背后两部分 |
Hugging Face Tutorials | 实践教程 | Hugging Face Course | 提供 vision + text 多模态模型加载与微调流程 |
🔬 四、医学多模态模型延伸资料
模型 | 链接 | 内容 |
---|---|---|
MedCLIP | https://github.com/RyanWangZf/MedCLIP | 医学图文对比学习 |
MedBench / MultiMedBench | https://github.com/luodian/mm-vet | 医学 VQA 多任务评估工具集 |
MedLAM | https://arxiv.org/abs/2403.02182 | 医学多模态 LLM 评估基准(中文) |