源文档更新从未同步到向量索引的那些 Embedding
一名支持工程师在值班频道发了消息。一位客户粘贴了助手上周检索到的一个句子,合规团队回复说:我们已经不再这么说了。他们已经停用这句话四个月了。CMS 中的文档显示是正确的。但向量索引中的嵌入分块(chunk)仍然是旧的内容,且拥有极高的相似度得分,并在每次相关查询时被提供给模型。没人改过检索代码。没人改过模型。真相源(source-of-truth)变了,而索引却对此一无所知。
这是摄取流水线(ingestion pipeline)的一种失败模式:它最初是为“创建”而设计的,后来演变成了一个也要处理“更新”的系统,却没有人专门为“更新”进行设计。“创建时嵌入”的任务在每份文档首次写入的那天运行。一个季度后,CMS 团队发布了一个编辑端点,由另一个团队负责,他们将其接入了搜索、面向公众的渲染器和变更日志 feed —— 接入了每一个消费者,除了那个隐藏在不同名称下的派生数据集。数月过去,语料库发生了漂移。检索系统开始回答那些公司早已正式抛弃的问题,而唯一的信号来自于一位困惑的客户。
