SWE / RE / ML · System Design

新概念图像检索:零样本冷启动、弱标签与低延迟

先使用可迁移表示,再收集经过验证的新概念样本。

题目重点:先使用可迁移表示,再收集经过验证的新概念样本。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 目标从获准使用的聊天日志图像集合检索某新文本概念;可能没有或只有很少已标注图像。训练不把未授权聊天内容默认为可用于模型训练。
  • 使用已有跨模态embedding作为基线,不声称模型一定识别新产品;query有时间/概念变更,必须评估旧概念混淆。

解题路线

  1. 抽取图像与文字context建立有权限的候选索引,记录时间、来源和可用范围。先用文本描述/同义词及通用text-image模型zero-shot检索,不在零样本时假装已能监督训练精确分类器。
  2. 冷启动用少量人工验证seed、弱标签及active learning;聊天文字可能讽刺/引用别物,不能自动把同条text当图像正确标签。建立hard negatives,例如外观类似旧产品和渲染图/实拍区分。
  3. 已有image embeddings ANN索引,query文本在线embedding→候选召回→少量rerank→ACL过滤/补候选。延迟拆embedding、ANN、rerank、网络和过滤,模型训练离线不放进每次query关键路径。
  4. few-shot可先构prototype或调小adapter,再比较zero-shot基线;用按时间/用户来源去重的held-out集合,测precision/recall、误概念和实际延迟。新增数据并不必然改善,要保留模型/索引版本可回滚。
  5. 用户点击只作弱反馈,曝光位置与查询目的带偏差;优先人工复核不确定候选,避免推荐错图→用户误点→模型强化错概念的反馈循环。

手动走一遍

新车名样本少,可用已确认的外观描述query获取候选,人工挑seed;不能把通用模型的第一批topK全当正例。在线预算练习100ms,可给text embedding20ms、ANN20ms、rerank40ms、其它20ms作为待测分配,不声称真实系统达到该数。

规模与取舍

离线embedding成本按图像数和模型吞吐,online ANN为近似检索,无通用精确O(logN)保证。rerank K项吞吐和尾延迟受batch影响;少样本主要风险是统计泛化而非仅算力。

易错点与追问

容易失分的边界

  • 零正例时直接fine-tune,缺失训练信号。
  • 训练与测试来自同条聊天或近重复图像,虚高表现。
  • 只报平均latency,忽略冷启动/权限补召回尾部。

继续深挖

  • 概念名称变更或同名多义,query expansion如何控制误召回?
  • 用户反馈少且有曝光偏差,怎样选择人工标注样本?
✓已复制微信号!