1️⃣ CLIP 简介
CLIP 是 OpenAI 提出的 跨模态对比学习模型,核心目的是将文本和图像嵌入到同一个向量空间,从而实现:
- 文本 → 图片 检索
- 图片 → 文本 检索
- 跨模态语义理解(Multimodal tasks)
CLIP 的关键优势:
- 支持自然语言查询检索图片
- 可直接与向量数据库结合,做 RAG
- 支持大规模向量化检索、混合召回和多模态搜索
2️⃣ CLIP 模型架构
CLIP 由两套独立编码器组成:
| 模块 | 输入类型 | 编码器架构 | 输出向量空间 | 权重共享 |
|---|---|---|---|---|
| Text Encoder | 文本 token 序列 | Transformer | 对齐向量空间 | ❌ |
| Image Encoder | 图片像素 | CNN / ViT | 对齐向量空间 | ❌ |
特点:
- 文本和图片编码器不同,但输出 embedding 在同一向量空间对齐
- 支持 cosine similarity 或 dot product 比较相似度
- Embedding 维度通常为 512~1024
3️⃣ CLIP 的训练方式
3.1 对比学习 (Contrastive Learning)
-
训练数据:大规模 image-text 对
(I_k, T_k) -
训练目标:
- 正样本对相似度最大化:文本与对应图片 embedding 靠近
- 负样本对相似度最小化:文本与非对应图片 embedding 拉远
公式示例:
sim(v_i, v_t) = cosine(v_i, v_t)
Loss = - log( exp(sim(v_i, v_t)) / Σ_j exp(sim(v_i, v_tj)) )
3.2 “同时训练、嵌入到同一个向量空间”含义
- 同时训练:文本 encoder 和图片 encoder 的参数在训练过程中同时更新
- 嵌入同一向量空间:训练目标让对应文本与图片 embedding 靠近,不对应的 embedding 远离
- 效果:文本 query 可以直接召回图片,图片 query 可以直接召回文本
4️⃣ CLIP 在向量检索中的应用
4.1 文本 query 直接检索图片
-
流程:
- 文本 query → Text Encoder → embedding
- 图片库每张图片 → Image Encoder → embedding
- 计算 cosine similarity → top-k 检索
-
依赖条件:
- Text Encoder 与 Image Encoder 输出 embedding 已对齐
- 检索效果依赖训练模型能力、query 文本长度、图片类型
4.2 图片 RAG 场景
结合向量数据库(Qdrant、Milvus、Weaviate 等):
-
图片库向量化 → 存储 HNSW / ANN 索引
-
用户 query → embedding → 向量检索 top-K
-
可选:
- metadata 过滤(标签、类别、时间)
- rerank / score 融合(Caption embedding、multi-vector fusion)
-
LLM 生成最终回答(RAG)
4.3 优缺点
| 优点 | 缺点 |
|---|---|
| 文本直接召回图片,无需额外标注 | 对抽象、复杂场景召回不稳定 |
| 高效 ANN 检索,结合向量数据库可扩展 | query 过长或模糊可能 embedding 不准确 |
| 支持多模态 RAG、混合召回 | 单纯向量召回缺少细粒度信息(OCR、对象位置) |
5️⃣ CLIP 与多向量 / 混合召回结合
结合 Qdrant 的多向量混合召回:
-
每个向量字段独立 HNSW 图
- 例如
image_vector、caption_vector
- 例如
-
可指定单向量搜索或多向量融合
- 多向量融合:
FinalScore = Σ weight_i * normalized_score_i
- 多向量融合:
-
Metadata filter 可提前缩小候选集
-
效果提升:文本 query embedding + 图片 embedding + metadata → 高精度召回
6️⃣ 实际效果与优化策略
6.1 效果因素
- 模型能力(CLIP/BLIP/EVA/BGE-M3)
- 文本 query 类型(短句 vs 长句)
- 图片内容类型(标注明确 vs 抽象)
- Embedding 维度与距离度量
- 训练数据分布
6.2 优化方法
-
多模态 embedding 融合
- Text embedding + image caption embedding
-
metadata / 属性辅助
- category、tags、time filter
-
向量 + 文本二阶段检索
- ANN top-K → rerank(caption / OCR / metadata)
-
微调 embedding 模型
- 针对特定图片库做小规模 fine-tune
7️⃣ 总结
CLIP 的核心价值:
- 跨模态 embedding 对齐:文本与图片 embedding 在同一向量空间
- 高效 ANN 检索:可直接结合向量数据库做 RAG
- 支持多向量混合召回:在 Qdrant 等数据库中可进行多向量融合 + metadata filter
- 可扩展多模态应用:文本→图片、图片→文本、图文混合检索、RAG 等场景