自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

NL2SQL:基于LLM的解決方案是最好的嗎?

發(fā)布于 2024-9-5 14:12
瀏覽
0收藏

1. NL2SQL現(xiàn)狀

自然語言轉(zhuǎn)SQL(nl2sql)技術(shù)是指自然語言查詢轉(zhuǎn)化為SQL查詢,降低普通用戶和專家用戶在訪問海量數(shù)據(jù)集和獲取數(shù)據(jù)分析結(jié)果時(shí)的門檻。

1.1 我們目前處于何方?

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖展示了過去二十年nl2sql方法的演進(jìn)歷程,從基于規(guī)則的方法,到基于深度神經(jīng)網(wǎng)絡(luò)的方法,再到可調(diào)的預(yù)訓(xùn)練語言模型(PLMs),直至大型語言模型(LLMs),整個(gè)過程伴隨著數(shù)據(jù)集的發(fā)展,比如Spider和BIRD等基準(zhǔn)測試的發(fā)展。

LLMs(如GPT-4和Llama2)相較于PLMs(如GPT-2和BART)是規(guī)模更大的語言模型,展現(xiàn)出更深層次的語言理解能力。在nl2sql 任務(wù)中應(yīng)用PLMs需要在特定任務(wù)的數(shù)據(jù)集上進(jìn)行微調(diào),而利用LLMs則可以通過提示(上下文學(xué)習(xí))或僅對開源LLMs進(jìn)行微調(diào)(即SFT)。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖對比了基于PLM(藍(lán)點(diǎn))和基于LLM(綠點(diǎn))的nl2sql模型在Spider排行榜上的準(zhǔn)確率。

可以看出基于LLM的nl2sql模型自2023年2月(DINSQL + CodeX)起便與基于PLM的模型展現(xiàn)出相當(dāng)?shù)臏?zhǔn)確率。

然而,隨著LLMs的迅猛發(fā)展,基于LLM和PLM模型之間的性能差距正在擴(kuò)大,表明了基于LLM方法優(yōu)勢十分明顯。

1.2 基于LLM的模型是否明顯勝出?

根據(jù)上圖,是否可以斷定基于LLM的模型是所有nl2sql應(yīng)用的“首選”?換句話說,總是選擇排行榜首位的模型是否總是最佳策略?

討論這一問題前,作者分析了商業(yè)化場景的一些特征:

?多樣化的數(shù)據(jù)領(lǐng)域(Various Data Domains):類似Tableau 這樣的BI平臺通常涵蓋多個(gè)領(lǐng)域(如電影、體育等),每個(gè)領(lǐng)域都有其獨(dú)特的架構(gòu)和術(shù)語。理想的nl2sql模型必須能夠在這些不同領(lǐng)域間靈活轉(zhuǎn)換,同時(shí)針對每個(gè)特定領(lǐng)域進(jìn)行調(diào)整,以有效滿足即時(shí)需求。

?復(fù)雜的SQL操作(Complex SQL operations):實(shí)際應(yīng)用中往往需要執(zhí)行包含多個(gè)JOIN、嵌套查詢和聚合函數(shù)等高級操作的復(fù)雜SQL查詢。準(zhǔn)確生成這些復(fù)雜查詢的能力是衡量nl2sql模型性能的重要指標(biāo)。

?新興的語言現(xiàn)象(New Linguistic Phenomena):對于同一查詢意圖,不同用戶可能會(huì)使用不同的縮寫、同義詞和問題風(fēng)格提出問題。因此,nl2sql模型準(zhǔn)確解讀各種自然語言查詢變體的能力至關(guān)重要。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖從多個(gè)維度對比了Spider開發(fā)數(shù)據(jù)集上的SOTA PLM和LLM模型,評價(jià)指標(biāo)是執(zhí)行準(zhǔn)確性(Execution-Accuracy)。

?多樣化的數(shù)據(jù)領(lǐng)域(Various Data Domains):上圖(a)在競賽領(lǐng)域內(nèi)比較了不同模型。結(jié)果表明基于微調(diào)的LLM/PLM方法全面超越了所有基于提示的LLM方法。表現(xiàn)最佳的基于PLM的方法RESDSQL-3B+NatSQL,達(dá)到了83.9%的執(zhí)行準(zhǔn)確率,比表現(xiàn)最佳的基于提示的LLM方法DAILSQL(搭配GPT-4)高出3.3個(gè)百分點(diǎn)。結(jié)果表明,微調(diào)是提升nl2sql模型領(lǐng)域適應(yīng)能力的關(guān)鍵策略。

?復(fù)雜的SQL操作(Complex SQL operations):上圖(b)比較了僅包含JOIN操作符的SQL查詢用例中的不同模型。基于PLM的方法RESDSQL-3B+NatSQL位居榜首,超越了所有基于LLM的方法。然而,當(dāng)比較僅包含嵌套SQL查詢的用例時(shí),基于LLM的方法通常優(yōu)于基于PLM的方法。

?新興的語言現(xiàn)象(New Linguistic Phenomena):比較了不同語言現(xiàn)象下方法的平均準(zhǔn)確率(例如,“返回所有消費(fèi)總額超過1000的客戶”與“消費(fèi)超過1000的客戶名單是什么?”)。上圖(d)顯示,盡管兩種類型的方法都表現(xiàn)良好,但微調(diào)的LLM和PLM在nl2sql任務(wù)上優(yōu)于基于提示的LLM。主要是因?yàn)槲⒄{(diào)模型能更好地將不同的查詢變體與數(shù)據(jù)庫架構(gòu)相匹配。

所以,并非所有情況都適用同一解決方案;也就是說,即使是目前最強(qiáng)大的LLM GPT-4支持的模型,也沒有一個(gè)nl2sql模型能在所有不同的使用場景中都成為明顯的贏家。真實(shí)應(yīng)用場景遠(yuǎn)比公共nl2sql基準(zhǔn)測試(如Spider和BIRD)所能考察的要復(fù)雜得多。因此,迫切需要能夠從不同角度系統(tǒng)評估給定基準(zhǔn)上nl2sql模型的工具。

1.3 全局視角看NL2SQL

根據(jù)文章最開始的進(jìn)化樹,NL2SQL可以分為四大流派:

? 基于規(guī)則的方法:早期研究依賴于預(yù)設(shè)規(guī)則或語義解析器。例如,NaLIR利用句法解析器和手工規(guī)則將自然語言查詢轉(zhuǎn)換為SQL查詢。但這些方法在適應(yīng)性、擴(kuò)展性和泛化力上存在局限。

? 基于神經(jīng)網(wǎng)絡(luò)的方法:利用神經(jīng)網(wǎng)絡(luò)將自然語言查詢譯為SQL查詢。隨之發(fā)布了若干大規(guī)?;鶞?zhǔn)數(shù)據(jù)集,例如WikiSQL和Spider。相繼開發(fā)了諸如IRNet的序列到序列nl2sql方法。IRNet通過編碼器對自然語言查詢和數(shù)據(jù)庫架構(gòu)進(jìn)行編碼,并借助解碼器生成SQL查詢。

? 基于PLM的方法:隨著Transformer的問世和Spider數(shù)據(jù)集的推出,基于神經(jīng)網(wǎng)絡(luò)的方法迅速崛起,BERT和T5等模型開啟了預(yù)訓(xùn)練語言模型的新紀(jì)元,在基準(zhǔn)數(shù)據(jù)集上屢創(chuàng)佳績。例如,RESDSQL,作為Spider排行榜的佼佼者,采用兩階段框架:先從自然語言查詢中識別相關(guān)架構(gòu)元素,再構(gòu)建SQL查詢。

? 基于LLM的方法:ChatGPT和GPT-4等大型語言模型的出現(xiàn),徹底革新了nl2sql解決方案。如今,基于LLM的方法已在nl2sql領(lǐng)域占據(jù)主導(dǎo)地位。以DAIL-SQL為例,它借助GPT-4和提示工程,在Spider數(shù)據(jù)集上取得了不俗的成績。

NL2SQL系統(tǒng)的關(guān)鍵組件

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上表根據(jù)核心模型和若干關(guān)鍵組件對當(dāng)前領(lǐng)先的nl2sql方法進(jìn)行了分類。

2. NL2SQL360:NL2SQL的全方位測試平臺

為了更好的、系統(tǒng)性的測評NL2SQL任務(wù),作者推出了NL2SQL測評平臺。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖展示了NL2SQL360測試平臺框架,由六個(gè)核心組件構(gòu)成:

? 基準(zhǔn)數(shù)據(jù)集。匯集了多種廣泛采用的基準(zhǔn)數(shù)據(jù)集,包括Spider 、BIRD 、Spider-Realistic 、Dr.Spider 、KaggleDBQA 、WikiSQL 等。

? 模型庫。收錄了一系列在Spider和BIRD排行榜上表現(xiàn)出色的競爭性開源NL2SQL模型,主要包括基于LLM和PLM的方法。

? 數(shù)據(jù)集篩選器。傳統(tǒng)評估方法通過計(jì)算整個(gè)基準(zhǔn)數(shù)據(jù)集的平均性能,忽略了不同場景下NL2SQL的細(xì)微差別。為彌補(bǔ)這一不足,精心挑選了特定的基準(zhǔn)數(shù)據(jù)集子集,包括特定的數(shù)據(jù)庫、自然語言查詢和SQL查詢,以凸顯查詢復(fù)雜性、數(shù)據(jù)庫架構(gòu)多樣性以及SQL特性(如JOIN操作或嵌套查詢)等獨(dú)特要素。因此,在NL2SQL360中引入了數(shù)據(jù)集篩選機(jī)制。這使得測試數(shù)據(jù)集能夠根據(jù)不同的標(biāo)準(zhǔn)被劃分為更加專注的子集:

? (1) 場景一:
SQL復(fù)雜度。
根據(jù)復(fù)雜度對SQL查詢進(jìn)行分類,從簡單查詢到包含多個(gè)子句和條件的復(fù)雜查詢。
分類標(biāo)準(zhǔn)遵循Spider的準(zhǔn)則,目的是評估NL2SQL方法處理不同難度SQL的能力。

? (2) 場景二:
SQL特性。
檢驗(yàn)主要利用特定特性的SQL查詢,例如JOIN操作、子查詢或聚合函數(shù)。
通過基于這些特性對查詢進(jìn)行分類,評估NL2SQL系統(tǒng)處理不同SQL功能的能力。
例如,商業(yè)智能平臺經(jīng)常需要處理包含嵌套子查詢的分析型查詢。

? 評估標(biāo)準(zhǔn)。采納了廣受認(rèn)可的評估標(biāo)準(zhǔn)。

? 采用執(zhí)行準(zhǔn)確度(EX)與完全匹配準(zhǔn)確度(EM)來評價(jià)生成的SQL查詢的效果。

? 利用有效效率得分(VES)來衡量生成有效SQL查詢的效率。

? 查詢變異性測試更全面地評估nl2sql解決方案處理自然語言查詢變化時(shí)的穩(wěn)定性與適應(yīng)性

? 評估工具。根據(jù)日志中的數(shù)據(jù),評估工具自動(dòng)生成定量評估報(bào)告,并以表格或排行榜等直觀格式展示。配備了可視化工具和儀表板,支持用戶進(jìn)行交互式分析,輕松比較不同nl2sql解決方案在數(shù)據(jù)庫領(lǐng)域和SQL特性等方面的性能表現(xiàn)。

3. LLM好還是PLM好?

作者采用了Spider 和 BIRD 的開發(fā)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),分別包含1034和1534個(gè)自然語言與SQL樣本。BIRD數(shù)據(jù)集的SQL結(jié)構(gòu)更為復(fù)雜,涵蓋了Spider未包含的CASE、IIF等關(guān)鍵字,增加了對模型自然語言轉(zhuǎn)SQL能力的挑戰(zhàn)。此外,BIRD中的數(shù)據(jù)庫結(jié)構(gòu)也比Spider更為復(fù)雜。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

3.1 測評基準(zhǔn)

3.1.1 4種基于LLM提示工程的基準(zhǔn)方法

? (1) DINSQL:將SQL查詢生成分解為多個(gè)子任務(wù),并為每個(gè)子任務(wù)設(shè)計(jì)了特定的提示,以指導(dǎo)GPT-4生成最終的SQL查詢。

? (2) DAILSQL:以SQL代碼風(fēng)格對問題和數(shù)據(jù)庫架構(gòu)進(jìn)行編碼,根據(jù)結(jié)構(gòu)和查詢的相似性選擇少量示例,這些元素被整合成一個(gè)高效的提示,引導(dǎo)GPT-4進(jìn)行操作。

? (3) DAILSQL(SC) :DAILSQL的自我一致性(SC,Self Consistence)策略后處理版本。

? (4) C3SQL :結(jié)合了模式鏈接過濾(schema linking filterin)和為GPT-3.5定制的校準(zhǔn)偏差提示,用于生成SQL查詢,并采用自我一致性策略(SC,Self Consistence)進(jìn)行后處理。

33.1.2 9種基于finetune的LLM方法

? (5-8) SFT CodeS (1B/3B/7B/15B)  是基于StarCoder ,使用大量SQL相關(guān)語料庫逐步預(yù)訓(xùn)練的,在后續(xù)實(shí)驗(yàn)中,使用了與Spider或BIRD數(shù)據(jù)集微調(diào)的SFT CodeS。實(shí)驗(yàn)中包含了SFT CodeS家族的四個(gè)版本。

? (9) Llama2-7B 采用優(yōu)化的Transformer作為自回歸語言模型,由Meta在龐大的語料庫上預(yù)訓(xùn)練。

? (10) Llama3-8B 在超過15T的令牌數(shù)據(jù)上訓(xùn)練,訓(xùn)練數(shù)據(jù)集規(guī)模是Llama 2的7倍,包括4倍多的代碼。

? (11) StarCoder-7B 是一個(gè)代碼LLM,已在GitHub上許可的數(shù)據(jù)上進(jìn)行訓(xùn)練,包括超過80種編程語言的代碼。

? (12) CodeLlama-7B 是Llama2的增強(qiáng)版,通過在代碼庫數(shù)據(jù)集上進(jìn)行額外訓(xùn)練進(jìn)行了優(yōu)化。

? (13) Deepseek-Coder-7B 在項(xiàng)目級代碼語料庫和填空任務(wù)上進(jìn)行訓(xùn)練,以提升代碼補(bǔ)全能力。

3.1.3 7種基于PLM的自然語言轉(zhuǎn)SQL方法

? (1) Graphix-3B+PICARD 將預(yù)訓(xùn)練的T5-3B變換器與圖感知增強(qiáng)集成,用于自然語言轉(zhuǎn)SQL任務(wù),并利用PICARD 提高性能。

? (2-4) RESDSQL(Base/Large/3B) 引入了排名增強(qiáng)編碼和骨架感知解碼,將模式鏈接與骨架解析分離。

? (5-7) RESDSQL(Base/Large/3B)+NatSQL 結(jié)合了NatSQL 以獲得更好性能的版本。實(shí)驗(yàn)中使用了六個(gè)版本的RESDSQL家族模型。

3.2 實(shí)驗(yàn)一:微調(diào)是否必要?

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

從執(zhí)行準(zhǔn)確度(EX)的視角來看(上面兩圖分別展示了Spider數(shù)據(jù)集和Bird數(shù)據(jù)集上結(jié)果),基于LLM的方法在不同難度的子集中均超越了基于PLM的方法。特別是在BIRD測試數(shù)據(jù)集中,DAILSQL(SC)在挑戰(zhàn)性子集上的表現(xiàn)超過了基于LLM的最新最佳方法SFT CodeS15B,這可能是由于GPT-4在推理能力上的顯著優(yōu)勢。

從精確匹配準(zhǔn)確度(EM)的角度分析,經(jīng)過監(jiān)督微調(diào)的基于LLM的方法通常比基于提示的LLM方法展現(xiàn)出更高的EM性能。微調(diào)之后,無論是基于LLM還是PLM的模型,其輸出都更加貼近特定數(shù)據(jù)集的數(shù)據(jù)分布,從而能夠預(yù)測出與該數(shù)據(jù)集中相似的SQL結(jié)構(gòu)。

洞察1微調(diào)是提升性能的必由之路。特別是,經(jīng)過微調(diào)的基于LLM的方法在執(zhí)行準(zhǔn)確度(EX)指標(biāo)上取得了最優(yōu)的整體表現(xiàn),而基于PLM的方法在精確匹配準(zhǔn)確度(EM)指標(biāo)上整體表現(xiàn)最為出色。

3.3 實(shí)驗(yàn)二:精確度與SQL特性的較量

在真實(shí)場景中,經(jīng)常需要構(gòu)建包含諸如子查詢、邏輯連接器、排序(ORDER BY)以及多重連接(JOIN)等高級操作的SQL查詢。

因此,將檢驗(yàn)自然語言轉(zhuǎn)SQL模型在生成具有不同特性的SQL查詢方面的精準(zhǔn)度。

所以,根據(jù)四個(gè)維度對SQL查詢進(jìn)行分類:

? (1) 是否包含子查詢

? (2) 邏輯連接器的數(shù)量

? (3) 是否使用排序功能

? (4) 連接操作的次數(shù)

NL2SQL360能夠根據(jù)單個(gè)SQL子句、它們的組合或用戶自定義的條件來過濾SQL查詢。展示了四個(gè)具有代表性的維度。

3.3.1 實(shí)驗(yàn)2.1:子查詢的挑戰(zhàn)

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

從上面兩個(gè)可以看出,在涉及子查詢的情況下,所有方法的表現(xiàn)都不盡如人意,表明通過子查詢進(jìn)行邏輯推理是一個(gè)難題。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖揭示了在沒有子查詢的情況下,基于LLM的方法在Spider數(shù)據(jù)集上略微領(lǐng)先于基于PLM的方法,而在BIRD數(shù)據(jù)集上則平均表現(xiàn)顯著更佳。

當(dāng)存在子查詢時(shí),基于LLM的方法在兩個(gè)數(shù)據(jù)集上都大放異彩。這是因?yàn)闃?gòu)建帶有子查詢的SQL語句要求模型先深入理解子查詢,再生成完整的SQL語句,這對模型的邏輯推理能力提出了高要求。

所有基于LLM的方法,尤其是那些由GPT-4驅(qū)動(dòng)的,處理子查詢時(shí)更為出色,不僅超越了經(jīng)過微調(diào)的基于LLM的方法,也超過了基于PLM的方法。模型內(nèi)在的推理能力對于處理含子查詢的SQL至關(guān)重要。

洞察2:在包含子查詢的場景中,基于LLM的方法總體上超越了基于PLM的方法,尤其是那些采用GPT-4的(即基于提示的LLM)方法,表現(xiàn)尤為突出。模型的內(nèi)在推理能力可能是準(zhǔn)確預(yù)測子查詢的關(guān)鍵所在。

3.3.2 實(shí)驗(yàn)2.2:邏輯連接符的運(yùn)用

邏輯連接符(如AND、OR)用于連接條件、篩選查詢結(jié)果及其他操作,因此評估模型處理邏輯連接符的性能至關(guān)重要。

在未涉及邏輯連接符的情況下,基于LLM的智能體在Spider數(shù)據(jù)集上并未明顯超越基于PLM的方法。但在結(jié)構(gòu)更復(fù)雜的BIRD數(shù)據(jù)集中,基于LLM的智能體則表現(xiàn)出色。

一旦涉及到邏輯連接符,基于LLM的智能體在兩個(gè)數(shù)據(jù)集上均持續(xù)領(lǐng)先于基于PLM的智能體。

洞察3:在需要邏輯連接符的情境下,基于LLM的智能體相較于基于PLM的智能體,展現(xiàn)出更優(yōu)的性能。

3.3.3 實(shí)驗(yàn)2.3:多表連接的藝術(shù)

實(shí)際應(yīng)用中,經(jīng)常需要構(gòu)建涉及多表連接的SQL查詢,對模型準(zhǔn)確把握復(fù)雜數(shù)據(jù)庫架構(gòu)的能力提出了挑戰(zhàn)。

在不涉及連接操作的情況下,基于LLM和PLM的方法在Spider和BIRD數(shù)據(jù)集上的表現(xiàn)參差不齊,難分伯仲。

當(dāng)涉及到需要執(zhí)行連接操作的場景時(shí),基于LLM的在兩個(gè)數(shù)據(jù)集中均顯著優(yōu)于基于PLM的。可能是因?yàn)檫B接操作要求深入理解數(shù)據(jù)庫的復(fù)雜結(jié)構(gòu),而LLM在這方面通常表現(xiàn)出色,得益于其卓越的上下文理解能力。

NatSQL的積極作用也不容忽視。在處理包含連接的SQL查詢時(shí),DINSQL在基于提示的智能體中表現(xiàn)最佳,而RESDSQL-3B+NatSQL則在基于PLM的智能體中獨(dú)占鰲頭。兩者都采用了NatSQL 作為中間表示層,這可能得益于其簡化的形式,省去了連接關(guān)鍵字并減少了架構(gòu)項(xiàng)的預(yù)測,從而在連接場景中簡化了SQL的預(yù)測過程。

洞察4:在需要執(zhí)行連接操作的場景中,基于LLM的智能體比基于PLM的智能體表現(xiàn)更佳。采用NatSQL作為中間表示層,不僅降低了預(yù)測連接操作的復(fù)雜性,還可能進(jìn)一步提升模型的性能。

3.3.4 實(shí)驗(yàn)2.4:排序指令

在缺乏ORDER BY指令時(shí),基于LLM的在Spider與BIRD兩個(gè)數(shù)據(jù)集上均優(yōu)于基于PLM的方法。但當(dāng)引入ORDER BY指令后,情況在Spider數(shù)據(jù)集上發(fā)生了逆轉(zhuǎn),基于LLM的方法表現(xiàn)稍遜一籌,而在BIRD數(shù)據(jù)集上則依舊保持領(lǐng)先。這種差異可能源于BIRD數(shù)據(jù)集的復(fù)雜度高于Spider。

洞察5:在涉及ORDER BY指令的場景中,基于PLM和LLM的智能體在不同數(shù)據(jù)集間的表現(xiàn)呈現(xiàn)出差異。大體來看,基于LLM的智能體展現(xiàn)出了更優(yōu)越的泛化能力。

3.4 實(shí)驗(yàn)3:查詢變異性測試(Query Variance Testing,QVT)

檢驗(yàn)nl2sql系統(tǒng)對多樣化自然語言表述和結(jié)構(gòu)的適應(yīng)力,模擬實(shí)際應(yīng)用中可能遇到的豐富場景。

在BIRD數(shù)據(jù)集中,很少有SQL查詢與多個(gè)不同的自然語言表達(dá)相對應(yīng)。因此,選用了Spider開發(fā)集來構(gòu)建QVT數(shù)據(jù)集,它包含了469個(gè)SQL查詢,每個(gè)都對應(yīng)著兩個(gè)以上的不同自然語言查詢,這正符合QVT的初衷。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

如上圖,基于LLM的智能體與基于PLM的智能體在QVT方面難分伯仲。

不過,經(jīng)過微調(diào)的LLM智能體通常在QVT上表現(xiàn)更佳,可能是因?yàn)槲⒄{(diào)使得模型輸入與特定數(shù)據(jù)分布更加吻合,從而減少了自然語言變化對性能的沖擊。

值得注意的是,盡管Graphix+PICARD方法在整體執(zhí)行準(zhǔn)確度(EX)上不及其他基于提示的智能體,卻在QVT上超越了它們。

洞察6:在QVT方面,基于LLM與基于PLM的智能體并無明顯優(yōu)劣之分。針對特定任務(wù)數(shù)據(jù)集對模型進(jìn)行微調(diào),可能有助于提高其在面對自然語言變化時(shí)的性能穩(wěn)定性。

3.5 實(shí)驗(yàn)4:數(shù)據(jù)庫領(lǐng)域適配

在自然語言到SQL的實(shí)際應(yīng)用案例中,往往需要處理特定領(lǐng)域的數(shù)據(jù)庫,比如電影或體育領(lǐng)域,各自擁有獨(dú)特的架構(gòu)設(shè)計(jì)和專業(yè)術(shù)語。因此,跨不同領(lǐng)域的細(xì)致表現(xiàn)評估對于模型的有效應(yīng)用極為關(guān)鍵。

對Spider訓(xùn)練集中的140個(gè)數(shù)據(jù)庫和開發(fā)集中的20個(gè)數(shù)據(jù)庫進(jìn)行了分類,共劃分出33個(gè)不同的領(lǐng)域。所有基于微調(diào)的LLM和PLM智能體均使用訓(xùn)練集進(jìn)行調(diào)優(yōu)。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖展示了Spider數(shù)據(jù)集中,不同數(shù)據(jù)庫領(lǐng)域內(nèi)的執(zhí)行準(zhǔn)確度(EX)表現(xiàn)。不同的自然語言到SQL方法對不同領(lǐng)域有著不同的偏好,基于LLM和基于PLM的智能體并沒有明顯的優(yōu)劣之分。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖展示了整體表現(xiàn)。在擁有較多訓(xùn)練數(shù)據(jù)庫的領(lǐng)域(如大學(xué)、競賽、交通),基于微調(diào)的方法表現(xiàn)更佳。而在訓(xùn)練數(shù)據(jù)庫較少的領(lǐng)域,基于提示的方法則更為出色。這說明,在微調(diào)階段引入領(lǐng)域內(nèi)的訓(xùn)練數(shù)據(jù)對于提升模型在特定領(lǐng)域的性能至關(guān)重要。

洞察7:不同方法對不同領(lǐng)域有著不同的偏好,基于LLM和基于PLM的智能體并無絕對的勝出者。不過,在微調(diào)階段的領(lǐng)域內(nèi)訓(xùn)練數(shù)據(jù)對于模型在特定領(lǐng)域的表現(xiàn)極為重要。

3.6 實(shí)驗(yàn)5:LLM智能體的監(jiān)督式微調(diào)

探究在自然語言轉(zhuǎn)SQL任務(wù)中,對開源大型語言模型(LLM)進(jìn)行監(jiān)督式微調(diào)(SFT)的效果。

DAILSQL 在SFT過程中,不同樣本量和提示表述的影響,但并未明確指出哪些開源LLM最適合用于自然語言轉(zhuǎn)SQL任務(wù)的SFT。采用SQL風(fēng)格的提示對提升效果有益,因此在零樣本設(shè)置中也采取了類似的提示策略,如下圖。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

考慮到自然語言轉(zhuǎn)SQL任務(wù)與代碼編寫密切相關(guān),挑選了五款具有不同代碼處理能力的開源LLM,并通過HumanEval (Pass@1) 指標(biāo)進(jìn)行了評估。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

如上圖,經(jīng)過SFT,各模型的性能(EX)均有提升,但提升幅度在不同基礎(chǔ)模型間差異顯著。

性能提升與模型在SFT前的內(nèi)在編碼能力(HumanEval)之間存在正相關(guān)關(guān)系。這表明,選擇具有優(yōu)秀編碼能力的LLM作為基礎(chǔ)模型,對于適應(yīng)自然語言轉(zhuǎn)SQL任務(wù)大有裨益。

洞察8:在對開源LLM進(jìn)行自然語言轉(zhuǎn)SQL任務(wù)的監(jiān)督式微調(diào)(SFT)后,發(fā)現(xiàn)SFT后的性能與模型在SFT前的固有編碼能力之間存在正相關(guān)。這說明,具備高級編碼能力的LLM是適應(yīng)自然語言轉(zhuǎn)SQL任務(wù)的關(guān)鍵。

3.7 實(shí)驗(yàn)6:基于LLM的方法的經(jīng)濟(jì)性

考慮到國內(nèi)模型很便宜,這部分感覺意義不大,直接看洞察

洞察9:根據(jù)執(zhí)行準(zhǔn)確度(EX)與平均成本的比值,發(fā)現(xiàn)調(diào)用GPT-3.5-turbo的基于提示的LLM智能體具有更高的成本效益。雖然DAILSQL(SC)在Spider和BIRD數(shù)據(jù)集上相較于DAILSQL在EX上有所提升,但其增加的成本也降低了其整體的成本效益。

3.8 實(shí)驗(yàn)7:基于PLM方法的執(zhí)行效率

對六種模型進(jìn)行了三項(xiàng)指標(biāo)的評估:

? 執(zhí)行準(zhǔn)確度(EX)

? 樣本延遲

? GPU內(nèi)存

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

如上圖,隨著模型規(guī)模的增長,GPU內(nèi)存消耗和延遲也隨之上升。但是,RESDSQL-Base+NatSQL(2.2億參數(shù))與RESDSQL-Large(7.7億參數(shù))在執(zhí)行準(zhǔn)確度上表現(xiàn)相近(分別為80.2%和80.1%),而前者在延遲和內(nèi)存使用上更為經(jīng)濟(jì)。同樣,RESDSQL-Large+NatSQL與RESDSQL-3B在執(zhí)行準(zhǔn)確度上不相上下,但在延遲和硬件需求上存在差異。因此,在模型的選擇上,需要權(quán)衡延遲和硬件資源。

洞察10:隨著模型參數(shù)規(guī)模的擴(kuò)大,其延遲和硬件資源的需求也會(huì)相應(yīng)增長。此外,即便性能相近,不同模型在延遲和硬件資源需求上也可能大相徑庭。

3.9 實(shí)驗(yàn)8:SQL效能探究 - 有效效率評分

在現(xiàn)實(shí)世界的運(yùn)用中,不僅需確保模型產(chǎn)出的SQL查詢準(zhǔn)確無誤,更要注重其執(zhí)行的高效性。BIRD 提出了有效效率評分(VES,Valid Efficiency Score),用以衡量正確生成的SQL查詢的執(zhí)行效能。

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

上圖展示了實(shí)驗(yàn)的成果。橙色標(biāo)注了最高的VES得分。在各個(gè)難度層級的子集中,VES得分最高的方法并不固定,無論是基于LLM還是基于PLM的方法,都未見明顯的優(yōu)勢。大體而言,同一方法在處理更為復(fù)雜的子集時(shí),往往會(huì)有較低的VES表現(xiàn),這可能與執(zhí)行難度的增加和所需時(shí)間的延長有關(guān)。

洞察11:依據(jù)VES評分,在基于LLM和基于PLM的方法之間,并沒有明顯的贏家。對于同一方法而言,它在面對更具挑戰(zhàn)性的子集時(shí),往往會(huì)展現(xiàn)出較低的VES。

3.10 實(shí)驗(yàn)9:訓(xùn)練樣本數(shù)量的效應(yīng)

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

無論是基于PLM還是經(jīng)過微調(diào)的LLM方法,隨著自然語言到SQL訓(xùn)練數(shù)據(jù)的增多,性能均有所提升,并在訓(xùn)練樣本達(dá)到4000時(shí)獲得滿意的性能表現(xiàn)。然而,隨著數(shù)據(jù)集規(guī)模的擴(kuò)大,執(zhí)行準(zhǔn)確度(EX)的增益逐漸減少。

洞察12:隨著自然語言到SQL訓(xùn)練數(shù)據(jù)的增加,基于PLM和LLM的方法性能均有所提高。但值得注意的是,隨著數(shù)據(jù)集規(guī)模的增長,執(zhí)行準(zhǔn)確度(EX)的提升幅度逐漸降低。若數(shù)據(jù)隱私成為關(guān)注點(diǎn)或有足夠的標(biāo)注數(shù)據(jù),對LLM/PLM進(jìn)行微調(diào)展現(xiàn)出巨大的潛力。

4. NL2SQL的模塊化設(shè)計(jì)

NL2SQL:基于LLM的解決方案是最好的嗎?-AI.x社區(qū)圖片

如上圖,可以將NL2SQL方案大致劃分為以上模塊:

? (1) 預(yù)處理階段:預(yù)處理環(huán)節(jié)涵蓋了架構(gòu)關(guān)聯(lián)和數(shù)據(jù)庫內(nèi)容兩大核心。架構(gòu)關(guān)聯(lián)將自然語言查詢指向數(shù)據(jù)庫架構(gòu)元素(例如表和列),從而提升了跨領(lǐng)域通用性和復(fù)雜查詢的生成能力。數(shù)據(jù)庫內(nèi)容模塊通過字符串匹配,常常用于將查詢條件與數(shù)據(jù)庫內(nèi)容相匹配,進(jìn)一步豐富列的細(xì)節(jié)信息。

? (2) 提示策略:提示策略可分為零樣本和少樣本兩種,零樣本策略在模型輸入中不包含任何自然語言到SQL的示例,而少樣本策略則包含一定數(shù)量的示例,如“3樣本”、“5樣本”等?;赑LM的方法通常偏好零樣本策略,而基于LLM的方法則各有千秋:C3SQL采用零樣本策略,而DAILSQL和DINSQL則采用少樣本策略。DINSQL的少樣本示例是人工設(shè)計(jì)且固定的,相較之下,DAILSQL的示例則是基于目標(biāo)問題與訓(xùn)練集示例間的相似度動(dòng)態(tài)選擇的。

? (3) SQL構(gòu)建策略:語言智能體在生成SQL時(shí)采取多樣化的策略,這些策略可歸納為三個(gè)核心要素:分步構(gòu)建、解碼技巧和中間表達(dá)形式。

? (a) 分步構(gòu)建,類似于思維鏈(Chain-of-Thought, COT)的邏輯,通過分階段構(gòu)造SQL查詢,尤其適合處理復(fù)雜查詢。
兩種分步策略:
“SQL框架 - SQL”策略源自基于PLM的RESDSQL ,“子查詢 - SQL”策略則來自DINSQL 。

? (b) 解碼技巧關(guān)注的是LLM在解碼過程中如何確保輸出結(jié)果的有效性。
基于PLM的PICARD 確保其輸出嚴(yán)格遵守SQL語法規(guī)則,而基于LLM的方法則通過OpenAI的API進(jìn)行操作,不受此類解碼層面的限制。

? (c) 中間表達(dá)形式策略探討是否采用某種中介查詢格式來彌合自然語言與SQL之間的差異,因?yàn)镾QL面向關(guān)系數(shù)據(jù)庫的設(shè)計(jì)并不總是與自然語言的語義相吻合。
市場上已經(jīng)出現(xiàn)了諸如NatSQL等多樣化的解決方案。
基于LLM的DINSQL 和若干基于PLM的方法都采用了NatSQL。

? (4) 后處理:考慮了以下幾類后處理策略:

? (a) 自我糾錯(cuò),由DINSQL 提出,它允許智能體對生成的SQL進(jìn)行自我審查,以修正潛在的錯(cuò)誤。

? (b) 自我一致性檢查,涉及對單一自然語言查詢執(zhí)行多種有效的SQL查詢,并通過比對結(jié)果的一致性,采用投票機(jī)制選出最合適的SQL作為最終結(jié)果。
這一策略在C3SQL和DAILSQL中得到了應(yīng)用。

? (c) 執(zhí)行引導(dǎo)的SQL篩選器,作為一個(gè)模塊,它依次執(zhí)行智能體生成的SQL查詢,并將首次無誤的執(zhí)行結(jié)果作為有效的SQL。

? (d) N-best重排器,通過為多個(gè)候選SQL查詢打分,挑選出可能性最高的查詢作為最終的查詢。

5 SuperSQL:頂尖NL2SQL方案

基于以上結(jié)論,作者提出了SuperSQL,SuperSQL包括如下組件:

? (1) 預(yù)處理:采用RESDSQL的架構(gòu)鏈接和BRIDGE v2的數(shù)據(jù)庫內(nèi)容;

? (2) 提示:DAILSQL的少量樣本模塊通過相似性挑選上下文中的示例;

? (3) SQL生成:采用OpenAI的貪婪解碼策略,不涉及多步驟或NatSQL;

? (4) 后處理:采用DAILSQL的自我一致性模塊。

SuperSQL在Spider開發(fā)集上對SuperSQL進(jìn)行評估,EX達(dá)到了87.0%,超越了其他方法。

SuperSQL在中等難度、高難度以及額外難度子集上均有出色的表現(xiàn),證實(shí)了其有效性。在BIRD開發(fā)集上,SuperSQL同樣展現(xiàn)了不俗的性能。

還對Spider和BIRD的測試集進(jìn)行了SuperSQL評估,在Spider上EX達(dá)到了87.0%(排名第二),在BIRD上EX達(dá)到了62.66%(排名第九)。

SuperSQL在其設(shè)計(jì)空間內(nèi)超越了所有基準(zhǔn)。具體來說,在BIRD測試集上,SuperSQL比最強(qiáng)的基準(zhǔn)——DAILSQL(SC)——提高了5.25%。這一提升主要得益于我們的NL2SQL360-AAS,它有效地在設(shè)計(jì)空間內(nèi)基于不同基準(zhǔn)尋找更優(yōu)的模塊組合。預(yù)計(jì)通過NL2SQL360-AAS加入更多強(qiáng)大的基準(zhǔn)將進(jìn)一步優(yōu)化SuperSQL。

SuperSQL的高效性能:SuperSQL在兩個(gè)數(shù)據(jù)集上分別獲得了99.18和61.99的VES總分,均優(yōu)于其他方法。

6 未來研究方向

? 提升自然語言到SQL方法的可信度:現(xiàn)有方法可能產(chǎn)生不準(zhǔn)確的SQL結(jié)果,原因可能包括:

? 1.自然語言查詢含糊且不完整

? 2.數(shù)據(jù)庫架構(gòu)模糊且內(nèi)容不規(guī)范

? 3.架構(gòu)鏈接能力不足。

? 應(yīng)對含糊和不明確的自然語言查詢:考慮以下策略來改善這些問題:

? (i) 查詢改寫器旨在自動(dòng)優(yōu)化給定的自然語言查詢,確保其明確性。

? (ii) 查詢自動(dòng)補(bǔ)全通過推薦與數(shù)據(jù)庫高度相關(guān)的候選詞匯,協(xié)助用戶構(gòu)建查詢。

? 解析自然語言到SQL的解決方案。

? (i) 自然語言到SQL調(diào)試工具能夠發(fā)現(xiàn)錯(cuò)誤的SQL查詢,允許用戶逐步跟蹤SQL生成流程,并輔助識別錯(cuò)誤或不匹配之處。

? (ii) SQL及查詢結(jié)果的解釋方法使用戶能夠評估生成的SQL和查詢結(jié)果是否符合預(yù)期。

? 打造高性價(jià)比的自然語言到SQL方法?;贚LM的自然語言到SQL方法前景廣闊,但在令牌消耗上成本較高,這影響了成本和推理時(shí)間。探索在減少令牌使用的同時(shí)提升準(zhǔn)確性的方法至關(guān)重要。特

? 自適應(yīng)訓(xùn)練數(shù)據(jù)生成。自然語言到SQL方法的有效性極大程度上依賴于訓(xùn)練數(shù)據(jù)的質(zhì)量和廣度。這些方法在適應(yīng)未知數(shù)據(jù)庫時(shí)常常遇到挑戰(zhàn)。一個(gè)充滿希望的研究方向是利用模型評估反饋動(dòng)態(tài)生成(自然語言,SQL)對,這種方法通過從自然語言到SQL的性能洞察中汲取經(jīng)驗(yàn),確保訓(xùn)練數(shù)據(jù)的多樣性和高質(zhì)量,解決領(lǐng)域適應(yīng)問題。

本文轉(zhuǎn)載自 ??大語言模型論文跟蹤??,作者:HuggingAGI

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦