400-9900-579

IntaLink--区别于大模型的实现NL2SQL全新技术

发表时间:2024-10-28 17:26
       IntaLink的广泛应用场景

背景回顾:前述文章中提及“IntaLink的目标是实现数据集成领域的数据自动关联”。从文中可以看到,IntaLink解决的是“关系型数据多表自动关联的问题。

我们现在讨论一下,这个问题是否具有广泛的应用场景?还是一个没有实际需求的伪命题?


01
关系型数据仍是最重要的数据资产之一

虽然现在大模型、大数据平台等技术能够使用更多类型的信息,包括文档、图片、音视频等,如多模态生成式人工智能,可以文生视频、语音交互。由于生成的结果多数是属于开放式、主观性的认识,有时还存在“幻觉”。所以用于借鉴或者辅助工作是没有问题的。而在一些必须严谨的工作场景,我们不能基于这些信息以及大模型来完成工作任务。如银行、金融证券、交通信息、交易、财务、生产、能源等领域,核心的业务数据,必须用结构化的关系型数据进行管理。


02
数据建设必然是分散的

(1)关系型数据库的设计范式就要求数据要进行合理的拆分,避免数据存在大量的冗余。在数据建设阶段产生的数据,如果数据有大量的冗余,不只是数据采集工作量重复,数据的一致性也难以保障。我们从另一个角度来讲,假设相关数据都放在一个数据表中了,而由于这些数据项并不是来源于同一个业务,采集人、数据产生时间也不同,这样的数据记录无法维护。所以在数据建设阶段,一定会将数据按照面向对象、以业务活动为单位来组织数据。即将数据分散到不同数据表中存储。

(2)数据一定是来源于多系统。由于信息化建设工作不是一蹴而就的,一定会有建设的先后顺序。即使同一套系统内,也可能会有实施的先后顺序。另外,我们还要看到不同的应用场景需要不同的技术选型,如业务数据、实时数据、日志信息等,会采用不同的技术手段来实现,所以数据一定具有多来源性。


03
集成是发挥数据价值的最有效手段

数据一定会需要集成应用。数据集成应用的需求有各种可能性。如生产数据和计划数据集成,获取计划完成情况;生产数据和销售数据集成,可以判断是否有产品积压,或者是不满足定单交付;生产数据与财务数据集成,可以判断生产成本与盈利情况。因此,数据集成是实现数据价值最大化,为业务赋能的最有效途径。

综上,关系型数据的集成应用,在未来很长一段时间内,仍然是最重要的数据应用场景。而只要这个场景存在,IntaLink就有着广泛的适应性。

     IntaLink与人大模型的数据集成方法对比

T2SQL(Text to Sql、NL2SQL(Natural Language to SQL)就是过文本输入或者是自然语言输入,自动生成符合要求的数据查询。T2SQL这两种叫法实际上都是通过人工智能技术根据对语义的理解,转换成数据操作方法,是同一概念,只是称呼不同。这是人工智能在数据应用的一个研究方向。近年来,随着大模型技术的出现,这一研究领域又得到了较大发展。笔者研究了阿里、腾讯的一些技术报告,也试用了开源项目DB-GPT。这些技术大同小异,至少底层的技术逻辑是一致的。而IntaLink与这些技术实现的思路完全不同。

我们暂不关注底层技术逻辑,从实现方法对二者进行对比分析:

1、 利用大模型技术实现数据自动查询,需要用数据训练

我们可以假设有一组数据表,数据表名分别为T1、T2、……Tn,每个数据表中有若干个数据项,分别为C1、C2、Cn,各数据表中所具有的数据项个数不等。我们给定一个数据表T1的模拟数据,如下所示:

C1

C2

C3

C4

C5

C6

桔子

5

3

3

2

1


  单从上面给定的内容,我们其实得不到任何可用的信息。不清楚上面的数据代表的是什么意义。我们下面模拟给定两种数据意义:

水果种类

仓库号

货架号

库存量

保质期

库管员编号

桔子

5

3

3

2

1


酒店名称

热度排名

星级

营业年数

剩余房间数

是否有折扣

桔子

5

3

3

2

1


我们不纠结上面数据的合理性,以及是否真正有这样的数据表。但从示例中可以看出,如果不理解数据表和数据项的意义,数据是无法应用的。不能将数据应用需求关联到数据上,更谈不到更复杂的数据操作方法了。

我们以测试NL2SQL的一个数据集为例,说明大模型技术在此领域的应用模式。

       Spider数据集是多数据库、多表、单轮查询的T2S数据集,也是业界公认难度最大的大规模跨领域评测榜单,由2018年耶鲁大学提出,由11名耶鲁大学学生标注。其中包含了10181个自然语言问题,5693SQL语句。涉及138个不同领域的200多个数据库7000个问题用于训练,1034用于开发,2147用于测试也就是说通过给定问题以及问题的答案(SQL),让大模型理解数据的使用方法,然后再根据训练后的模型去使用数据。为了方便理解,我们可以简化成这样的逻辑:

问题1:库存红色的口红还有多少支?

答案1:select amount from warehouse where good_name=slipstick and color=red…….

当用这样的数据集训练完模型后,我们提出这样的问题:

测试问题:库存里还有多少只蓝色的口红?

输出答案:select amout from warehouse where good_name=slipstick and color=blue

从上面我们可以看出,NL2SQL更强调的是根据训练数据集,训练大模型后,在应用中,通过对语义和上下文的理解,基于已有的认识,推导出可能的SQL。

那么我们反过来看,这种技术在实际应用中会有诸多限制:

1) 应用前需要较多的输入,如果没有足够多的训练数据,大模型也是无法将自然语言输入转换为数据操作的;

2) 训练出来的模型无法使用新数据(是指范围,不是指记录),如果新增加了一个可用的数据资源,已有的训练结果是无法理解和使用的;

3) 准确度不足以支撑确定性的应用,目前只能做为辅助手段。在已知数据集下,经过训练和调优,准确度通常也就在80%~90%之间。

笔者认为,这种技术目前只能适用于数据内容确定,应用方法确定的场景。即使有好的应用效果,其优势也是在对自然语言的理解,以及生成式内容。并不是数据集成方法。

2、 IntaLink的数据集成方法

IntaLink的数据集成,不需要用户给定任何训练数据。数据之间的关系,是通过表间关系分析模型生成的。这种关系的生成不需要理解数据表和数据项的实际意义,而是通过一组方法,基于数据的特征值进行分析,推导出数据表间的关联关系。下面我们也用两个示例数据表说明表间关系的建立方法。

Tab_1

Name

Student_ID

CLASS

Age

Sex

张三

2021_0001

2021_01

19

李四

2021_0002

2021_01

18

王五

2021_0003

2021_01

19

Tab_2


XH(学号)

KC(课程)

CJ(成绩)

PM(排名)

2021_0001

数学

135

18

2021_0001

语文

110

23

2021_0002

数学

120

25

2021_0002

语文

125

10

我们可以看到Tab_1中的Student_ID和Tab_2的XH,具有相同的数据特征值,所以如果要关联使用这两张数据表,就有Tab_1.Student_ID=Tab_2.XH关联条件的成立。

当然这种表间关联条件的分析,需要考虑的问题比较多,我们在IntaLink中以复刻的数据特征值内存数据库为分析手段,采用一组优化的分析方法,形成了表间关系分析结果。由于涉及到的内容比较多,此处不展开讨论。后续会单开一篇文章,论述其实现的逻辑。


由此,我们可以看到IntaLink与大模型技术实现NL2SQL的不同:
图片

1)不需要准备训练大模型的问题集,是通过数据分析获取数据之间的逻辑,所以IntaLink可以适用于广泛的数据范围。当可集成的数据越多时,其优势越大。


2)侧重于数据的集成,即数据集成时关联条件的生成,而对于数据的使用方法并不关注。


注:数据集成关注的是如何建立多表之间的数据关联关系,而数据的使用方法可能有多种,如求和、计数、平均值、最小值、最大值、……。NL2SQL会根据语义选取合适的数据操作方法,如SUM、COUNT、AVG、MIN、MAX、……。


3)准确度高,如果抛开数据质量的问题,IntaLink生成的数据关联关系,准确度在理论上可以达到100%。

      IntaLink与大模型技术结合的可能性

大模型技术在语义的理解上,以及生成式内容方面具有较强的优势。而IntaLink在数据关联分析方面具有前置工作量少、准确度高的优势。IntaLink在数据集成时,需要用户显示输入需要应用的数据表和数据项,以及由用户在应用中自行实现数据的应用方法。理想的状态是,利用大模型技术,理解用户输入的需求,将用户输入信息,转换为需要应用的数据表和数据项。将确定的数据表和数据项内容传给IntaLink,由IntaLink生成用户所需的数据集,再由大模型的生成式技术,以合适的成果,如报表、曲线、文档报告等,展示给用户。


分享到:
全国统一服务热线
400-9900-579
商务合作:17200327995 微信咨询:17200327995 联系邮箱:lanfeng@primeto.cn

----------------------------
----------------------------
----------------------------
 联系方式
客服热线:400-xx6-8888
邮箱:abc@qq.com
400-9900-579