0
雷锋网开发者按:10 月 12 日下午,由追一科技主办、南京大学计算机软件新技术国家重点实验室协办的「首届中文 NL2SQL 挑战赛」总决赛答辩暨颁奖典礼在南京大学举行。经过最终决赛的 5 强选手队伍精彩分享、答辩和现场评委考评,决出最终名次。来自国防科技大学的选手团队「不上 90 不改名字」夺得冠军。
值得一提的是,此次 NL2SQL 挑战赛是国内首次举办,NL2SQL(自然语言转结构化查询语句)作为新兴的研究领域,在国外由 SalesForce 耶鲁大学等发布了 WikiSQL 和 Spider 数据集,但在国内市场,目前还处于起步阶段。
经过选手的不断努力与探索,比赛任务短期内就达到与英文数据集上相当水平的分数,并持续刷新记录。比赛初期,准确率尚为 60% 多,至 8 月份初赛结束时,榜上头部分数已经达到 89%,接近 WikiSQL 成绩。复赛结束时,选手最高成绩达到 92%,并且,最终晋级决赛的 5 支队伍,个个都在「90 分」以上。
比赛期间,追一科技发布了业内首个大规模的中文数据集,包括 4870 张表格数据、近 50000 条标注数据以及相应的 SQL 语句,并获得很多学界专家、产业界伙伴的支持,通过「产学研」等多方联动,希望提供一个平台,来推动 NL2SQL 的研究和应用。
NL2SQL 有什么用?
简单来说,NL2SQL 可以让非专业人士,不需要学习和掌握数据库程序语言,就可以自由地查询各种丰富的数据库,主要体现在:
说句话就行。
没有条条框框的限制,内容和信息更加丰富。以前是程序员写一个「模板」,在这个模板里查询内容。
NL2SQL 的实现,运用了大量前沿的人工智能算法模型,比如运用了多个预训练语言模型,相当于 AI 大脑,让 AI 读懂用户语言;运用了图神经网络,让 AI「看到」数据库,一目十行过目不忘,而且更加清晰地分清每个表。
在具体使用场景上,NL2SQL 可以用在基于结构化知识的智能交互(问答),比如用户问「我上个月在南京的差旅住宿,花了多少钱?」这里面有时间上个月,地点南京,项目差旅等多个维信息检索需求,甚至更复杂、更多维的问题,AI 也可以解答。
此外,NL2SQl 也可以用在搜索引擎的优化上,让搜索引擎更「聪明」。现在的信息检索技术,在检索文本时,对于文本中存在的表格内容是无区别对待的,也当做普通的文本来处理;结合 NL2SQL,可以让检索模型结合普通文本及表格类文本进行更智能的检索。
冠军方案解读
据了解,本次 1457 支参赛队伍中,院校和企业参与者各占「半壁江山」。
其中,学生及科研人员占比 48%,企业技术员工占比 52%。学生参赛队伍来自众多知名院校,如北京大学、清华大学、复旦大学、上海交通大学、南京大学、浙江大学、中国科学技术大学、哈尔滨工业大学、西安交通大学等。
而本场赛事冠军队伍「不上 90 不改名字」的组员都来自国防科技大学,分别由队长张啸宇(负责模型设计、方案调优)、队员赛斌(负责模型设计)以及队员王苏宏(负责数据预处理)组成。
据介绍,为了准备这场比赛,张啸宇与队员们预先花了 2、3 天时间把 nl2sql 相关论文均看一遍,最终发现X-SQL 是 WikiSQL 表现最好的模型。
由于 X-SQL 作者并未开源代码,因此他们只能尝试自己复现,结果在复现过程中发现 X-SQL 有一个显著性问题:value 抽取时,字段特征并不明显。
针对此问题,他们提出了两个子模型——value抽取和value匹配,来替换 X-SQL 中原有的 value 抽取方式。当中,value抽取用于抽取所有的value,而value匹配用于判断value和表字段的所属关系。这也就是他们在赛事中提出的 M-SQL 模型,无论精度还是运行效率都达到了商用水平。
据他们介绍,在没有进行任何调优的情况下,X-SQL 的 baseline 就达到了 83+,在此基础上, M-SQL 模型的训练以及推理效率都非常高,是所有参赛选手中最快的,训练时每个 epoch 只要 20 分钟,大概 3~4 个 epoch 即可收敛。
不过该模型也并非尽善尽美,当中最关键的不足之处,是从query中抽取的value需要和数据表中内容进行匹配,因为采用的是基于字符串匹配特征的逻辑回归模型,导致该模型无法处理语义匹配问题(如腾讯vs企鹅)。
为此,他们曾在比赛时尝试使用神经网络的方式做语义匹配,然而最终结果精度尚可,但运行效率偏低,因此最终并未在复赛方案进行采用。
如何又好又快的做语义匹配,是他们认为该模型未来可以进行改进的点。
详细方案解读可查看:https://github.com/nudtnlp/tianchi-nl2sql-top1
雷锋网开发者 雷锋网
雷峰网原创文章,未经授权禁止转载。详情见转载须知。