语义查询不再丢掉旧标签:把历史答案当视图排序,新查询省下28%到45%的模型调用
核心概要
语义查询引擎每次过滤都要逐条调用大模型,SemViews把此前查询已付费的标签当作语义视图来排序元组,只用新抽的样本做认证,在四个工作负载上满足精度与召回目标的同时省下28%到45%的模型调用。
深度剖析
语义过滤的调用成本可以降下来,而且精度和召回目标仍然按概率得到保证。 此前的做法二选一:信任廉价代理的级联在30.8%到65.4%的查询上错过目标,而带有限样本保证的方法在代理较弱时只省下2%到10%的调用。 在四个工作负载、725,000条已记录的模型标签上回放,SemViews在99.63%的查询上同时达到精度与召回目标,唯一具有同类保证的先前方法需要1.32到1.71倍的调用。
旧查询留下的标签被当作语义视图,用来给新谓词的元组排序,而不是直接当作答案。 相似缓存和基于蕴含的复用把谓词之间的关系当作确定的,一旦命中就直接返回旧答案。 在四个谓词池上,大模型判定的蕴含关系有56%在真实标签上被超过10%的前件正例违反;相似缓存在命中时100%错过目标,SemWeave在6.2%到67.8%的查询上错过目标。
排序与认证被分开:免费信号只决定先看哪些元组,只有新抽的模型标签进入置信界。 逐查询优化器对整个关系抽样来估计阈值质量,并把当前谓词的每个标签都付费。 认证从固定区域中不放回抽样,用精确超几何界;在四个数据集上SemViews的错过率不超过0.7%,而更便宜的每个方法至少在32.4%的查询上错过目标。
同一个问题换种说法再问时,旧视图仍能省下调用。 改写后的谓词与原谓词在76%到99.8%的元组上一致,但两个正例集合的重叠只有0.57到0.95。 在改写工作负载上SemViews只需精确评估47%到53%的调用,比不用视图少27%到36%,错过率不超过0.2%,而相似缓存和SemWeave在53%到83%的这类查询上错过目标。
启示与展望
研究范围是文本上的语义过滤,连接、排序和多模态数据不在其中。实验关系为5,000个元组,另用100,000元组的真实关系验证趋势;每个工作负载按随机顺序发出一个谓词池的全部谓词,其中两个池由分类体系生成。想接着做的人可以关注语义连接与排序上的认证复用,以及真实分析会话多久会重问同一个问题。
保证是逐查询的,工作负载整体的错过率由集中不等式约束,而不是逐条确定。认证存在一个与谓词选择率有关、与关系大小无关的下限:选择率不超过2%的谓词要花掉精确评估80%的调用。视图带来的收益取决于工作负载里谓词的相关程度,GoEmotions这类由分类体系生成的池可能偏乐观,而人工撰写的PubMed池收益很小。两个用于固定超参数的数据集没有完全留出。
