LLM-based SPARQL生成思路及Natural Language to SQL综述

文摘   2024-10-12 09:30   北京  

今天是2024年10月12日,星期六,北京,天气晴。

我们今天来聚焦LLM-based SPARQL生成、Natural Language to SQL综述,供大家一起参考。

一、LLM-based SPARQL生成

《LLM-based SPARQL Query Generation from Natural Language over Federated Knowledge Graphs》(https://arxiv.org/pdf/2410.06062),这一工作利用知识图谱的元数据,包括查询示例和模式信息,以及一个验证步骤来纠正生成的查询,以提高查询生成的准确性并减少错误信息,从而将用户的自然语言问题转换成针对生物信息学知识图谱的联合SPARQL查询。

我们可以看看系统设计,系统设计的核心是利用大型语言模型(LLM)来生成准确的SPARQL查询,同时通过检索增强生成(RAG)和验证步骤来提高查询的准确性和减少错误信息。

系统输入为一系列SPARQL端点URL,每个端点都包含最小标准化的元数据。系统通过基于嵌入的相似性搜索获取相关上下文,构建提示,使用端点模式验证和纠正查询,并向用户展示查询和相关上下文

系统设计,具体得,包括以下几个关键步骤:

1、生成embedding并建立索引

系统在初始部署时自动检索每个端点的示例问题/查询对,并为每个问题生成嵌入并索引在向量数据库中。

此外,系统还生成并索引每个端点中类的形状(ShEx shapes),并从类OWL本体中检索标签和描述。

1)检索示例问题/查询对

系统在初始部署时,通过SPARQL查询自动从每个端点检索示例问题/查询对。

2)生成嵌入

为每个问题生成嵌入,并将其索引在向量数据库中,以便基于相似性搜索匹配用户提供的输入。

3) 索引类形状(ShEx shapes)

系统首先检索每个端点的VoID描述,这些描述详细说明了通过特定谓词连接的主体类和客体类或数据类型之间的关系。

然后,系统生成并索引每个类的形状,这些形状提供了关于类可用谓词的信息,以及这些谓词指向的相应类或数据类型。例如:

4)检索标签和描述

从类OWL本体中检索标签和描述,并将其索引在向量数据库中。如果没有找到标签或描述,则使用类URI作为标签。

5)索引端点的一般信息

从每个SPARQL端点主页上可用的schema.org元数据中检索端点的一般信息,并添加到向量数据库中。

2、Prompt构建

当用户提出问题时,系统会生成问题的嵌入,并从向量数据库中检索最相似的问题和类标签,然后将这些问题及其关联的查询和类标签及其关联的模式添加到提示中。

1)生成问题嵌入

当用户提出问题时,系统会为这个问题生成嵌入。

2)检索相似问题和类标签

从向量数据库中检索与用户问题最相似的问题和类标签。

3)构建提示

将检索到的问题及其关联的查询、类标签及其关联的模式添加到提示中,与用户问题一起。

3、验证生成的query

为了减少潜在错误,开发了一种基于端点的VoID描述验证联合SPARQL查询的方法。

1)验证联合SPARQL查询

基于端点的VoID描述来验证联合SPARQL查询。验证器解析生成的SPARQL查询,提取三元组模式,识别执行它们的端点,并检查查询中的三元组是否符合预期的模式。

2)错误处理

验证器生成一个人类可读的错误列表,描述哪些谓词不正确,相关的主体或类,以及基于模式的有效谓词列表。这些错误和更正然后提供回LLM以帮助纠正错误的查询。

二、Natural Language to SQL综述

《From Natural Language to SQL: Review of LLM-based Text-to-SQL Systems》(https://arxiv.org/abs/2410.01066),这篇文章是关于基于大型语言模型(LLM)的文本到SQL(Text-to-SQL)系统的综述。

可以看看,还不错。

文章介绍了从早期基于规则的模型到先进的LLM方法的演变,以及LLM如何影响这一领域。

文章还讨论了基准测试、评估方法和评估指标,并特别研究了知识图谱在这些系统中的集成作用,以提高上下文准确性和模式链接。

当前的技术主要分为两类:基于上下文的学习(in-context learning)和微调(fine-tuning),这导致了零样本(zero-shot)、少样本(few-shot)学习以及数据增强等方法的发展。

我们可以重点看看其中的几点:

1、Text-to-SQL技术的演变

从基于规则的方法到深度学习方法,再到预训练语言模型(PLMs)和大型语言模型(LLMs)的发展。

2、LLM-based Text-to-SQL架构

可以看看整个架构的一些构成步骤。

自然语言理解:LLM首先处理用户输入的自然语言查询,以理解用户的意图。

模式链接:将查询的组成部分映射到数据库模式中的相应表格、列和关系。

SQL生成:基于建立的语义关系生成SQL查询。

SQL执行和输出:在数据库上执行最终的SQL查询,并返回结果。

3、 LLM-based text-to-SQL的方案分类

分类树(taxonomy tree),它对基于大型语言模型(LLM)的文本到SQL(Text-to-SQL)研究进行了分类。

4、Four main evaluation metrics

关于主流的评估方式,也可以关注下,以提升对这一任务的理解。

参考文献

1、https://arxiv.org/abs/2410.01066

2、https://arxiv.org/pdf/2410.06062

关于我们

老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。

对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。

加入会员方式:关注公众号,在后台菜单栏中点击会员社区->会员入群加入


老刘说NLP
老刘,NLP开源爱好者与践行者。主页:https://liuhuanyong.github.io。老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。
 最新文章