标准回答
双编码器结构
CLIP 用两个独立编码器:图像编码器(ViT 或 ResNet)把图片编码成向量,文本编码器(Transformer)把描述句编码成向量,再各经线性投影到同一维度的共享嵌入空间。
对比学习目标(InfoNCE)
训练时取一个 N 对图文的批次,计算所有图像与所有文本两两的余弦相似度,得到 N×N 矩阵。目标是让对角线上的匹配对相似度最高、非对角的不匹配对相似度低——本质是把每个图像在 N 个文本里做分类、每个文本在 N 个图像里做分类的对称对比损失(InfoNCE)。这样匹配的图文被拉近、不匹配的被推远,跨模态语义得以对齐。
为什么有效
CLIP 在数亿网络图文对上训练,监督信号来自「图配文」的自然对应,无需人工标注类别。学到的共享空间里,图像与其语义文本距离近。
零样本能力
推理时把候选类别写成「a photo of a {类别}」编码为文本向量,与图像向量比相似度即可分类,迁移到新任务无需重新训练。该嵌入也是许多文生图、多模态大模型的视觉编码基础。
常见误区
⚠️ 常见踩坑
CLIP 不生成图像,它只学图文对齐的判别式表示;对比是在批次内的「正例 vs 其余负例」,不是逐像素匹配。负例规模(batch size)越大对齐越好,故训练对算力敏感。
追问
追问 1:CLIP 为什么能做零样本分类?
因为它把图像和文本映射到同一语义空间。分类时不需训练分类头,只把每个类别名套进提示模板编码成文本向量,与图像向量比余弦相似度,取最高者为预测类别。新增类别只需写一句文本,无需重新训练。
追问 2:InfoNCE 损失里的温度系数起什么作用?
温度 τ 缩放相似度 logits,控制 softmax 的「软硬」程度。τ 小则分布尖锐、对难负例更敏感、梯度更强但易不稳;τ 大则更平滑。CLIP 把温度设为可学习参数并裁剪上限,让模型自动找到合适的对比强度。
追问 3:CLIP 表示在下游怎么被复用?
文生图(如 Stable Diffusion)用 CLIP 文本编码器把提示词变嵌入注入扩散;多模态大模型(如 LLaVA)用 CLIP 图像编码器提取视觉特征再投影进 LLM;检索、零样本分类、图文匹配也直接用它的共享嵌入。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。