網(wǎng)站建設(shè)公司怎么免費(fèi)自己做推廣
解讀:PET-SQL: A Prompt-enhanced Two-stage Text-to-SQL Framework with Cross-consistency
這篇論文介紹了一個(gè)名為 PET-SQL 的文本到 SQL(Text-to-SQL)框架,旨在通過(guò)增強(qiáng)提示(prompt)和利用不同大型語(yǔ)言模型(LLM)之間的交叉一致性來(lái)提高性能。PET-SQL 框架在 Spider 基準(zhǔn)測(cè)試中取得了 87.6% 的執(zhí)行準(zhǔn)確率,這是目前已知的最佳結(jié)果。
1. 方法論
1.1 Prompting(提示)
在指導(dǎo)大型語(yǔ)言模型(LLM)生成 SQL 查詢時(shí),提示(prompt)的風(fēng)格或模板對(duì)模型的性能有顯著影響。作者提出了一種稱為參考增強(qiáng)表示(Reference-enhanced Representation, REp)的提示方法,它在傳統(tǒng)的 OpenAI 示范(OpenAI Demonstration, ODp)基礎(chǔ)上進(jìn)行了增強(qiáng)。REp 包括以下幾個(gè)關(guān)鍵部分:
-
優(yōu)化規(guī)則(Optimization Rule, OR):提示中加入了一個(gè)多任務(wù)約束規(guī)則,要求 LLM 在確保正確性的同時(shí)最小化 SQL 執(zhí)行時(shí)間。這有助于避免生成冗余字符和操作符,從而減少異常。
-
單元格值引用(Cell Value References, CV):在提示中隨機(jī)采樣并插入表中的幾行數(shù)據(jù),作為參考,幫助 LLM 理解數(shù)據(jù)庫(kù)的格式和規(guī)范。這有助于解決由于不同表中數(shù)據(jù)格式不一致而導(dǎo)致的查詢條件不明確的問(wèn)題。
-
外鍵聲明(Foreign Key Declarations, FK):在提示中添加了模式中外鍵關(guān)系,幫助 LLM 識(shí)別數(shù)據(jù)庫(kù)中表之間的連接,從而更好地理解用戶的意圖并自動(dòng)選擇合適的連接。
1.2 基于問(wèn)題骨架的 PreSQL 生成
這一模塊的目標(biāo)是從已知數(shù)據(jù)集中檢索與目標(biāo)問(wèn)題具有相似意圖的領(lǐng)域不可知樣本,這些檢索到的樣本可以作為 LLM 的上下文學(xué)習(xí)示例。具體步驟如下:
-
問(wèn)題去語(yǔ)義化:根據(jù)數(shù)據(jù)庫(kù)模式,將問(wèn)題中的域相關(guān)標(biāo)記(如表名、列名和值)用特殊標(biāo)記
<mask>
替換,得到代表問(wèn)題意圖的問(wèn)題骨架。 -
檢索示例:使用預(yù)訓(xùn)練的句子 Transformer 模型,基于問(wèn)題骨架的語(yǔ)義嵌入,從示例池中檢索與目標(biāo)問(wèn)題最相似的 K 個(gè)樣本。
-
構(gòu)建提示:將選定的示例與 REp 結(jié)合,作為少量上下文(few-shot context)添加到提示中,然后使用這個(gè)提示來(lái)生成初步的 SQL(PreSQL)。
1.3 模式鏈接和 FinSQL 生成
為了減少可能阻礙 LLM 性能的冗長(zhǎng)模式信息,作者提出了基于 PreSQL 的模式鏈接方法,以識(shí)別與數(shù)據(jù)庫(kù)模式和自然語(yǔ)言問(wèn)題相關(guān)的引用(表/列)。具體步驟包括:
-
模式鏈接:直接從 PreSQL 中解析出與問(wèn)題相關(guān)的表/列實(shí)體作為鏈接結(jié)果,而不是設(shè)計(jì)策略讓 LLM 輸出相關(guān)的數(shù)據(jù)庫(kù)引用。
-
簡(jiǎn)化提示:使用解析出的模式信息簡(jiǎn)化提示,去除與鏈接表無(wú)關(guān)的所有上下文,包括模式屬性、數(shù)據(jù)庫(kù)引用和外鍵聲明。
-
生成 FinSQL:將簡(jiǎn)化后的提示輸入 LLM,生成最終的 SQL(FinSQL)。
1.4 交叉一致性
這一部分詳細(xì)描述了基于數(shù)據(jù)庫(kù)引擎執(zhí)行 SQL 查詢結(jié)果的一致性模塊,包括兩種可行的實(shí)現(xiàn)策略:
-
簡(jiǎn)單投票:使用多個(gè) LLM 生成 SQL,并根據(jù)執(zhí)行結(jié)果進(jìn)行投票,以多數(shù)結(jié)果作為最終答案。
-
基于 PreSQL 復(fù)雜度的細(xì)粒度投票:根據(jù) PreSQL 的復(fù)雜度將問(wèn)題分為不同等級(jí),并由不同的候選 LLM 解決,以進(jìn)行投票。這種方法可以最大化 LLM 的潛力,并顯著減少投票偏差。
2. 實(shí)驗(yàn)
- 數(shù)據(jù)集和指標(biāo):使用 Spider 基準(zhǔn)測(cè)試進(jìn)行評(píng)估,主要指標(biāo)是執(zhí)行準(zhǔn)確率(EX)。
- 評(píng)估的 LLM:包括 CodeLlama、SQLCoder、InternLM、SenseChat 和 GPT4。
- 實(shí)驗(yàn)設(shè)置:設(shè)置低溫(低隨機(jī)性)以減少 LLM 輸出的隨機(jī)性,輸入和輸出的最大長(zhǎng)度分別為 4096 和 200。
- 整體性能:PET-SQL 在 Spider 測(cè)試集上取得了 87.6% 的執(zhí)行準(zhǔn)確率,超過(guò)了其他非學(xué)習(xí)基礎(chǔ)方法。
- 提示的影響:提出的提示(REp)在零樣本設(shè)置下表現(xiàn)出色,比現(xiàn)有的提示方法有顯著改進(jìn)。
- 模式鏈接的影響:通過(guò)模式鏈接簡(jiǎn)化提示信息可以提高 LLM 生成 SQL 查詢的效率和準(zhǔn)確性。
- 交叉一致性的影響:交叉一致性策略比自我一致性更有效,能夠提高整體執(zhí)行準(zhǔn)確率。
3.局限性及未來(lái)方向
3.1局限性
-
模型復(fù)雜性和計(jì)算成本:PET-SQL 框架涉及多個(gè)階段的處理,包括預(yù) SQL 生成、模式鏈接和交叉一致性檢查,這可能導(dǎo)致較高的計(jì)算成本,尤其是在需要多個(gè) LLM 協(xié)作時(shí)。
-
數(shù)據(jù)集依賴性:盡管在 Spider 基準(zhǔn)測(cè)試中取得了良好的性能,但 PET-SQL 框架可能對(duì)數(shù)據(jù)集的特定特征敏感。在不同的數(shù)據(jù)庫(kù)模式或領(lǐng)域特定的數(shù)據(jù)集上,性能可能會(huì)有所不同。
-
提示設(shè)計(jì):盡管論文提出了一種有效的提示設(shè)計(jì)方法,但提示的設(shè)計(jì)可能需要針對(duì)不同的 LLM 進(jìn)行調(diào)整,以實(shí)現(xiàn)最佳性能。
-
錯(cuò)誤處理和異常情況:在處理復(fù)雜的用戶意圖或數(shù)據(jù)庫(kù)模式時(shí),PET-SQL 可能在某些情況下無(wú)法生成正確的 SQL 查詢,尤其是在處理模糊或不明確的自然語(yǔ)言輸入時(shí)。
-
模型多樣性:雖然交叉一致性利用了不同 LLM 之間的差異,但實(shí)際應(yīng)用中可能需要更多的模型和更廣泛的多樣性來(lái)進(jìn)一步提高性能。
3.2未來(lái)方向
-
優(yōu)化計(jì)算效率:未來(lái)的工作可以探索減少計(jì)算成本的方法,例如通過(guò)改進(jìn)算法或使用更高效的 LLM 架構(gòu)。
-
泛化能力:研究如何提高 PET-SQL 在不同數(shù)據(jù)庫(kù)模式和領(lǐng)域數(shù)據(jù)集上的泛化能力,使其更加靈活和適應(yīng)性強(qiáng)。
-
提示自動(dòng)化:開(kāi)發(fā)自動(dòng)化工具來(lái)生成和優(yōu)化提示,減少手動(dòng)調(diào)整的需要,并提高框架的易用性。
-
錯(cuò)誤分析和修正:深入分析 PET-SQL 在特定情況下失敗的原因,并開(kāi)發(fā)有效的錯(cuò)誤處理和異常情況修正機(jī)制。
-
增強(qiáng)模型多樣性:探索更多的 LLM 選項(xiàng),并研究如何更有效地結(jié)合它們的輸出,以進(jìn)一步提高交叉一致性的效果。
-
交互式學(xué)習(xí):考慮用戶反饋循環(huán),使 PET-SQL 能夠在與用戶的交互中學(xué)習(xí)和改進(jìn),以更好地理解復(fù)雜的用戶意圖。
-
多模態(tài)輸入:擴(kuò)展 PET-SQL 以處理多模態(tài)輸入,如結(jié)合自然語(yǔ)言和視覺(jué)信息,以支持更豐富的應(yīng)用場(chǎng)景。
-
可解釋性和透明度:提高 PET-SQL 的可解釋性,讓用戶理解模型的決策過(guò)程,增加對(duì)模型結(jié)果的信任。