0
本文作者: 黃善清 | 2019-10-29 17:39 |
雷鋒網(wǎng)開(kāi)發(fā)者按:10 月 12 日下午,由追一科技主辦、南京大學(xué)計(jì)算機(jī)軟件新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室協(xié)辦的「首屆中文 NL2SQL 挑戰(zhàn)賽」總決賽答辯暨頒獎(jiǎng)典禮在南京大學(xué)舉行。經(jīng)過(guò)最終決賽的 5 強(qiáng)選手隊(duì)伍精彩分享、答辯和現(xiàn)場(chǎng)評(píng)委考評(píng),決出最終名次。來(lái)自國(guó)防科技大學(xué)的選手團(tuán)隊(duì)「不上 90 不改名字」奪得冠軍。
值得一提的是,此次 NL2SQL 挑戰(zhàn)賽是國(guó)內(nèi)首次舉辦,NL2SQL(自然語(yǔ)言轉(zhuǎn)結(jié)構(gòu)化查詢語(yǔ)句)作為新興的研究領(lǐng)域,在國(guó)外由 SalesForce 耶魯大學(xué)等發(fā)布了 WikiSQL 和 Spider 數(shù)據(jù)集,但在國(guó)內(nèi)市場(chǎng),目前還處于起步階段。
經(jīng)過(guò)選手的不斷努力與探索,比賽任務(wù)短期內(nèi)就達(dá)到與英文數(shù)據(jù)集上相當(dāng)水平的分?jǐn)?shù),并持續(xù)刷新記錄。比賽初期,準(zhǔn)確率尚為 60% 多,至 8 月份初賽結(jié)束時(shí),榜上頭部分?jǐn)?shù)已經(jīng)達(dá)到 89%,接近 WikiSQL 成績(jī)。復(fù)賽結(jié)束時(shí),選手最高成績(jī)達(dá)到 92%,并且,最終晉級(jí)決賽的 5 支隊(duì)伍,個(gè)個(gè)都在「90 分」以上。
比賽期間,追一科技發(fā)布了業(yè)內(nèi)首個(gè)大規(guī)模的中文數(shù)據(jù)集,包括 4870 張表格數(shù)據(jù)、近 50000 條標(biāo)注數(shù)據(jù)以及相應(yīng)的 SQL 語(yǔ)句,并獲得很多學(xué)界專家、產(chǎn)業(yè)界伙伴的支持,通過(guò)「產(chǎn)學(xué)研」等多方聯(lián)動(dòng),希望提供一個(gè)平臺(tái),來(lái)推動(dòng) NL2SQL 的研究和應(yīng)用。
NL2SQL 有什么用?
簡(jiǎn)單來(lái)說(shuō),NL2SQL 可以讓非專業(yè)人士,不需要學(xué)習(xí)和掌握數(shù)據(jù)庫(kù)程序語(yǔ)言,就可以自由地查詢各種豐富的數(shù)據(jù)庫(kù),主要體現(xiàn)在:
說(shuō)句話就行。
沒(méi)有條條框框的限制,內(nèi)容和信息更加豐富。以前是程序員寫(xiě)一個(gè)「模板」,在這個(gè)模板里查詢內(nèi)容。
NL2SQL 的實(shí)現(xiàn),運(yùn)用了大量前沿的人工智能算法模型,比如運(yùn)用了多個(gè)預(yù)訓(xùn)練語(yǔ)言模型,相當(dāng)于 AI 大腦,讓 AI 讀懂用戶語(yǔ)言;運(yùn)用了圖神經(jīng)網(wǎng)絡(luò),讓 AI「看到」數(shù)據(jù)庫(kù),一目十行過(guò)目不忘,而且更加清晰地分清每個(gè)表。
在具體使用場(chǎng)景上,NL2SQL 可以用在基于結(jié)構(gòu)化知識(shí)的智能交互(問(wèn)答),比如用戶問(wèn)「我上個(gè)月在南京的差旅住宿,花了多少錢(qián)?」這里面有時(shí)間上個(gè)月,地點(diǎn)南京,項(xiàng)目差旅等多個(gè)維信息檢索需求,甚至更復(fù)雜、更多維的問(wèn)題,AI 也可以解答。
此外,NL2SQl 也可以用在搜索引擎的優(yōu)化上,讓搜索引擎更「聰明」?,F(xiàn)在的信息檢索技術(shù),在檢索文本時(shí),對(duì)于文本中存在的表格內(nèi)容是無(wú)區(qū)別對(duì)待的,也當(dāng)做普通的文本來(lái)處理;結(jié)合 NL2SQL,可以讓檢索模型結(jié)合普通文本及表格類文本進(jìn)行更智能的檢索。
冠軍方案解讀
據(jù)了解,本次 1457 支參賽隊(duì)伍中,院校和企業(yè)參與者各占「半壁江山」。
其中,學(xué)生及科研人員占比 48%,企業(yè)技術(shù)員工占比 52%。學(xué)生參賽隊(duì)伍來(lái)自眾多知名院校,如北京大學(xué)、清華大學(xué)、復(fù)旦大學(xué)、上海交通大學(xué)、南京大學(xué)、浙江大學(xué)、中國(guó)科學(xué)技術(shù)大學(xué)、哈爾濱工業(yè)大學(xué)、西安交通大學(xué)等。
而本場(chǎng)賽事冠軍隊(duì)伍「不上 90 不改名字」的組員都來(lái)自國(guó)防科技大學(xué),分別由隊(duì)長(zhǎng)張嘯宇(負(fù)責(zé)模型設(shè)計(jì)、方案調(diào)優(yōu))、隊(duì)員賽斌(負(fù)責(zé)模型設(shè)計(jì))以及隊(duì)員王蘇宏(負(fù)責(zé)數(shù)據(jù)預(yù)處理)組成。
據(jù)介紹,為了準(zhǔn)備這場(chǎng)比賽,張嘯宇與隊(duì)員們預(yù)先花了 2、3 天時(shí)間把 nl2sql 相關(guān)論文均看一遍,最終發(fā)現(xiàn)X-SQL 是 WikiSQL 表現(xiàn)最好的模型。
由于 X-SQL 作者并未開(kāi)源代碼,因此他們只能嘗試自己復(fù)現(xiàn),結(jié)果在復(fù)現(xiàn)過(guò)程中發(fā)現(xiàn) X-SQL 有一個(gè)顯著性問(wèn)題:value 抽取時(shí),字段特征并不明顯。
針對(duì)此問(wèn)題,他們提出了兩個(gè)子模型——value抽取和value匹配,來(lái)替換 X-SQL 中原有的 value 抽取方式。當(dāng)中,value抽取用于抽取所有的value,而value匹配用于判斷value和表字段的所屬關(guān)系。這也就是他們?cè)谫愂轮刑岢龅?M-SQL 模型,無(wú)論精度還是運(yùn)行效率都達(dá)到了商用水平。
據(jù)他們介紹,在沒(méi)有進(jìn)行任何調(diào)優(yōu)的情況下,X-SQL 的 baseline 就達(dá)到了 83+,在此基礎(chǔ)上, M-SQL 模型的訓(xùn)練以及推理效率都非常高,是所有參賽選手中最快的,訓(xùn)練時(shí)每個(gè) epoch 只要 20 分鐘,大概 3~4 個(gè) epoch 即可收斂。
不過(guò)該模型也并非盡善盡美,當(dāng)中最關(guān)鍵的不足之處,是從query中抽取的value需要和數(shù)據(jù)表中內(nèi)容進(jìn)行匹配,因?yàn)椴捎玫氖腔谧址ヅ涮卣鞯倪壿嫽貧w模型,導(dǎo)致該模型無(wú)法處理語(yǔ)義匹配問(wèn)題(如騰訊vs企鵝)。
為此,他們?cè)诒荣悤r(shí)嘗試使用神經(jīng)網(wǎng)絡(luò)的方式做語(yǔ)義匹配,然而最終結(jié)果精度尚可,但運(yùn)行效率偏低,因此最終并未在復(fù)賽方案進(jìn)行采用。
如何又好又快的做語(yǔ)義匹配,是他們認(rèn)為該模型未來(lái)可以進(jìn)行改進(jìn)的點(diǎn)。
詳細(xì)方案解讀可查看:https://github.com/nudtnlp/tianchi-nl2sql-top1
雷鋒網(wǎng)開(kāi)發(fā)者 雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。