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
雷鋒網開發者 雷鋒網
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。