Schema-First Retrieval: Embedding Catalogs for Natural Language Analytics
本文介绍了 Schema-First Retrieval(模式优先检索),这是一种新颖的检索层,它通过对多样化的目录元数据(表、列、指标、关系和查询历史)进行嵌入和索引,将目录上下文视为一个一等公民检索问题而非提示词格式化细节,从而显著提高企业级 Text-to-SQL 系统中的模式选择准确性并减少 SQL 执行错误。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图向一位非常聪明但有点糊涂的图书管理员询问一本特定的书。
问题:找错了书架
在旧有的做法中(论文中所称的“原始模式提示词/raw schema prompting”),你走到图书管理员面前说:“我想了解营收。”但图书管理员手头并没有一个标有“营收”的书架。相反,他们拥有成千上万个名称混乱的书架,比如 tbl_fin_2024_q3 或 amt_net_rev_lcl。
因为图书管理员不知道你指的是哪一个书架,他们可能会从错误的书架上取走一本书。他们可能会根据这本错误的书中内容写出一句完美的句子(SQL 代码),但这个答案将是毫无用处的。在大型企业中,这个“图书馆”(数据库)规模巨大且杂乱无章,图书管理员甚至在开始编写答案之前,就会抓错上下文。
解决方案:模式优先检索 (Schema-First Retrieval)
这篇论文介绍了一种名为**“模式优先检索”的新系统。与其让图书管理员从整个图书馆中去猜测,不如使用一个超级智能的目录卡片系统**,在图书管理员看到问题之前,就找到确切的正确信息。
以下是它的运作方式,使用简单的类比进行说明:
1. 五种类型的“目录卡片”
该系统不仅仅是查看书名,而是为图书馆中的每一条信息创建了五种特定类型的“卡片”:
- 表卡片 (Table Cards): 这些就像是“章节”标识(例如:“这一部分是关于学校的”)。
- 列卡片 (Column Cards): 这些就像是书中的特定“章节”或“行”(例如:“这一列列出了年级水平”)。
- 指标卡片 (Metric Cards): 这些就像是“术语表”或“业务字典”。如果你询问“流失率 (Churn)”,这张卡片会解释即使数据库将其称为其他名称,它实际上也意味着“停止使用服务的人”。
- 关系卡片 (Relationship Cards): 这些就像是“交叉引用”,告诉您两本书是如何连接在一起的(例如:“要查找总销售额,您必须将‘订单’书与‘客户’书进行关联连接”)。
- 历史卡片 (History Cards): 这些就像是“过往问题日志”。如果上周有人问过类似的问题,这张卡片会提醒系统:“嘿,我们上次使用这些特定的页面找到了答案。”
2. 搜索过程(“检索层”)
当你提出一个问题时,系统不会直接把整个图书馆都堆在图书管理员的桌子上。它执行一个三步搜索过程:
- 广撒网: 它使用一个“语义网”(AI 嵌入/embeddings)来捕捉任何在听觉上与你的问题相关的项,即使词汇不同。
- 专家评审 (重排序/Reranking): 第二个更仔细的 AI 会观察抓取到的项目。它会意识到:“等等,‘营收’通常存在于这个特定的表中,而不是那个。”它会将最匹配的项目重新排序,放在列表顶端。
- 记忆检查: 它会检查“历史卡片”。如果公司通常以某种特定方式询问“营收”,它会优先考虑那条路径。
3. “保安” (访问控制)
论文强调,不应该信任图书管理员(AI)去记住安全规则。相反,有一个保安站在门口。
- 在图书管理员看到书之前,保安会检查:“这个用户是否有权查看‘薪资’部分?”
- 如果没有,保安会物理性地移除那些页面。
- 如果图书管理员试图使用被禁止的页面来编写句子,保安会在句子发送之前将其拦截。这是通过严格的规则实现的,而不是通过要求图书管理员“请务必小心”。
4. 结果:更少的错误
论文在三个不同的“图书馆”(数据集)上测试了这个系统:
- 寻找正确的页面: 该系统找到正确的表和列的频率远高于旧方法。例如,在一次测试中,它找到正确表的概率为 96%,而旧方法的比例则低得多。
- 更少的破碎句子: 当系统使用这种“目录优先”的方法时,最终代码中的错误数量减少了 2.5 倍。
- 为什么? 通常,旧系统的失败是因为它不知道如何正确编写列名(例如,忘记在带有空格的名称周围加上引号)。因为新系统提取了已经具备正确格式的“列卡片”,所以图书管理员只需完美地复制即可。
核心总结
论文认为,自然语言分析 (Natural Language Analytics)(用普通英语提问)不应被视为一个“写作”问题。它实际上是一个**“搜索”**问题。
如果你给一个聪明的 AI 一张错误的地图,它会写出一句完美的句子,但却通向错误的地方。通过在 AI 开始写作之前构建一张更好的地图(目录)并找到正确的路径,你才能获得可靠、安全且准确的答案。AI 并不是在发现仓库,它只是根据系统为它找到的经过整理、安全且正确的文档来编写报告。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。