语义查询引擎使用大语言模型(LLM)对自然语言过滤条件进行评估,每一次评估都是一次昂贵的 oracle 调用。为了降低调用次数,现有优化器面临两难:使用廉价代理的级联方法往往达不到精度和召回要求,具备有限样本保证的方法节省不多,且所有方法在查询结束后都会丢弃 oracle 的标签。
我们提出 SemViews(语义视图),它是一种经认证的语义过滤器。SemViews 首先利用无需 oracle 调用的信号对元组排序,这些信号包括之前查询留下的标签(语义视图)、局部嵌入以及辅助模型的得分。随后在必须付费的标签上进一步细化排序,并通过新采样的分层 oracle 样本对答案进行认证。
该认证保证在任意工作负载和目录下,答案以至少 $1-\delta$ 的概率满足用户设定的精度和召回目标。因此,即使视图陈旧或误导,也只能导致额外的 oracle 调用,而不会降低准确性。
在四个工作负载上对 725,000 条已记录的 oracle 标签进行回放实验表明,SemViews 在 99.63% 的查询上同时满足精度和召回目标,并节省了 28%–45% 的 oracle 调用次数。相比之下,唯一在我们研究中提供相同保证的已有方法需要 1.32×–1.71× 的调用次数。
当同一问题以不同表述出现时,语义视图进一步将调用次数降低 27%–36%,且至少 99.8% 的此类查询仍满足两个目标;而相似度缓存和基于蕴含的复用仅能在 17%–47% 的查询上达到要求。
点评