公开/公告号CN116340584A
专利类型发明专利
公开/公告日2023-06-27
原文格式PDF
申请/专利权人 杭州悦数科技有限公司;
申请/专利号CN202310590729.8
申请日2023-05-24
分类号G06F16/901(2019.01);G06F16/9032(2019.01);
代理机构杭州裕阳联合专利代理有限公司 33289;
代理人张解翠
地址 310000 浙江省杭州市余杭区仓前街道时代未来之城5幢2201室
入库时间 2024-01-17 01:13:28
法律状态公告日
法律状态信息
法律状态
2023-08-11
授权
发明专利权授予
2023-07-14
实质审查的生效 IPC(主分类):G06F16/901 专利申请号:2023105907298 申请日:20230524
实质审查的生效
2023-06-27
公开
发明专利申请公布
技术领域
本申请涉及图数据库查询技术领域,尤其是一种自动生成复杂图数据库查询语句服务的实现方法。
背景技术
图数据库语言是用于查询和操作图数据库(Graph Database)中的数据的编程语言。图数据库是一种特殊类型的数据库,使用图结构存储数据,并通过节点(Node)和边(Edge)的连接来表示数据之间的关系。与关系型数据库不同,图数据库通常更适合处理复杂的数据结构和关系,因此在社交网络、推荐系统、地理信息系统等领域得到了广泛的应用,图数据库语言是用于查询和操作图数据库中数据的编程语言。不同的图数据库通常使用不同的语言,但它们的基本原理和语法类似,都是用于描述节点和边之间的关系,查询和操作图数据。
在大型应用程序中,图数据库越来越被广泛使用,以管理高度关联的数据。然而,写复杂的查询语句是一项繁琐的任务,需要用户熟悉数据库结构和语法,而对于不具备数据库结构和语法背景知识的普通用户则无法对图数据库进行检索查询,这给普通用户带来了非常大的困扰。
发明内容
本申请的目的在于克服现有技术中无法使用自然语言对图数据库进行检索查询的难题,提供一种自动生成复杂图数据库查询语句服务的实现方法。
第一方面,提供了一种自动生成复杂图数据库查询语句服务的实现方法,包括:
对大规模语言模型进行预训练和微调;
从用户所在的图谱上抽取图元信息,以使得在生成图数据库查询语句时将图元信息作为上下文提供给大规模语言模型;
大规模语言模型根据用户在查询截面的输入自动生成提示结果和/或图数据库查询语句;
执行图数据库查询语句,以获取图上的实时查询结果,并根据所述实时查询结果对图数据库查询语句进行检查、执行和验证。
进一步的,所述大规模语言模型包括LLM模型或GPT模型。
进一步的,所述大规模语言模型采用prompt模板封装。
进一步的,所述对大规模语言模型进行预训练包括:利用大规模的通用语料库对大规模语言模型进行预训练,以使得大规模语言模型能够学习到通用的语言模式和语义规则,其中,所述通用语料库包括维基百科、新闻报道和学术论文。
进一步的,对大规模语言模型进行微调包括:
收集并准备特定任务的有标注数据集;
加载预训练好的大规模语言模型的权重;
根据具体任务的要求,调整大规模语言模型的参数;
利用有标注数据集对大规模语言模型进行微调,并根据验证集的表现进行参数调整;
利用测试集对微调后的大规模语言模型进行评估。
进一步的,所述图数据库查询语句中带有行内注释,且所述图数据库查询语句能够二次编辑。
进一步的,大规模语言模型根据用户在查询截面的输入自动生成提示结果和/或图数据库查询语句包括:
获取用户在查询截面输入的请求描述;
将所述请求描述和当前图的id发送给所述大规模语言模型的后端接口;
所述大规模语言模型的后端接口根据当前图的id获得图元信息,并构造面向打语音模型的查询prompt;
所述后端接口以流式方式返回大语言模型输出的结果。
进一步的,根据所述实时查询结果,为用户提供图数据库查询语句修改建议。
第二方面,提供了一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如第一方面中的任意一种实现方式中方法的步骤。
第三方面,提供了一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中的任意一种实现方式中的方法。
本申请具有如下有益效果:
1、该方法引入大规模语言模型以及抽取图元信息,能够通过使用自然语言描述查询需求,使得用户无需熟悉数据库结构和语法即可生成复杂的图数据库查询语句;
2、能够将该方法内嵌在撰写图查询的界面内部,作为实时响应的职能补全,加速图用户的复杂查询撰写和查询模板预生成,另外,图元信息将被自动获取,无需人为明确指定,大大提升使用体验和效率;
3、针对不同具体场景,结合算力成本,使用不同的大规模语言模型和模型训练的微调方式,特别是针对NebulaGraph图语言领域的语法和语义进行针对性的微调,能够有效的增加图数据库查询语句的生成效果和效率;
4、该方法使用 Prompt 模板来规定自然语言的书写规范、细节和输入输出格式的例子,从而使得大规模语言模型能够更准确地理解查询意图,并生成符合用户预期的图数据库查询语句。
附图说明
构成本申请的一部分的附图用于来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的自动生成复杂图数据库查询语句服务的实现方法的流程图;
图2是本申请实施例一的自动生成复杂图数据库查询语句服务的实现方法中微调的流程图;
图3是本申请实施例一的自动生成复杂图数据库查询语句服务的实现方法中提示结果和/或图数据库查询语句生成的流程图;
图4是本申请实施例二的电子设备的内部结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本申请实施例一所涉及的一种自动生成复杂图数据库查询语句服务的实现方法,包括:。
具体的,图1示出了申请实施例一中的自动生成复杂图数据库查询语句服务的实现方法的流程图,包括:
S100、对大规模语言模型进行预训练和微调;
具体的,大规模语言模型可以是LLM模型或GPT模型,也可以是自主开发的语言模型,且大规模语言模型使用 prompt 模板封装,用自然语言规定书写的规范、细节以及输入输出格式的例子,以及图数据库的 schema,生成自然语言描述的查询语句,从而使得大规模语言模型能够更准确地理解查询意图,并生成符合用户预期的图数据库查询语句;
其中,对大规模语言模型进行预训练包括:利用大规模的通用语料库对大规模语言模型进行预训练,以使得大规模语言模型能够学习到通用的语言模式和语义规则,其中,所述通用语料库包括维基百科、新闻报道和学术论文;
大规模语言模型的微调(即fine-tuning 阶段)是指在预训练(pre-training)完成后,将已经训练好的模型在特定任务上进行微调的过程,在这个过程中,通常需要为特定任务收集一些有标注的数据集,然后利用这些数据集来微调预训练好的模型,以便让模型更好地适应特定任务的需求,fine-tuning 过程的关键在于权衡模型的泛化能力和对特定任务的适应能力。因为模型在预训练(pre-training)阶段已经学习了大量的自然语言结构和规律,所以 fine-tuning 阶段通常只需要使用少量的有标注数据即可在特定任务上获得较好的性能;
如图2所示,对大规模语言模型进行微调包括:
S101、收集并准备特定任务的有标注数据集;
S102、加载预训练好的大规模语言模型的权重;
S103、根据具体任务的要求,调整大规模语言模型的参数;
S104、利用有标注数据集对大规模语言模型进行微调,并根据验证集的表现进行参数调整;
S105、利用测试集对微调后的大规模语言模型进行评估。
GPT模型是一个基于Transformer的自回归语言模型,通过预训练的方式,使得模型能够生成符合语言学规则和语言上下文的自然语言文本,在本申请中,采用GPT模型作为自然语言理解的核心模型,用来根据用户的自然语言输入生成符合用户预期的查询语句;
在GPT模型的预训练阶段,可以使用大规模的通用语料库,如维基百科、新闻报道等来预训练模型,从而使得GPT模型能够学习到通用的语言模式和语义规则,在GPT模型微调的过程中,使用本领域的语料库(如图数据库领域的文档、书籍等)对GPT模型进行有针对性的微调,从而使得GPT模型更好地适应本领域的语言特征和查询需求;
在实际应用中,为了满足实时性和效率的要求,可以使用较小的GPT模型,如GPT-2和GPT-3的中等和小型版本,进行推理和查询语句的生成,这些模型在预训练阶段中使用的数据规模较小,但在微调阶段中,可以利用本领域的语料库对其进行有针对性的训练,从而使得模型更好地适应本领域的查询需求;
总体来说,GPT模型作为自然语言理解的核心模型,在本申请中发挥了关键作用,通过对模型的预训练和微调,使得GPT模型能够更好地理解用户的自然语言输入,并生成符合用户预期的查询语句,而对于不同的应用场景和要求,可以采用不同规模的模型进行推理和生成,从而实现更好的效果和效率。
S200、从用户所在的图谱上抽取图元信息(即schema结构),以使得在生成图数据库查询语句时将图元信息作为上下文提供给大规模语言模型;
在图元信息抽取阶段,可以采用自动化抽取算法,避免用户显式提供图元信息,提升用户体验和提示准确性,无需人为明确指定,大大提升了使用体验和效率,并且在调用查询建议请求时,将图元信息作为上下文提供给大规模语言模型。
S300、大规模语言模型根据用户在查询截面的输入自动生成提示结果和/或图数据库查询语句,其中,图数据库查询语句中带有行内注释,以便用户能够对图数据库查询语句进行理解,且所述图数据库查询语句能够二次编辑,即用户能够在对话框内直接对图数据库查询语句进行二次编辑,给用户带来了极大的方便;
如图3所示,大规模语言模型根据用户在查询截面的输入自动生成提示结果和/或图数据库查询语句包括:
S301、获取用户在查询截面输入的请求描述,例如:“获得给定两个人的共同好友”;
S302、将所述请求描述和当前图的id发送给所述大规模语言模型的后端接口;
S303、所述大规模语言模型的后端接口根据当前图的id获得图元信息,并构造面向打语音模型的查询prompt;
S304、所述后端接口以流式方式返回大语言模型输出的结果。
也就是说,大规模语言模型根据用户在查询截面的输入可以反馈提示结果,也可以直接生产图数据库查询语句,具体的,当用户所输入的自然语言表述有错误、表述不清晰或表述不充分,则可以输出引导式的提示结果,以引导用户对输入进行补充或修正,当用户输入的自然语言已经足以生成图数据库查询语句,则可以直接生成并输出图数据库查询语句。
其中,后端接口将用户输入的信息传递给通用大型 GPT 模型进行推理,在当前的示例中,使用了OpenAI所提供的API;但实际使用中,任何主流的语言大模型LLM都可以满足将自然语言转换为图数据库DDL、DML和DQL的要求,该模型使用 prompt 模板封装,用自然语言规定书写的规范、细节以及输入输出格式的例子,以及图数据库的 schema,生成自然语言描述的查询语句
S400、执行图数据库查询语句,以获取图上的实时查询结果,并根据所述实时查询结果对图数据库查询语句进行检查、执行和验证。
该步骤即为实时反馈循环阶段,利用大规模语言模型的生成能力,根据所述实时查询结果,为用户提供多种可能的查询语句建议,用户可以根据需求和实际情况进行选择和微调。
综上所述,本技术方案通过利用大规模语言模型(LLM)、生成式预训练模型(GPT)进行微调(针对性)训练,实现了自动生成复杂图数据库查询语句的方法,通过抽取图元信息(schema结构)作为上下文,提高了查询建议的准确性和用户体验,同时,实时反馈循环使用户能够不断检查、执行、验证查询语句,将LLM/GPT的潜力发挥到极致,该技术方案具有较高的创新性和实用性,有望在图数据库领域取得显著的应用成果。
实施例二
本申请实施例二所涉及的一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如本申请实施例一中的任意一种实现方式中方法的步骤;
其中,计算机可读存储介质可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM);计算机可读存储介质可以存储程序代码,当计算机可读存储介质中存储的程序被处理器执行时,处理器用于执行如本申请实施例一中的任意一种实现方式中方法的步骤。
实施例三
如图4所示,本申请实施例三所涉及的一种电子设备,所述电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如本申请实施例一中的任意一种实现方式中的方法;
其中,处理器可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例一中的任意一种实现方式中的方法。
处理器还可以是一种集成电路电子设备,具有信号的处理能力。在实现过程中,本申请实施例一中的任意一种实现方式中方法的各个步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器还可以是通用处理器、数字信号处理器、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成本申请实施例的数据处理的装置中包括的单元所需执行的功能,或者执行本申请实施例一中的任意一种实现方式中方法。
以上,仅为本申请较佳的具体实施方式;但本申请的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其改进构思加以等同替换或改变,都应涵盖在本申请的保护范围内。
机译: 自动生成和转换代码的方法,等同于获取目标信息,以供用户在计算机网络(版本)中使用,以及自动复杂的方法以实现
机译: 一种实现多媒体消息服务的方法,一种多媒体消息系统,一种多媒体消息系统的服务器以及一种多媒体终端
机译: 一种实现多媒体消息服务的方法,一种多媒体消息系统,一种多媒体消息系统的服务器以及一种多媒体终端