核心要点

  • 澄清检索意图:以图搜同款、找相似、还是图文跨模态检索?库规模、Recall@K 与延迟预算

  • CLIP 类模型把图像与文本编码到统一 embedding 空间,支持跨模态检索

  • 向量库 ANN(HNSW/IVF)做粗召回 + rerank 精排,叠加属性/标签过滤的混合检索

  • 讲清索引更新与规模:亿级向量分片、增量入库、量化压缩,离线评 Recall@K 在线评点击/转化

标准回答

需求与指标

先澄清意图:电商找同款(强调精确)、内容找相似、还是用文字搜图(跨模态)?库规模(百万到亿级)、延迟预算(几十毫秒)、核心指标 Recall@K 与人工相关性。

整体架构

离线:图片入库 → 特征提取 → 建 ANN 索引。在线:查询(图或文)→ 编码 → ANN 召回 TopN → rerank → 属性过滤 → 返回。

统一 Embedding

CLIP 类双塔模型把图像与文本映射到同一向量空间,使「图搜图」「文搜图」「图搜文」共用一套索引。垂直场景(如电商同款)可在领域数据上用对比学习微调,提升细粒度区分。

召回与索引

向量库(Qdrant/Milvus 类)用 HNSW 或 IVF-PQ 建近似最近邻索引做粗召回;亿级规模做分片 + 量化(PQ)压缩内存、平衡召回率与延迟。支持增量入库与索引重建。

Rerank 与混合检索

粗召回的 TopN 用更重的交叉编码或多特征模型 rerank,结合细粒度视觉相似与业务信号精排。叠加结构化属性过滤(类目、价格、颜色)与关键词的 混合检索,兼顾语义与精确匹配。

规模与评估

向量分片 + 副本扩展吞吐;热点缓存高频查询。离线用标注集评 Recall@K / mAP,在线用点击率、转化与人工相关性评审驱动模型与索引参数迭代。

常见误区

⚠️ 常见踩坑

只做单塔向量召回不加 rerank 与属性过滤:纯 ANN 在细粒度(同款 vs 相似款)上区分力不足;同时别忽略亿级索引的量化/分片与增量更新,否则上不了规模或延迟失控。

追问

追问 1ANN 索引怎么选?HNSW 和 IVF-PQ 如何取舍?

HNSW 召回率高、查询快,但内存占用大、构建慢、增量更新成本高,适合中等规模、低延迟高召回场景。IVF-PQ 用倒排 + 乘积量化大幅压缩内存、支持超大规模,代价是召回率略降、需调 nprobe 平衡精度与速度。亿级常用 IVF-PQ 或 DiskANN 把向量落盘;也可两段式:PQ 粗召回 + 原始向量精排找回精度。

追问 2亿级图片库如何做索引更新与扩展?

按 ID/类目分片,每片独立建索引并加副本提升吞吐与可用性;新图走增量入库到可写分片,定期合并重建;用量化压缩内存并把冷数据落盘(DiskANN)。更新策略:实时写入小的增量索引 + 定期全量重建主索引,查询时合并两者结果,避免频繁重建大索引的开销。

追问 3如何评估检索质量,离线指标和线上效果怎么对齐?

离线用人工标注的相关性集算 Recall@K、mAP、NDCG,覆盖同款/相似/跨模态多类查询。但离线高不代表线上好,需线上 A/B 看点击率、加购/转化与人工抽样相关性评审。两者不一致时检查标注分布是否贴合真实查询、是否存在长尾与冷门查询未覆盖,并把线上难例回流补充标注与微调 embedding。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。