真实面经题目 · 原创解析
图纸类视觉内容没有文本描述时,如何依托视觉特征、多模态 Embedding 和向量检索实现精准召回?
这题考无文本图纸检索系统设计:要能从图纸预处理、视觉和多模态 embedding、向量索引、混合召回、重排、评估和工程更新链路讲清楚如何提高精准召回。
真实面经题目 · 原创解析
这题考无文本图纸检索系统设计:要能从图纸预处理、视觉和多模态 embedding、向量索引、混合召回、重排、评估和工程更新链路讲清楚如何提高精准召回。
图纸类内容没有文本描述时,我会把问题设计成以视觉语义和结构特征为核心的多模态检索系统。离线侧先做图纸解析和预处理,包括去噪、裁边、方向矫正、尺度归一、缩略图生成、版面切块、OCR 或符号检测可选提取;因为图纸里很多信息来自线条、结构、局部符号、比例和布局,不能只把整张图当普通照片。然后用合适的视觉或多模态 encoder 生成 embedding:一种是整图向量,适合整体风格或图纸类型召回;另一种是局部 patch、区域、符号或多尺度向量,适合局部构件和相似结构召回。如果用户查询也是图片,就走 image-to-image;如果用户查询是文字,就需要图文对齐模型,把文字 query 和图纸视觉 embedding 映射到同一语义空间,或者先用 OCR、视觉 caption、符号标签生成弱文本做混合检索。向量库侧要保存图纸 id、版本、权限、业务类型、尺寸、时间、项目等 metadata,使用 ANN 索引做 topK 召回,再用 metadata filter、相似度阈值和去重控制候选。为了提高精准度,我会做多路召回:整图向量召回、局部向量召回、OCR 文本召回、符号标签召回、业务 metadata 召回,然后用 cross encoder、多模态 reranker 或规则特征重排,综合 query-图纸相似度、局部匹配覆盖度、文本命中、业务相关性和新鲜度。评估上要构造图纸相似、同项目、同构件、同版本、误召相近图纸等标注集,看 recall@K、precision@K、MRR、nDCG、去重率和人工满意度。工程上还要处理增量更新、版本变更、权限过滤、向量漂移、索引重建和 embedding 质量监控。核心不是给无文本图片硬编描述,而是用视觉结构特征建立可检索表示,再用多路召回和重排把精准度补上。
图纸不是普通自然图片。它可能包含线条、尺寸标注、符号、局部构件、版面结构、比例关系、方向和版本信息。没有文本描述时,召回不能依赖标题或关键词,而要让视觉特征承担主要语义表达。回答应先说明查询形态:用户可能以图搜图,也可能用文字描述找图纸,两者链路不同。
离线入库前要做去噪、裁边、方向矫正、尺度归一、分辨率标准化、缩略图和多尺度切块。对图纸还可以做 OCR、表格或标题栏解析、线条和符号检测、局部区域切分。预处理的目标是减少扫描噪声和版式差异,让 embedding 更关注结构和语义,而不是白边、旋转和压缩噪声。
整图 embedding 适合召回同类型、同风格或整体相似的图纸,但对局部构件相似不够敏感。局部 patch、检测框、符号区域或多尺度切片 embedding 能捕捉零件、节点、布局块等细粒度相似性。实际系统常同时存整图向量和局部向量,召回后再把局部命中聚合回图纸级结果。
如果用户用文字搜索,而图纸本身无描述,就需要图文对齐。可以使用多模态 embedding 模型把文本 query 和图纸图像映射到同一空间,也可以从图纸中抽取 OCR、符号标签、视觉 caption 或分类标签作为弱文本。文字到图纸的召回通常比图搜图更难,因此要结合文本、视觉和业务 metadata 多路信号。
向量库不仅存 embedding,还要存图纸 id、版本、项目、类型、权限、时间、尺寸、来源、局部区域坐标和哈希。检索时先做权限和业务过滤,再用 ANN 召回 topK,最后合并局部候选并去重。metadata 能减少跨项目、跨类型的误召,也能保证用户只能看到有权限的图纸。
单一路径很难兼顾召回率和精准度。可以把整图向量、局部向量、OCR 文本、符号标签、业务字段和历史点击作为多路召回,再用 reranker 综合相似度、局部覆盖度、文本匹配、项目相关性、版本新鲜度和用户行为。对高价值检索,重排可以使用更重的多模态 cross encoder 或局部匹配模型。
评估不能只看向量距离。要构造标注集,区分同一图纸不同版本、同项目相似图、同构件不同图、视觉相似但业务无关图、文字描述模糊图。指标可以看 recall@K、precision@K、MRR、nDCG、重复结果率、权限误漏和人工满意度。误召样本要回流到切块、模型、索引和重排策略。
生产系统要处理新图纸入库、旧图纸版本更新、embedding 模型升级、向量索引重建、权限变化和删除。通常需要离线批处理加增量队列,保留 embedding 版本,支持灰度双索引和回滚。否则模型一升级,向量空间漂移会导致召回结果大幅波动。
图搜图可以直接把查询图经过同样预处理和视觉 encoder,和库内图纸向量比较;文搜图需要文本 encoder 与图像 encoder 语义对齐,或者借助 OCR、caption、标签和业务字段做混合召回,因此更依赖多模态对齐和重排。
整图 embedding 容易关注整体版式和风格,但用户可能找的是某个局部构件、符号或结构。局部向量能捕捉细粒度匹配,尤其适合大图纸、复杂版面和局部相似的召回场景。
可以在召回和重排中加入项目、图纸类型、专业分类、版本、权限和历史行为等 metadata;同时用标注负样本训练或调优 reranker,让系统学会区分外观相似但业务语义不同的图纸。
不同 embedding 模型的向量空间不兼容,直接混用会让相似度失真。双索引灰度可以让新旧模型分别召回并比较指标,确认质量稳定后再切流,出现问题也能快速回滚。
可以先用同图不同版本、同项目引用关系、历史下载或点击、文件名相似、专家规则生成弱标签,再抽样人工复核。上线后把点击、收藏、二次搜索和人工纠错回流成更可靠的评估集。