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

一篇大模型NL2SQL全棧技術(shù)最新綜述

發(fā)布于 2024-8-19 09:41
瀏覽
1收藏

隨著LLM的出現(xiàn),NL2SQL的性能得到了極大的提升,這顯著降低了訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)的障礙,并支持各種商業(yè)應(yīng)用。

本文提供了一個(gè)全面的NL2SQL技術(shù)綜述,覆蓋了整個(gè)生命周期,包括模型、數(shù)據(jù)、評(píng)估和錯(cuò)誤分析四個(gè)方面。

全文概述:NL2SQL任務(wù)的全生命周期

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

NL2SQL問(wèn)題與背景

對(duì)NL2SQL任務(wù)進(jìn)行了定義,并介紹了人類(lèi)執(zhí)行NL2SQL任務(wù)的工作流程與關(guān)鍵挑戰(zhàn),并描述了基于語(yǔ)言模型發(fā)展的NL2SQL解決方案的演變。

NL2SQL任務(wù)定義

  • 問(wèn)題表述:NL2SQL,也稱(chēng)為T(mén)ext-to-SQL,是將自然語(yǔ)言查詢轉(zhuǎn)換為可在關(guān)系數(shù)據(jù)庫(kù)上執(zhí)行的SQL查詢的任務(wù)。目標(biāo)是生成準(zhǔn)確反映用戶意圖的SQL,確保執(zhí)行后得到適當(dāng)?shù)慕Y(jié)果。

在大型語(yǔ)言模型時(shí)代NL2SQL模塊的概述

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

人類(lèi)工作流程

  • 理解自然語(yǔ)言查詢:首先理解用戶的意圖,識(shí)別NL中的關(guān)鍵部分,例如實(shí)體或?qū)傩?、時(shí)間上下文和特定條件。
  • 鏈接數(shù)據(jù)庫(kù)架構(gòu)和檢索內(nèi)容:基于對(duì)NL的理解,檢查數(shù)據(jù)庫(kù)架構(gòu)和內(nèi)容,識(shí)別生成SQL所需的相關(guān)表、列和單元格值。
  • 將NL意圖轉(zhuǎn)換為SQL:最后,根據(jù)對(duì)NL和數(shù)據(jù)庫(kù)概念的理解,編寫(xiě)相應(yīng)的SQL查詢。

挑戰(zhàn)

  • 自然語(yǔ)言的不確定性:自然語(yǔ)言可能因歧義和不明確性而含有不確定性,例如詞義歧義、句法歧義、信息不足和用戶錯(cuò)誤。
  • 數(shù)據(jù)庫(kù)的復(fù)雜性和數(shù)據(jù)的不完整性:數(shù)據(jù)庫(kù)架構(gòu)的復(fù)雜性和數(shù)據(jù)的龐大體量對(duì)NL2SQL任務(wù)的有效執(zhí)行構(gòu)成挑戰(zhàn),包括表之間的關(guān)系復(fù)雜性、列名的相似性、特定領(lǐng)域的架構(gòu)變化以及大數(shù)據(jù)量和數(shù)據(jù)的不完整性。
  • 從自然語(yǔ)言到SQL的轉(zhuǎn)換:NL2SQL任務(wù)與高級(jí)編程語(yǔ)言到低級(jí)機(jī)器語(yǔ)言的編譯不同,因?yàn)檩斎氲腘L和輸出的SQL查詢之間通常存在一對(duì)多的映射。

NL2SQL任務(wù)及其挑戰(zhàn)的示例

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

NL2SQL解決方案的演變

  • 基于規(guī)則的方法:早期研究主要集中在使用預(yù)定義規(guī)則或語(yǔ)義解析器來(lái)理解自然語(yǔ)言查詢并將其轉(zhuǎn)換為SQL查詢。
  • 基于神經(jīng)網(wǎng)絡(luò)的方法:為了解決基于規(guī)則的方法的局限性,研究者開(kāi)始利用神經(jīng)網(wǎng)絡(luò)來(lái)解決NL2SQL任務(wù),例如使用序列到序列模型或圖神經(jīng)網(wǎng)絡(luò)。
  • 基于預(yù)訓(xùn)練語(yǔ)言模型的方法:隨著B(niǎo)ERT和T5等預(yù)訓(xùn)練語(yǔ)言模型的出現(xiàn),基于PLM的NL2SQL方法在多個(gè)基準(zhǔn)數(shù)據(jù)集上取得了競(jìng)爭(zhēng)性的性能。
  • 大型語(yǔ)言模型時(shí)代:隨著LLMs的出現(xiàn),NL2SQL技術(shù)取得了顯著進(jìn)展,LLMs具有卓越的語(yǔ)言理解和新出現(xiàn)的能力,例如使用提示來(lái)執(zhí)行NL2SQL任務(wù)。

從語(yǔ)言模型的角度來(lái)看NL2SQL解決方案的演變

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)


NL2SQL的預(yù)處理策略

專(zhuān)注于在執(zhí)行NL2SQL翻譯過(guò)程中的預(yù)處理步驟,這些步驟對(duì)于識(shí)別相關(guān)表格和列(即架構(gòu)鏈接)以及檢索生成SQL所需的適當(dāng)數(shù)據(jù)庫(kù)內(nèi)容或單元格值至關(guān)重要。此外,預(yù)處理通過(guò)添加特定領(lǐng)域的知識(shí)來(lái)豐富上下文,提高查詢上下文的理解,并糾正錯(cuò)誤以防止它們傳播。

架構(gòu)鏈接(Schema Linking)

  • 目的:確定與給定自然語(yǔ)言查詢相關(guān)的表格和列,確保在有限的輸入內(nèi)準(zhǔn)確映射和處理關(guān)鍵信息,提高NL2SQL任務(wù)的性能。
  • 方法分類(lèi):
  • 基于字符串匹配的方法:使用相似性度量來(lái)識(shí)別NL文本和數(shù)據(jù)庫(kù)架構(gòu)元素(如表名和列名)之間的相關(guān)映射。
  • 基于神經(jīng)網(wǎng)絡(luò)的方法:使用深度神經(jīng)網(wǎng)絡(luò)來(lái)匹配數(shù)據(jù)庫(kù)架構(gòu)和自然語(yǔ)言查詢,有效解析語(yǔ)言和數(shù)據(jù)庫(kù)結(jié)構(gòu)之間的復(fù)雜語(yǔ)義關(guān)系。
  • 基于上下文學(xué)習(xí)的方法:利用大型語(yǔ)言模型(如GPT-4)的強(qiáng)推理能力直接從NL查詢中識(shí)別和鏈接相關(guān)的數(shù)據(jù)庫(kù)架構(gòu)組件。

數(shù)據(jù)庫(kù)內(nèi)容檢索(Database Content Retrieval)

  • 目的:通過(guò)文本搜索算法和數(shù)據(jù)庫(kù)索引高效檢索單元格值。
  • 策略分類(lèi):
  • 基于字符串匹配的方法:通過(guò)字符串匹配查找與給定NL查詢相關(guān)的單元格值序列。
  • 基于神經(jīng)網(wǎng)絡(luò)的方法:神經(jīng)網(wǎng)絡(luò)通過(guò)多層非線性變換學(xué)習(xí)復(fù)雜數(shù)據(jù)格式和語(yǔ)義表示,以捕獲語(yǔ)義特征,緩解同義詞問(wèn)題。
  • 索引策略:索引是提高數(shù)據(jù)庫(kù)內(nèi)容檢索效率的關(guān)鍵方法,允許更快地訪問(wèn)相關(guān)單元格值。

額外信息獲?。ˋdditional Information Acquisition)

  • 作用:額外信息(例如領(lǐng)域知識(shí))在提高NL2SQL模型理解NL查詢、執(zhí)行架構(gòu)鏈接和NL2SQL翻譯方面發(fā)揮著重要作用。
  • 應(yīng)用:研究人員經(jīng)常將額外信息作為文本輸入(提示)的一部分,連同少數(shù)示例一起輸入,以提高模型的理解和翻譯質(zhì)量。

NL2SQL翻譯方法

深入探討了使用語(yǔ)言模型進(jìn)行NL2SQL翻譯的方法。這些方法包括編碼策略、解碼策略和特定于任務(wù)的提示策略,以及如何利用中間表示來(lái)優(yōu)化NL2SQL翻譯過(guò)程。

基于設(shè)計(jì)選擇的NL2SQL翻譯方法分類(lèi)

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

編碼策略(Encoding Strategy)

編碼策略涉及將自然語(yǔ)言和數(shù)據(jù)庫(kù)架構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化格式,以便語(yǔ)言模型有效利用。這一轉(zhuǎn)換對(duì)于將非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為可用于生成SQL查詢的格式至關(guān)重要。

  • 順序編碼:將NL和數(shù)據(jù)庫(kù)架構(gòu)視為一系列標(biāo)記。
  • 基于圖的編碼:利用數(shù)據(jù)庫(kù)的固有關(guān)系結(jié)構(gòu)和輸入數(shù)據(jù)的復(fù)雜相互依賴(lài)性。
  • 獨(dú)立編碼:將NL的不同部分(如子句和條件)分別編碼,然后在后期組合以生成最終的SQL。

編碼策略的概述

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

解碼策略(Decoding Strategy)

解碼策略在NL2SQL翻譯中扮演關(guān)鍵角色,負(fù)責(zé)將編碼器生成的表示轉(zhuǎn)換為目標(biāo)SQL查詢。

  • 貪婪搜索解碼:選擇當(dāng)前概率最高的標(biāo)記作為輸出。
  • 束搜索解碼:保留多個(gè)候選序列,探索更大的搜索空間。
  • 約束感知增量解碼:在解碼過(guò)程中逐步添加約束,確保生成的SQL查詢?cè)谡Z(yǔ)法上正確。

解碼策略的概述

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

特定于任務(wù)的提示策略(Task-specific Prompt Strategy)

在大型語(yǔ)言模型時(shí)代,提示工程可以發(fā)揮LLMs的能力,并已被廣泛應(yīng)用于自然語(yǔ)言處理。

  • 思維鏈:推動(dòng)模型順序思考和推理任務(wù)目標(biāo)。
  • 分解:將最終任務(wù)分解為多個(gè)子任務(wù),分別進(jìn)行推理。

中間表示(Intermediate Representation)

中間表示(IR)是NL查詢和SQL查詢之間的橋梁,它是一個(gè)結(jié)構(gòu)化但靈活的語(yǔ)法,捕捉NL查詢的基本組成部分和關(guān)系,而無(wú)需SQL的嚴(yán)格語(yǔ)法規(guī)則。

  • SQL-like 語(yǔ)法語(yǔ)言:將用戶查詢轉(zhuǎn)換為中間的SQL-like表達(dá)式。
  • SQL-like 草圖結(jié)構(gòu):構(gòu)建草圖規(guī)則,將NL映射到SQL-like框架中。


中間表示的示例

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)


NL2SQL的后處理策略

描述了在NL2SQL模型生成SQL之后,如何通過(guò)后處理步驟來(lái)優(yōu)化和改進(jìn)生成的SQL查詢,以更好地滿足用戶的期望。

SQL校正策略(SQL Correction Strategies)

  • 目的:修正由模型生成的SQL中的語(yǔ)法錯(cuò)誤。
  • 方法:例如DIN-SQL提出的自我校正模塊,通過(guò)不同的提示指導(dǎo)模型識(shí)別和糾正錯(cuò)誤。

輸出一致性(Output Consistency)

  • 目的:提高模型輸出的一致性。
  • 方法:例如C3-SQL提出的自我一致性方法,通過(guò)采樣多個(gè)不同的推理路徑并選擇最一致的答案來(lái)提高輸出質(zhì)量。

執(zhí)行引導(dǎo)策略(Execution-Guided Strategies)

  • 目的:使用SQL查詢的執(zhí)行結(jié)果來(lái)指導(dǎo)后續(xù)處理。
  • 方法:如ZeroNL2SQL通過(guò)可執(zhí)行性檢查過(guò)程不斷生成SQL查詢,并反饋錯(cuò)誤信息給LLMs以實(shí)現(xiàn)可執(zhí)行查詢。

N-best重排策略(N-best Rerankers Strategies)

  • 目的:對(duì)原始模型生成的前n個(gè)結(jié)果進(jìn)行重排序,通常使用更大的模型或結(jié)合額外的知識(shí)源。
  • 方法:如Bertrand-dr使用BERT模型作為重排器來(lái)改進(jìn)多個(gè)NL2SQL模型。

NL2SQL基準(zhǔn)測(cè)試

詳細(xì)介紹了用于評(píng)估NL2SQL系統(tǒng)性能的各種數(shù)據(jù)集,分析了它們的特點(diǎn),并探討了這些基準(zhǔn)測(cè)試如何隨著時(shí)間的推移而發(fā)展。數(shù)據(jù)集從早期的單一領(lǐng)域、簡(jiǎn)單SQL查詢發(fā)展到跨領(lǐng)域、多輪對(duì)話和多語(yǔ)言挑戰(zhàn)的復(fù)雜數(shù)據(jù)集。

NL2SQL基準(zhǔn)測(cè)試的時(shí)間線

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

NL2SQL基準(zhǔn)測(cè)試的統(tǒng)計(jì)數(shù)據(jù)

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)


NL2SQL評(píng)估與錯(cuò)誤分析

討論了評(píng)估NL2SQL系統(tǒng)性能的方法和工具,并提出了一個(gè)錯(cuò)誤分類(lèi)體系來(lái)組織和分析NL2SQL過(guò)程中的SQL錯(cuò)誤。


NL2SQL之360全景的概述

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

  • 錯(cuò)誤分類(lèi)體系設(shè)計(jì)為兩級(jí):
  • 錯(cuò)誤定位(Error Localization):確定SQL中發(fā)生錯(cuò)誤的具體部分。
  • 錯(cuò)誤原因(Cause of Error):理解模型在生成SQL時(shí)出錯(cuò)的原因。


根據(jù)分類(lèi)統(tǒng)計(jì)的Din-SQL錯(cuò)誤

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

推薦NL2SQL模塊的數(shù)據(jù)驅(qū)動(dòng)路線圖和決策流程

一篇大模型NL2SQL全棧技術(shù)最新綜述-AI.x社區(qū)

https://arxiv.org/pdf/2408.05109
A Survey of NL2SQL with Large Language Models:Where are we, and where are we going?
NL2SQL Handbook: https://github.com/HKUSTDial/NL2SQL_Handbook

本文轉(zhuǎn)載自??PaperAgent??

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