笔记|多模态融合(四):LLaVA——用一层 MLP 让大模型"看懂"图片
论文:Visual Instruction Tuning(Liu et
al., 2023, UW-Madison / Microsoft) 代码:haotian-liu/LLaVA
前置知识:上一篇:BLIP-2 / Q-Former
0. 一个极简的想法
上一篇介绍了 BLIP-2 的 Q-Former——188M 参数、32
个可学习查询、三个预训练目标、两阶段训练。Q-Former 在冻结的 ViT 和 LLM
之间架起了桥梁。
但 LLaVA 的作者问了一个大胆的问题:如果把 Q-Former 换成一层
MLP 呢?
Q-Former (BLIP-2)
MLP Projector (LLaVA)
参数量
188M
~20M
结构
12 层 Transformer + Cross-Attention
2 层全连接
可学习查询
32 个
无(直接使用所有 patch token)
预训练目标
ITC + ITM + ITG
仅因果语言建模
训练复杂度
高(三种掩码切换)
低(标准自回归)
结果?LLaVA-1.5 在多数 benchma ...
笔记|多模态融合(三):从 BLIP 到 BLIP-2——Q-Former 与交叉注意力的艺术
论文:BLIP-2: Bootstrapping Language-Image
Pre-training with Frozen Image Encoders and Large Language
Models(Li et al., 2023, Salesforce) 代码:salesforce/LAVIS ·
lavis/models/blip2_models/blip2_qformer.py
前置知识:上一篇:CLIP
对比学习
0. 一个尴尬的场景
你手上有一个冻结的 ViT-g(14 亿参数的视觉编码器)和一个冻结的
FlanT5-XXL(110 亿参数的语言模型),两者都是各自领域的顶尖模型。
现在你想让它们协作完成
VQA(视觉问答):看一张图片,回答"图中有几个人?"
问题是——ViT-g 输出的是 \(\mathbb{R}^{257
\times 1408}\) 的视觉 token,FlanT5 期望的输入是 \(\mathbb{R}^{* \times 2048}\) 的文本
token。维度不同、语义空间不同、序列长度不同。
最暴力的方案是把两者解冻后联合微调 ...
笔记|多模态融合(二):CLIP——对比学习连接视觉与语言
论文:Learning Transferable Visual Models From
Natural Language Supervision(Radford et al., 2021, OpenAI)
代码:openai/CLIP · mlfoundations/open_clip
前置知识:上一篇:多模态融合基础
0.
零样本分类:一个不可能的任务?
假设你训练了一个图像分类器,类别是 ImageNet 的 1000
类。现在来了一张鸭嘴兽的图片——这个类别不在训练集中。传统分类器只能把它归入某个已知类别(也许是"水獭"),因为它的输出层只有
1000 个 logit。
但如果换一种思路:不用固定的类别标签,而是用自然语言描述来定义类别呢?
候选描述
与鸭嘴兽图片的匹配度
"a photo of a platypus"
0.92
"a photo of an otter"
0.71
"a photo of a beaver"
0.68
"a photo of a duck"
0.55
只要图像和文本共享同一个特征空间,就可以通过余弦相似度找到 ...
笔记|多模态融合(一):从特征拼接到注意力融合——多模态学习基础
系列说明:本文是多模态融合系列的第一篇,从最基本的概念出发,建立三级融合的数学框架,为后续
CLIP、BLIP-2、LLaVA 等模型打下理论基础。
前置知识:线性代数基础、Transformer
注意力机制(可参考本站第十一篇 UIT/DiT 详解)。
0. 从一个图文检索任务说起
假设你手上有一个小型数据集:5 张图片和 5 段文字描述。
编号
图片内容
文字描述
1
一只橘猫趴在窗台上
"an orange cat lying on a windowsill"
2
一辆红色跑车停在路边
"a red sports car parked on the street"
3
一碗拉面冒着热气
"a steaming bowl of ramen noodles"
4
一片雪山风景
"a snowy mountain landscape"
5
一个小女孩在画画
"a little girl painting on a canvas"
你的任务是:给定一张新的图片(比如另一只猫),从这 5
段文字中找到最匹配的描述。
这个问题的核心挑战是——图片和文 ...
笔记|Vision Transformers Need Registers:用 Register Tokens 治愈 ViT 的"注意力伪影"
论文:Vision Transformers Need
Registers(Darcet et al., ICLR 2024 Outstanding Paper)
代码:facebookresearch/dinov2
· HuggingFace
DINOv2-with-Registers 参考资料:本文结合论文原文与
DINOv2 开源代码进行讲解。
0. 从一张"坏掉的注意力图"说起
假设你用
DINOv2-g(ViT-giant)提取一张猫咪图片的特征,然后可视化最后一层
self-attention 中 [CLS] token 对所有 patch token
的注意力权重。你期望看到的结果是:注意力集中在猫咪身上,背景区域的权重较低——这正是初代
DINO 擅长的事情,漂亮的注意力图甚至可以直接当作无监督分割结果。
但实际出来的图,却在墙壁、天空等均匀背景区域出现了几个异常的"亮点":
位置
期望注意力
实际注意力
猫的头部
高
高
猫的身体
中
中
纯色墙壁 patch \((i,j)=(3,12)\)
低
异常高
纯色天花板 patch \(( ...
笔记|多模态融合(一):VGGT——用一个 Transformer 完成所有 3D 视觉任务
CVPR 2025 Best Paper Award
论文:VGGT: Visual
Geometry Grounded Transformer(Oxford VGG + Meta AI)
代码:github.com/facebookresearch/vggt
一个模型,四个任务
从一个例子开始。 假设你有一组室内场景的照片(10
张不同角度),传统做法需要:
任务
传统方法
耗时
相机位姿估计
COLMAP(特征匹配 → 三角化 → BA)
~15s
深度图估计
MVSNet(需要已知相机参数)
依赖上一步
点云重建
DUSt3R(两两配对 → 全局对齐)
~200s(32帧)
点追踪
CoTracker(逐帧处理)
另起一个模型
四个任务、四个模型、流水线式的依赖、分钟级的耗时。
VGGT 的做法:一个前馈 Transformer,输入 10
张图,0.2 秒输出全部四种 3D 属性:
\[
f\left((I_i)_{i=1}^{N}\right) = \left(g_i,\, D_i,\, P_i,\,
T_i\right)_{i=1}^{N ...
笔记|MemoryBank:用艾宾浩斯遗忘曲线赋予 LLM 长期记忆
论文:MemoryBank:
Enhancing Large Language Models with Long-Term Memory(2023.05, Sun
Yat-Sen University)
代码:github.com/zhongwanjun/MemoryBank-SiliconFriend
为什么 LLM 需要长期记忆?
先从一个场景理解问题。 假设你和一个 AI 助手连续聊天
10 天:
第 1 天
你:我最近分手了,心情很低落
第 3 天
你:我开始学 Python 了,推荐本书吧
第 5 天
你:你之前推荐的那本书不错,快看完了
第 8 天
你:我在考虑学数据分析还是机器学习方向
第 10 天
你:你觉得以我的情况,应该走哪个方向?
一个没有长期记忆的 ChatGPT,在第 10
天面对这个问题时:
不记得你第 1 天的分手经历(无法给出有温度的回复)
不记得你第 3 天才开始学 Python(无法评估你的技术水平)
不知道你读了哪本书、进度如何(无法给出针对性建议)
它只能给出一个通用的、模板化的回答:"这取决于你的兴趣和背 ...
笔记|生成模型(二十四):DanceGRPO——视频生成的统一强化学习框架
在前面的系列中,我们将 GRPO 从语言模型(第 19
篇)推广到了图像生成(第 20、23 篇 Flow-GRPO /
SuperFlow)。本文将目光转向视频生成——一个更具挑战性的领域。我们以
DanceGRPO 框架为核心,解析如何将 GRPO
统一应用于文生图(T2I)、文生视频(T2V)和图生视频(I2V)三种任务。
论文:DanceGRPO:
Unleashing GRPO on Visual Generation(2025.05) 代码:github.com/XueZeyue/DanceGRPO
从图像到视频:新的挑战
先用一个例子理解为什么视频比图像更难。 在 Flow-GRPO
中,我们对 Prompt "一只橘猫坐在蓝色沙发上" 生成 4
张图像,用奖励模型打分,计算优势,更新策略——整个流程清晰明了。
但如果 Prompt 变成
"一只橘猫跳上蓝色沙发并打了个哈欠",事情就复杂了:
维度
图像生成
视频生成
输出
1 帧(\(1024
\times 1024 \times 3\))
\(N\)
帧(如 \(49 \times 480 ...
笔记|生成模型(二十三):SuperFlow 与图像生成 RL 前沿(2026)
本文为 RL 系列的最终篇。在第 21 篇中我们介绍了 Flow-GRPO,将 GRPO
应用于基于 Flow Matching 的图像生成。本文将介绍其后续改进
SuperFlow,以及 2026 年图像/视频生成 RL
的统一框架生态,最后回顾整个系列的完整技术脉络。
论文:SuperFlow: Training
Flow Matching Models with RL on the Fly(2025.12, revised
2026.01)
Flow-GRPO 的三个遗留问题
延续之前"橘猫坐在蓝色沙发上"的例子。 回忆 Flow-GRPO
的做法:对每个 Prompt 生成 \(G\)
张图像,用奖励模型打分,计算组内相对优势,然后用裁剪策略梯度更新模型。
但在大规模实践中,这个看似完美的流程暴露出三个问题:
问题一:固定组大小导致计算浪费
Flow-GRPO 对所有 Prompt 使用相同的组大小(比如 \(G = 16\))。但不同 Prompt
的"不确定性"差异巨大:
Prompt
模型当前水平
生成 16 张图的结果
有效性
"一只猫"( ...
笔记|生成模型(二十二):GRPO 的三重面孔——从 2-GRPO 到 f-GRPO 与 GIFT
本文为 RL 系列第七篇。上一篇介绍了 DAPO
的四大工程改进。本文从理论角度出发,剖析 GRPO 的数学本质:为什么 GRPO
其实是在做 DPO?为什么 2 个 rollout 就够了?如何从 KL 散度推广到任意
f-散度?最后介绍融合了 GRPO 和 DPO 优势的 GIFT 算法。
论文: - It Takes Two:
Your GRPO Is Secretly DPO(2025.10) - f-GRPO and Beyond:
Divergence-Based RL for General LLM Alignment(2026.02) - GIFT: Group-relative Implicit
Fine Tuning(2025.10)
从一个令人意外的实验结果说起
在前几篇中,我们花了大量篇幅推导 GRPO
的组内相对优势计算,强调"组越大(\(G =
16\) 或 \(64\)),优势估计越准确,训练效果越好"。但
2025 年末的一篇论文 "It Takes Two"
给出了一个反直觉的实验结果:
仅用 \(G = 2\)(两个
rollout)的 GRPO ...