来自智魔「LLM 多模态视觉大模型」课。两条主线:① 怎么把一个语言模型变成能看、能听、能感知的多模态模型(PandaGPT = ImageBind + Vicuna);② 怎么用视觉提示微调(VPT)几乎不动主干就迁移到垂直领域(病理图像)。
PandaGPT:用 1 个线性层把 6 模态接进 LLM
PandaGPT 的巧思是站在两个巨人肩膀上,自己只训投影层 + LoRA:
6 模态 → ImageBind_huge(冻结, out 1024) → llama_proj(1024→4096) → 1 个 soft token → LoRA-Vicuna-7B → 文本
- ImageBind(Meta FAIR,CVPR 2023)把 图/文/音/深度/热成像/IMU 6 模态对齐到同一嵌入空间(out 1024)——「emergent zero-shot」的基础,整块冻结
- Vicuna-7B 当语言大脑,挂 LoRA(
r=32, alpha=32, target=q/k/v/o_proj) - 只训一个
nn.Linear(1024, 4096):每张图unsqueeze(1)→ 一张图就是一个 soft token,多模态推理时各模态单 token 相加 - 只训 LoRA + 投影层(存 delta 权重),ImageBind + Vicuna 全冻;训练 DeepSpeed 8×A100,epoch 2 / batch 64 / lr 5e-4 / max_len 1024
最反直觉的一点:涌现的跨模态能力
PandaGPT 只在图文指令对上训练,但因为 ImageBind 已经把 6 模态绑在一个空间里,模型能涌现地处理音频、深度等它从没见过的模态——把一段海浪音频丢进去,它能「听懂」。这就是「One Embedding Space To Bind Them All」的威力。
课程的多模态谱系(资料里的论文)
课程串了多模态视觉大模型的演进,配套精读三篇:
| 论文 | 关键贡献 |
|---|---|
| ImageBind (Meta) | 6 模态绑进一个空间,emergent zero-shot |
| InternVL | scaling 视觉基础大模型 + 对齐视觉-语言任务 |
| Gemini | 原生多模态大模型家族 |
上游还讲了自监督学习、视觉基础大模型架构、下游迁移与视觉提示——PandaGPT 是这条线的实战落点。
配套:VPT 视觉提示微调(病理图像迁移)
第二个实战是 VPT(Visual Prompt Tuning):冻结整个 ViT-B/16 主干,只在 CLS 后拼入少量可学习 prompt token(incorporate_prompt,默认 NUM_TOKENS=5,prepend + random init):
- VPT-Shallow 输入端插一次 vs VPT-Deep 每层重插(
deep_prompt_embeddings(11, NUM_TOKENS, 768),逐层覆盖 prompt 槽) - 只训 prompt + 头:
if "prompt" not in k: requires_grad=False,train() 里 encoder 保持 eval;log「tuned percent」= 可训参/总参 - 基准 FGVC(CUB/NABirds/Flowers/Dogs/Cars)/ VTAB(19 任务,800/200 选超参 → 5 seed 跑);可挂 MoCo-v3 / MAE 预训练骨干
- 病理迁移(
configs/prompt/bci.yaml):BCI 数据集(HE 染色乳腺癌病理),4 类,主干不动 → 极少参数低成本迁移
价值点
- 多模态对齐的工程直觉:知道「绑模态」(ImageBind)+「接 LLM」(投影层)就能造多模态模型,不必从头训
- 理解涌现:为什么只训图文却能处理音频——共享嵌入空间
- 高效迁移:VPT 只调 prompt token,垂直领域(病理)低成本上手
- 读得懂前沿:ImageBind / InternVL / Gemini 的脉络
Demo strategy
Demo 真实材料对应
互动 Demo 复演 PandaGPT 推理:选若干模态(图文必选,音频/深度可选)→ ImageBind 编码进同一向量空间 → 线性投影 → Vicuna 生成回答;用到非图文模态时标注「涌现」。6 模态、ImageBind+Vicuna+1 线性投影的架构、涌现能力都来自智魔课程 PandaGPT 实战源码与 ImageBind 论文;浏览器里不真跑模型。
Public preview can be enabled later without redesigning the case-study layout