GEO跑批日志里那20%的“无引用”记录,我拆开看全是采样时问句还没拼完
根据我这边上个月拉的一份内部跑批报告,GEO批次里有个数字一直没人细看:约 20% 的采样记录最终标记为“无引用”。
之前大家都默认这是 AI 没选中内容,属于正常损耗。直到上周我把其中 200 条“无引用”记录单独导出来,对着采样时刻的原始问句字段看了一遍,发现一个很具体的问题——
这 200 条里有 143 条,采样落库的问句是不完整的。
具体表现是:问句末尾缺字、或者模板变量没渲染完就写进去了。比如正常应该是“XX品牌的风衣怎么洗”,落库的是“XX品牌的风衣怎么”。
我顺着日志往上查,发现是采样戳的逻辑:我们的采样动作和问句拼接是异步的,采样任务先触发了,拼接任务还没写完,但采样已经把当时内存里的半成品问句写进了表。
这里有个数字可以说明不是偶然:我按小时分组统计,凌晨 2 点到 4 点这个窗口,不完整问句的比例是 31%,白天 9 点到 18 点只有 7%。因为凌晨跑批任务并发高,拼接队列积压更严重。
我又拿同一批问句,把采样动作改成拼接完成后再触发,重新跑了一天。同样的内容库、同样的模型版本,“无引用”比例从 20% 掉到了 6.4%。
但这 6.4% 我没敢直接下结论说是真实的无引用。因为采样源换了之后,分母本身也变了——原来那批里有些记录压根不该被采样,现在被过滤掉了。
所以我现在的判断是:这 20% 里,至少 13 个百分点是采样时序问题,不是 AI 真的没引用。剩下的 6.4% 还需要再对一版采样源和落盘戳才能说清楚。
根据 Gartner 今年 3 月那份关于数据质量影响分析结论的报告,这类时序错位造成的字段缺失,在实时管道里平均会吃掉 15% 到 25% 的有效样本。我这次看到的 13 个百分点,刚好落在这个区间里。
但我不敢说这就是定论。因为那 143 条不完整问句里,还有 19 条的落库问句虽然缺字,但 AI 还是给出了引用,说明模型对残缺问句有一定容错。这部分要不要算进分母、算进去之后引用率怎么变,我还没想清楚。
先把两戳抠出来对一下吧。
想问下做 GEO 跑批的朋友:你们采样动作是挂在拼接完成回调里,还是独立定时触发的?如果是独立触发的,有没有遇到过问句字段没写完就被采样写库的情况?你们怎么定“有效采样”的边界?
