真实面经题目 · 原创解析

图纸类视觉内容没有文本描述时,如何依托视觉特征、多模态 Embedding 和向量检索实现精准召回?

这题考无文本图纸检索系统设计:要能从图纸预处理、视觉和多模态 embedding、向量索引、混合召回、重排、评估和工程更新链路讲清楚如何提高精准召回。

出现于:阿里巴巴 · 后端开发

60 秒回答模板

图纸类内容没有文本描述时,我会把问题设计成以视觉语义和结构特征为核心的多模态检索系统。离线侧先做图纸解析和预处理,包括去噪、裁边、方向矫正、尺度归一、缩略图生成、版面切块、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 质量监控。核心不是给无文本图片硬编描述,而是用视觉结构特征建立可检索表示,再用多路召回和重排把精准度补上。

考点 图纸预处理
难度 真实面经题
回答目标 让候选人能设计一个无文本图纸的精准召回系统:通过图纸预处理、整图与局部视觉 embedding、多模态对齐、向量索引、metadata 过滤、多路召回重排和评估闭环实现可落地检索。

深入解析

01

先明确图纸检索的特殊性

图纸不是普通自然图片。它可能包含线条、尺寸标注、符号、局部构件、版面结构、比例关系、方向和版本信息。没有文本描述时,召回不能依赖标题或关键词,而要让视觉特征承担主要语义表达。回答应先说明查询形态:用户可能以图搜图,也可能用文字描述找图纸,两者链路不同。

02

预处理决定特征质量

离线入库前要做去噪、裁边、方向矫正、尺度归一、分辨率标准化、缩略图和多尺度切块。对图纸还可以做 OCR、表格或标题栏解析、线条和符号检测、局部区域切分。预处理的目标是减少扫描噪声和版式差异,让 embedding 更关注结构和语义,而不是白边、旋转和压缩噪声。

03

整图和局部向量要结合

整图 embedding 适合召回同类型、同风格或整体相似的图纸,但对局部构件相似不够敏感。局部 patch、检测框、符号区域或多尺度切片 embedding 能捕捉零件、节点、布局块等细粒度相似性。实际系统常同时存整图向量和局部向量,召回后再把局部命中聚合回图纸级结果。

04

多模态对齐支持文字查询

如果用户用文字搜索,而图纸本身无描述,就需要图文对齐。可以使用多模态 embedding 模型把文本 query 和图纸图像映射到同一空间,也可以从图纸中抽取 OCR、符号标签、视觉 caption 或分类标签作为弱文本。文字到图纸的召回通常比图搜图更难,因此要结合文本、视觉和业务 metadata 多路信号。

05

向量检索要带 metadata 约束

向量库不仅存 embedding,还要存图纸 id、版本、项目、类型、权限、时间、尺寸、来源、局部区域坐标和哈希。检索时先做权限和业务过滤,再用 ANN 召回 topK,最后合并局部候选并去重。metadata 能减少跨项目、跨类型的误召,也能保证用户只能看到有权限的图纸。

06

精准召回依赖多路召回和重排

单一路径很难兼顾召回率和精准度。可以把整图向量、局部向量、OCR 文本、符号标签、业务字段和历史点击作为多路召回,再用 reranker 综合相似度、局部覆盖度、文本匹配、项目相关性、版本新鲜度和用户行为。对高价值检索,重排可以使用更重的多模态 cross encoder 或局部匹配模型。

07

评估要围绕召回任务构造

评估不能只看向量距离。要构造标注集,区分同一图纸不同版本、同项目相似图、同构件不同图、视觉相似但业务无关图、文字描述模糊图。指标可以看 recall@K、precision@K、MRR、nDCG、重复结果率、权限误漏和人工满意度。误召样本要回流到切块、模型、索引和重排策略。

08

工程链路要支持增量和回滚

生产系统要处理新图纸入库、旧图纸版本更新、embedding 模型升级、向量索引重建、权限变化和删除。通常需要离线批处理加增量队列,保留 embedding 版本,支持灰度双索引和回滚。否则模型一升级,向量空间漂移会导致召回结果大幅波动。

易错点

  • 把无文本图纸检索简单做成 OCR 关键词搜索,忽略大量图纸没有可用文字。
  • 直接用普通图片 embedding,不考虑图纸的线条、符号、尺度、版面和局部结构特征。
  • 只存整图向量,导致局部构件相似、局部符号匹配和大图纸细节召回能力差。
  • 向量检索时不做权限和业务 metadata 过滤,可能召回无权限或跨项目无关图纸。
  • 只看 top1 示例效果,不建立 recall@K、precision@K、MRR 等系统评估指标。
  • 模型升级后把新旧 embedding 混在同一个索引里,导致相似度不可比较。
  • 没有处理图纸版本、重复文件和局部切块聚合,结果页出现重复或错误版本。
  • 过度依赖自动 caption,把视觉结构强行转成文本,丢失细粒度几何和符号信息。

面试官追问

图搜图和文搜图的链路有什么区别?

图搜图可以直接把查询图经过同样预处理和视觉 encoder,和库内图纸向量比较;文搜图需要文本 encoder 与图像 encoder 语义对齐,或者借助 OCR、caption、标签和业务字段做混合召回,因此更依赖多模态对齐和重排。

为什么只用整图 embedding 不够?

整图 embedding 容易关注整体版式和风格,但用户可能找的是某个局部构件、符号或结构。局部向量能捕捉细粒度匹配,尤其适合大图纸、复杂版面和局部相似的召回场景。

如何减少视觉相似但业务无关的误召?

可以在召回和重排中加入项目、图纸类型、专业分类、版本、权限和历史行为等 metadata;同时用标注负样本训练或调优 reranker,让系统学会区分外观相似但业务语义不同的图纸。

向量模型升级后为什么要做双索引灰度?

不同 embedding 模型的向量空间不兼容,直接混用会让相似度失真。双索引灰度可以让新旧模型分别召回并比较指标,确认质量稳定后再切流,出现问题也能快速回滚。

没有人工标注集时怎么启动评估?

可以先用同图不同版本、同项目引用关系、历史下载或点击、文件名相似、专家规则生成弱标签,再抽样人工复核。上线后把点击、收藏、二次搜索和人工纠错回流成更可靠的评估集。