NL2SQL基礎系列(1):業界頂尖排行榜、權威測評資料集及LLM大模型(Spider vs BIRD)全面對比優劣分析[Text2SQL、Text2DSL]

汀、人工智能發表於2024-04-10

NL2SQL基礎系列(1):業界頂尖排行榜、權威測評資料集及LLM大模型(Spider vs BIRD)全面對比優劣分析[Text2SQL、Text2DSL]

Text-to-SQL(或者Text2SQL),顧名思義就是把文字轉化為SQL語言,更學術一點的定義是:把資料庫領域下的自然語言(Natural Language,NL)問題,轉化為在關係型資料庫中可以執行的結構化詢語言(Structured Query Language,SQL),因此Text-to-SQL也可以被簡寫為NL2SQL。

  • 輸入:自然語言問題,比如“查詢表t_user的相關資訊,結果按id降序排序,只保留前10個資料”
  • 輸出:SQL,比如“SELECT * FROM t_user ORDER BY id DESC LIMIT 10”

使用 NL2SQL 的技術方案,使用者與資料庫之間的距離可以進一步縮短,使用者可以更自由地查詢更多資訊、表達自己更豐富的查詢意圖,還可以減輕目前技術方案的繁瑣,解放開發人員。

1.NL2SQL情況

1.1 NL2SQL的發展歷史

NL2SQL的歷史要追溯到1973年,Woods等人開發了一個名為LUNAR的系統,主要用來回答從月球帶回來的岩石相關的問題。1978年,Hendrix設計了一個名叫LIFER/LADDER的介面,可以透過自然語言查詢資料庫。但是上面提到的系統都是針對特定資料庫開發的,而且只支援單表操作。2008年,Siasar等人基於句法和語義知識的基本概念提出了專家系統,並提出一個能夠從多個結果中選擇一個合適查詢語句的演算法。2010年,Rao等人提出了一個包含簡單和隱式查詢的系統。2013年,Chaudhari使用原型技術實現了一個能夠處理簡單查詢和聚合函式的系統。雖然這些系統能夠生成不同的查詢語句,但依然無法支援多表關聯的問題。2014年,Ghosh等人基於Chaudhari的研究成果,在其基礎上又開發了一個自動查詢生成器,它採用語音或自然語言文字作為輸入,支援簡單的巢狀查詢和聚合操作,同時系統還能夠處理那些明確指出的屬性。同年,Reinaldha和Widagdo使用了不同的方法來研究使用者不同形式的輸入,他們採用語義規則來找出問題中出現的詞與資料庫中的屬性之間的關係。2015年,Palakurthi等人提供了與屬性型別和分類特徵相關的資訊,描述了不同屬性出現在句子中的處理方式也是不一樣的。2016年,Ghosal等人提出了一個系統,能夠很好地處理多表簡單查詢,不過系統使用的資料字典有限。同年,Kaur and J, Jan 強化了系統的簡單查詢和連線操作,但不支援聚合函式、GROUPBY和HAVING等高階子句。Singh and Solanki也提出了一種將自然語言轉為sql查詢的演算法。他們使用動詞表、名詞表和規則將屬性和表對映到句子中的單詞,系統還靈巧地處理了文字的模糊輸入。2017年,Google開發了Analyza系統,一個以自然語言為人機互動的介面的系統,支援使用者用自然語言做資料探索與資料分析。該系統已在Google兩個產品中投入使用,一是Online Sheet產品的QA問答模組,二是提供了一個庫存和收入資料資料庫的一個訪問入口。同年,Sukthankar, Nandan等人開發了nQuery系統,一個自然語言到SQL的查詢生成器,支援聚合函式,以及where子句中的多個條件、高階子句(如order by、group by和having)操作。2018年,Utama, Prasetya等人開發了DBPal工具,一個面向資料庫的端到端的自然語言介面。DBPal主要有兩大特性,一是採用深度模型將自然語言語句轉為SQL,二是在使用者不知道資料庫模式和查詢特性的情況下,支援短語提問,同時支援使用者查詢擴充套件提示,有助於提高查詢效果。

1.2 NL2SQL 業內情況

1.2.1 測評指標

Text-to-SQL任務的評價方法主要包含兩種:精確匹配率(Exact Match, Accqm)、執行正確率(Execution Accuracy, Accex)

  • Execution Accuracy (EX) [paper]

    • 定義:計算SQL執行結果正確的數量在資料集中的比例,結果存在高估的可能。
  • Exact Match (EM) [paper]

    • 定義:計算模型生成的SQL和標註SQL的匹配程度,結果存在低估的可能。

精確匹配率指,預測得到的SQL語句與標準SQL語句精確匹配成功的問題佔比。為了處理由成分順序帶來的匹配錯誤,當前精確匹配評估將預測的SQL語句和標準SQL語句按著SQL關鍵詞分成多個子句,每個子句中的成分表示為集合,當兩個子句對應的集合相同則兩個子句相同,當兩個SQL所有子句相同則兩個SQL精確匹配成功;

執行正確指,執行預測的SQL語句,資料庫返回正確答案的問題佔比。

1.2.2 業界排行榜

1.3 相關論文綜述

  • (2023-International Conference on Very Large Data Bases, VLDB, CCF-A)A survey on deep learning approaches for text-to-SQL [paper]
  • (2022-IEEE Transactions on Knowledge and Data Engineering, TKDE, CCF-A) A Survey on Text-to-SQL Parsing: Concepts, Methods, and Future Directions [paper]
  • (2022-International Conference on Computational Linguistics, COLOING, CCF-B) Recent Advances in Text-to-SQL: A Survey of What We Have and What We Expect [paper]
  • (2022-arXiv)Deep Learning Driven Natural Languages Text to SQL Query Conversion: A Survey [paper]

2.業內標準資料集介紹

2.1 資料集彙總

  • 根據包含領域數量,資料集分為單領域和多領域。

  • 根據每個資料庫包含表的數量,資料集分為單表和多表模式。在多表模式中,SQL生成涉及到表格的選擇。

  • 根據問題複雜度,資料集分為簡單問題和複雜問題模式,其中問題複雜度由SQL查詢語句涉及到的關鍵詞數量、巢狀層次、子句數量等確定。

  • 根據完整SQL生成所需輪數,資料集分為單輪和多輪。

  • 若SQL生成融進漸進式對話,則資料集增加“結合對話”標記。當前只有CoSQL資料集是融進對話的資料集。

  • WikiSQL [paper] [code] [dataset]

    • 2017年9月,Salesforce提出的一個大型的Text-to-SQL資料集,資料來源於Wikipedia,屬於單領域,包含了80654個自然語言問題,77840個SQL語句,SQL語句形式比較簡單,不包含排序、分組、子查詢等複雜操作。包含了 24,241張表,80,645條自然語言問句及相應的SQL語句。由於該資料集的sql形式簡單,不支援多列選擇,or、group by、order by、limit等操作,而且只支援單表操作,所以相對而言任務比較簡單,目前學術界的預測準確率最高可達93%+。

    • WikiSQL的問題長度815個詞居多,查詢長度811個詞居多,表的列數5~7個居多,另外,大多數問題是what型別,其次是which、name、how many、who等型別。

  • Spider [paper] [code] [dataset]

    • 2018年9月,耶魯大學提出的多資料庫、多表、單輪查詢的Text-to-SQL資料集,也是業界公認難度最大的大規模跨領域評測榜單,包含了10181個自然語言問題,5693個SQL語句,涉及138個不同領域的200多個資料庫,難易程度分為:簡單、中等、困難、特別困難。2024年2月,耶魯大學開源了Spider1.0排行榜單的test資料集,並且他們將在3月開源Spider 2.0資料集。

  • SParC [paper] [code] [dataset]

    • 2019年6月,耶魯大學提出了一個大型資料集SParC,用於複雜、跨域、上下文相關(多輪)語義解析和Text-to-SQL任務,該資料集由4298個連貫的問題序列組成(有12k+個自然語言問題到SQL標註的Question-SQL對,由14名耶魯大學學生標註),透過使用者與138個領域的200個複雜資料庫的互動獲得。

  • CSpider [paper] [code] [dataset]

    • 2019年9月,西湖大學提出了一個大型中文資料集CSpider,用於複雜和跨領域的語義解析和Text-to-SQL任務,由2位NLP研究人員和1位計算機專業學生從資料集Spider翻譯而來,其中包含200個資料庫上的10181個問題和5693個獨特的複雜SQL查詢,具有涵蓋138個不同領域的多個表的資料庫。

  • CoSQL [paper] [code] [dataset]

    • 2019年9月,耶魯大學和Salesforce Research提出了一種跨域資料庫CoSQL,它由30k+輪次和10k+帶註釋的SQL查詢組成,這些查詢是從Wizard-of-Oz (WOZ)集合中獲得的,該集合包含3k個對話,查詢跨越 138個域的200個複雜資料庫。它是Spider的升級版本,包含3w+輪對話和1w+帶註釋的SQL查詢,這些查詢來源於138個域的200個複雜資料庫,每一輪對話都模擬了一個實際的資料庫查詢場景。因此需要結合多輪對話的內容生成最終的sql,是目前最複雜難度也最高的資料集之一。

  • TableQA [paper] [dataset]

    • 2020年6月,追一科技公司提出了一個大規模跨領域Text-to-SQL資料集TableQA,其中包含64891個問題和6000多個表的20311個唯一SQL查詢。

  • DuSQL [paper] [dataset]

    • 2020年11月,百度針對跨域文字到SQL任務提出了一個大規模、實用的中文資料集DuSQL,它包含200個資料庫、813個表和23797個Question-SQL對。

  • CHASE [paper] [code] [dataset]

    • 2021年8月,西安交通大學和微軟等提出了首個跨領域、多輪Text-to-SQL中文資料集,包含了5459個多輪問題組成的列表,17940個<query, SQL>二元組。

  • BIRD-SQL [paper] [code] [dataset]

    • 2023年5月,香港大學和阿里巴巴提出了一個大規模跨域資料集BIRD,其中包含超過12751個獨特的問題 SQL、95個大資料庫,總大小為33.4GB。它還涵蓋區塊鏈、曲棍球、醫療保健和教育等超過37個專業領域。

  • KaggleDBQA [paper] [code] [dataset]

    • 2021年6月,華盛頓大學和微軟研究院提出了KaggleDBQA,這是一個真實Web資料庫的跨域評估資料集,具有特定領域的資料型別、原始格式和不受限制的問題。 它包括跨 8 個資料庫的 272 個示例,每個資料庫平均有 2.25 個表。 該資料集以其真實世界的資料來源、自然的問題創作環境以及具有豐富領域知識的資料庫文件而聞名。 主要統計資料:8.7% WHERE 子句、73.5% VAL、24.6% SELECT 和 6.8% NON-SELECT。

2.2 在Spider 和BIRD榜單情況

  • Spider

Spider 1.0與大多數先前的語義解析任務不同,因為:ATIS、Geo、Academic:它們各自僅包含一個資料庫,SQL查詢數量有限,且訓練和測試集中SQL查詢完全相同。WikiSQL:SQL查詢和表的數量顯著增多。但所有SQL查詢都很簡單,每個資料庫僅是單一表,沒有外來鍵。Spider 1.0在圖中佔據最大面積,是首個複雜且跨領域的語義解析和文字到SQL資料集!

Leaderboard - Execution with Values

Leaderboard - Exact Set Match without Values

  • BIRD

案例:

LLM排名:

3.大模型在NL2SQL上對比

基於論文:Battle of the Large Language Models: Dolly vs LLaMA vs Vicuna vs Guanaco vs Bard vs ChatGPT - A Text-to-SQL Parsing Comparison (2023.10)結果進行對比

本文對六種語言模型進行了綜合評估:Dolly、LLaMA、Vicuna、Guanaco、Bard 和 ChatGPT,利用五種不同的提示策略,直接比較它們在九個基準資料集上的效能。

我們的主要發現是:

  • 在大多數文字到 SQL 資料集中,開源模型的效能明顯低於閉源模型。
  • 雖然LLM在生成語法上有效的 SQL 語句方面表現出熟練程度,但他們通常很難生成語義上準確的查詢。
  • 事實證明,LLM 對用於小樣本學習( few-shot learning)的示例高度敏感。

3.1 提示詞策略

  • Informal Schema (IS) :非正式模式 (IS) 策略以自然語言提供表及其關聯列的描述。在這種方法中,模式資訊以不太正式的方式表達。
  • API Docs (AD) :相比之下,Rajkumar (2022)等人進行的評估中概述的 API 文件 (AD) 策略,遵循OpenAI 文件4中提供的預設 SQL 翻譯提示。此提示遵循稍微更正式的資料庫模式定義。
  • Select 3 :Select 3 策略包括資料庫中每個表的三個示例行。 此附加資訊旨在提供每個表中包含的資料的具體示例,以補充模式描述。
  • 1SL:1-Shot Learning (1SL),在提示中提供 1 個黃金示例。
  • 5SL :5 Shot Learning (5SL) ,在提示中提供 5 個黃金示例。

3.2 在Spider和8大傳統資料集表現

  • 資料集簡介

  • 在spider 資料集表現

    • 開源模型在 Spider 資料集上遇到了困難:儘管引數數量和模型效能之間存在正相關關係,但開源模型在 Spider資料集上實現高精度方面面臨著挑戰。 例如,儘管 Vicuna 7B 和 13B 已證明比原始預訓練的 LLaMA 7B 和 13B模型有所改進,但與 Bard 和 GPT-3.5 相比,效能仍然存在顯著差距。 此外,與 LLaMA 的 13B 版本相比,Dolly模型在不同的提示策略上也表現不佳。

    • LLM的表現對提示風格高度敏感:我們的實證研究結果證實,不存在適用於所有模型的通用提示策略。 雖然 IS 提示策略對於GPT-3.5、Bard、Vicuna 和guanaco 被證明是有效的,但對於 Dolly 和 LLaMA 來說卻產生了次優的準確度。令人驚訝的是,LLaMA 在使用 S3 提示時實現了最佳結果,相比之下,GPT-3.5 的效能顯著惡化。

    • 使用隨機示例的小樣本學習提供的效能提升有限:從 1SL 和 5SL獲得的大多數結果往往表現不佳,或者充其量只能達到與其他提示策略相當的結果。 然而,這種趨勢也有一些例外。 Dolly 模型是一個例外,與12B 變體中的其他提示策略相比,該模型顯示 1SL 提示策略的效能有所提高。 這個結果似乎是反常的,因為在其他 1SL 和 5SL結果中沒有觀察到類似的效能提升。 另一個例外是 LLaMA 模型,其中少樣本提示策略優於一些零樣本策略。 例如,30B LLaMA模型僅用 5 個給定示例就實現了 22.4% EX 和 19.9% TS 準確率,這接近於guanaco 模型的效能(24.4% EX 和19.0% TS)。

更多模型的表現:

閉源模型如GPT和BARD在NL2SQL任務中顯著優於開源模型,這得益於它們接受了更多的引數訓練。透過額外的監督微調,模型效能得到顯著提升,例如Alpaca-7B模型相比其前身Llama-7B改進了近16%,突顯了微調對效能增強的潛力。與此同時,較新的開源模型如Mistral-7B和Llama2效能更優,正逐步縮小與閉源模型的差距。

  • 經典資料集下情況

    • LLM在大多數經典資料集上表現不佳:特別是,與之前研究中報告的基線效能相比,這些資料集上達到的最高準確率分別僅為 2.9% 和 2.4%,明顯低於使用 LSTM 或 BERT 的傳統 seq2seq模型的其他研究中觀察到的基線結果 34.0% 和 45.2%(Devlin 等人, 2019)。此外,即使進行了指令調整,Vicuna、Guanaco 和 Dolly 在經典資料集上也面臨著相當大的挑戰。它們在各種提示策略和資料集組合中的執行精度通常幾乎為零。

    • 不同模型的少樣本學習的有效性有所不同:與 Spider 資料集的發現相比,我們觀察到 LLaMA 和 GPT-3.5 在 1SL 和5SL 上的效能有所改進。 例如,使用 1SL,GPT-3.5 在 GeoQuery 資料集上的效能從 15.4% 提高到42.3%,而使用 5SL,LLaMA 在同一資料集上的效能也從 12.1% 顯著提高到 15.4%。 然而,我們沒有看到 Dolly、Vicuna 和 Bard 的 1SL或 5SL 具有類似的效能改進。

    • 附加資料庫示例行是無效的:就像使用Spider資料集觀察到的結果一樣,S3 提示策略在應用於不同模型的經典資料集時會產生低於標準的結果。因此,很明顯,S3 提示策略在 Text-to-SQL 環境中可能並不有效。

3.3 大模型在SQL生成效果分析

大型語言模型在生成SQL語句時常表現不佳,可能因為它們難以理解提示背後的真實意圖。我們在多個資料集上測試了不同模型,發現除Dolly外,大多數模型在特定提示策略下能生成90%以上的有效SQL。儘管LLaMA未經指令資料集的微調,它仍能生成有效SQL。然而,開源模型如Vicuna和Dolly在達到高有效SQL百分比方面存在挑戰。值得注意的是,LLaMA透過小樣本學習提升效能,而guanaco則隨著示例增多效能下降。另外,某些提示策略並不理想,尤其是S3策略,它顯著降低了GPT-3.5在多個資料集上的有效SQL生成率。儘管模型能生成SQL,但語義不準確,導致執行精度低。

更多分析結果見原始論文

參考連結

https://blog.csdn.net/sinat_39620217/article/details/137603958

更多優質內容請關注公號:汀丶人工智慧;會提供一些相關的資源和優質文章,免費獲取閱讀。

相關文章