从 CLIP 到 LLaVA:一文读懂视觉语言模型(VLM)的演进与核心数学公式

前言 大语言模型(Large Language Model,LLM) 很会处理文字。它能把一段指令拆成 token,按概率逐字生成回复。但把它和一张图片放到一起,它就没了用武之地。给它一张图片的像素数据,它不知道画面上是一只猫还是一栋楼。它只能看文字。(注意:这里的大模型我们指的是早期的文本大模型,这个时候还没有出现 MLLM(多模态大模型),因此先不考虑现在的大模型所具备的图像识别和理解功能。但事实上,我们接下来要介绍的 VLM,概念上是属于 MLLM 的范畴。) 视觉语言模型(Vision-Language Model,VLM) 要补上的正是这一块。它同时理解图像与文本,能做跨模态推理。给它一张照片,它回答照片里有什么;给它一张图纸,它照着图纸说明步骤。这类能力的基础,是把图像和文本两套数据放进同一个表示空间,让模型能比较、能融合、能推理。这个过程的正式名称是模态对齐(Modality Alignment)。 图像和文本的数据结构完全不同。图像是连续的像素矩阵,一个像素是三个通道上的数值,整体是高维连续张量。文本是离散的符号序列,每个词元来自一张有限的词表。一个连续,一个离散,两者天然不在同一个空间里。VLM 的核心工作,就是找到一种方式把两者对齐。 围绕"怎么对齐",VLM 演化出三条技术路线。本文先讲 VLM 的骨架,再逐一拆解三条路线的数学原理,最后把训练流程串起来。 三大核心组件 一个 VLM 通常由三个部分组成。 视觉编码器(Vision Encoder)。负责把图像变成特征向量。以 Vision Transformer(ViT)为代表,先把图像切成固定大小的方块(Patch),每个方块展平并线性映射成嵌入,再送入多层 Transformer,输出一组图像特征。特征里压缩了图像的语义信息,是后续所有对齐操作的基础。 语言模型(LLM / Text Encoder)。负责理解文本语义并生成回复,常见的有 Llama、Qwen 等。在 VLM 中,它是推理与输出的核心。 模态连接器(Adapter / Projector)。这是 VLM 特有的枢纽。视觉编码器输出的特征和词向量不在同一个空间,连接器负责把图像特征映射成语言模型认识的词向量,通常是一个可学习的线性层或小型 Transformer。线性投影层(Linear Projector)和 Q-Former 都属于连接器。 flowchart LR IMG["图像"] --> VE["视觉编码器 ViT"] VE --> PR["模态连接器 Projector"] PR --> LLM["语言模型 LLM"] LLM --> OUT["文本回复"] 流派一:对比学习与模态对齐(CLIP) CLIP(Contrastive Language-Image Pre-training)由 OpenAI 在 2021 年提出。它的思路不要求模型把图像"说出来",只要求模型判断一对图文是否匹配。思想可以概括为,让配对的图像与文本在向量空间里互相靠近,不配对的互相远离。 ...

📅 August 11, 2026 · 🔄 更新于 2026-08-15 · ⏱️ 17 min · 📝 约 2615 字 · 👁️ 次阅读

CLIP 详解:对比学习如何让模型同时看懂图与文

前言 本文是《从 CLIP 到 LLaVA:一文读懂视觉语言模型(VLM)的演进与核心数学公式》的配套专篇。主篇里只讲了 CLIP 的核心思想,本文把架构、每个公式的符号、温度参数 $\tau$ 的物理意义和正负样本矩阵完整拆开。 核心思想 CLIP(Contrastive Language-Image Pre-training) 由 OpenAI 在 2021 年提出。它的思路不要求模型把图像"说出来",只要求模型判断一对图文是否匹配。思想可以概括为,让配对的图像与文本在向量空间里互相靠近,不配对的互相远离。训练数据是从互联网抓取的海量图文对,弱标注、规模大,正好适合对比学习。 模型结构 CLIP 由两个编码器组成,训练完成后两者的输出落在同一个向量空间里。 视觉编码器(Vision Encoder) 把图像映射成图像特征向量。 文本编码器(Text Encoder) 把文本映射成文本特征向量。 两个编码器共享一个对比学习的目标,不要求图像特征还原文字,只要求"配对"的两者在空间中靠近。 视觉编码器 CLIP 论文里视觉编码器有两种可选实现。 ViT 实现。图像先切成固定大小的 Patch(如 $32 \times 32$ 像素),每个 Patch 展平成一个一维向量,经线性投影变成 token,加上位置编码后送入多层 Transformer 编码器。图像特征取 [class] token 位置的输出,经一个线性层映射到共享嵌入维度。(关于 ViT 的详细说明我想单独开一个post,由于比较懒这里就先不写了喵) 图 1:ViT 的图像编码器结构。 ResNet 实现。图像经卷积网络逐层提取特征,最后用一个注意力池化(attention pooling)把空间特征汇聚成单一向量,再经线性层映射。 详细说明请见本站《为什么 ResNet 能训练 152 层——残差连接的直觉与数学》。(其实这个是AI写的,我后面再修改~) 两种实现的最终输出都会投影到同一个嵌入维度,和文本特征的维度一致。 文本编码器 文本编码器是一个带因果掩码的 Transformer,结构上接近 GPT。输入句子先切分成 token,每个 token 做嵌入并加上位置编码,逐层编码;最后取句末特殊 token(End-of-Text,EOT)位置的输出作为整个句子的特征。CLIP 的文本编码器最长处理 76 个 token。 ...

📅 August 12, 2026 · ⏱️ 34 min · 📝 约 5139 字 · 👁️ 次阅读
Comments