博客專欄

EEPW首頁 > 博客 > AAAI 2023 | 基于T5的兩階段的多任務Text-to-SQL預訓練模型MIGA

AAAI 2023 | 基于T5的兩階段的多任務Text-to-SQL預訓練模型MIGA

發(fā)布人:機器之心 時間:2023-01-17 來源:工程師 發(fā)布文章
網(wǎng)易互娛 AI Lab 聯(lián)合廣東外語外貿大學和哥倫比亞大學基于預訓練語言模型 T5 的預訓練方式,提出了兩階段的多任務預訓練模型 MIGA。

越來越多的工作證明了預訓練語言模型(PLM)中蘊含著豐富的知識,針對不同的任務,用合適的訓練方式來撬動 PLM,能更好地提升模型的能力。在 Text-to-SQL 任務中,目前主流的生成器是基于語法樹的,需要針對 SQL 語法進行設計。


近期,網(wǎng)易互娛 AI Lab 聯(lián)合廣東外語外貿大學和哥倫比亞大學基于預訓練語言模型 T5 的預訓練方式,提出了兩階段的多任務預訓練模型 MIGA。MIGA 在預訓練階段引入三個輔助任務,并將他們組織成統(tǒng)一的生成任務范式,可以將所有的 Text-to-SQL 數(shù)據(jù)集統(tǒng)一進行訓練;同時在微調階段,MIGA 針對多輪對話中的錯誤傳遞問題進行 SQL 擾動,提升了模型生成的魯棒性。


目前對于 Text-to-SQL 的研究,主流的方法主要是基于 SQL 語法樹的 encoder-decoder 模型,可以確保生成的結果一定符合 SQL 語法,但是需要針對 SQL 語法進行特殊設計。最近也有一些關于 Text-to-SQL 的研究是基于生成式語言模型,可以很方便地繼承預訓練語言模型的知識和能力。


為了降低對基于語法樹的依賴,更好地挖掘預訓練語言模型的能力,該研究在預訓練 T5 模型的框架下,提出了一個兩階段的多任務 Text-to-SQL 預訓練模型 MIGA (MultI-task Generation frAmework)。


MIGA 分為兩階段的訓練過程:


  • 在預訓練階段,MIGA 使用與 T5 相同的預訓練范式,額外提出了三個與 Text-to-SQL 相關的輔助任務,從而更好地激發(fā)預訓練語言模型中的知識。該訓練方式可以將所有的 Text-to-SQL 的數(shù)據(jù)集進行統(tǒng)一,擴充了訓練數(shù)據(jù)的規(guī)模;而且也可以靈活地去設計更多有效的輔助任務,進一步發(fā)掘預訓練語言模型的潛在知識。

  • 在微調階段,MIGA 針對多輪對話和 SQL 中容易存在的錯誤傳遞問題,在訓練過程中對歷史 SQL 進行擾動,使得生成當前輪次的 SQL 效果更加穩(wěn)定。


MIGA 模型在兩個多輪對話 Text-to-SQL 公開數(shù)據(jù)集上表現(xiàn)優(yōu)于目前最好的基于語法樹的模型,相關研究已經被 AAAI 2023 錄用。


圖片

論文地址:https://arxiv.org/abs/2212.09278


MIGA 模型細節(jié)


圖片

圖 1 MIGA 模型圖。


多任務預訓練階段


該研究主要參考 T5 的預訓練方式,基于已經訓練好的 T5 模型,設計了四個預訓練任務:


  • Text-to-SQL 主任務:上圖中的黃色部分,通過設計 Prompt 為”translate dialogue to system query”,然后以一些 special tokens 來將歷史對話、數(shù)據(jù)庫信息和 SQL 語句拼接輸入到 T5-encoder 中,讓 decoder 直接輸出對應的 SQL 語句;

  • 相關信息預測:上圖中的綠色部分,設計 Prompt 為”translate dialogue to relevant column”,T5-encoder 的輸入也是與主任務一致,decoder 則需要輸出與當前問題相關的數(shù)據(jù)表和列,目的是加強模型對 Text-to-SQL 的理解;

  • 當前輪次的操作預測:上圖中的灰色部分,設計 Prompt 為”translate dialogue to turn switch”,這個任務主要是針對多輪對話中的上下文理解進行設計,對比上一輪的對話和 SQL,decoder 需要輸出當前對話的目的做了哪些變化,比如圖中例子是 where 條件進行了改動;

  • 最終對話預測:上圖中的藍色部分,設計 Prompt 為”translate dialogue to final utterance”,目的是為了讓模型去更好的理解上下文對話,需要 decoder 輸出整個多輪對話下來,最后時刻的 SQL 對應的一句完整問題描述。

通過這樣的一個統(tǒng)一的訓練方式設計,MIGA 可以通用而又靈活地去處理更多與任務相關的額外任務,而且還有一下優(yōu)點:


  1. 參考人類編寫 SQL 的步驟,對話文本到 SQL 任務被分解為多個子任務,允許主任務從中學習;

  2. 訓練樣本的構造格式與 T5 一致,可以最大限度地發(fā)揮預訓練 T5 模型對目標任務的潛力;

  3. 統(tǒng)一的框架允許多個輔助任務的靈活調度。當應用于特定任務時,僅需在特定任務的標記數(shù)據(jù)中使用相同的訓練目標對上面的預訓練模型進行微調即可。


在預訓練階段,該研究整合了 Text-to-SQL 數(shù)據(jù)集 Spider 和對話 Text-to-SQL 數(shù)據(jù)集 SparC 和 CoSQL 的數(shù)據(jù)來訓練 T5 模型。


微調階段


在預訓練階段之后,該研究針對目標任務的標注數(shù)據(jù),單純使用 Text-to-SQL 任務來進一步微調模型。該研究在預測當前輪次的 SQL 時,會拼接之前輪次的預測 SQL,在此過程中,為了盡量克服多輪對話和生成中所帶來的錯誤傳遞問題,該研究提出了 SQL 擾動的方案,對輸入數(shù)據(jù)中的歷史輪次 SQL,以 α 概率來進行擾動。SQL 語句的擾動主要以 β 的概率采樣相應的 token,然后進行以下其一的擾動:


  • 用相同數(shù)據(jù)表中的列,來隨機修改或者新增 SELECT 部分中的列;

  • 隨機修改 JOIN 條件中的結構,比如交換兩個表的位置;

  • 修改”*” 所有列為一些其他的列;

  • 交換”asc” 和”desc”。


上述的擾動是該研究在實驗中統(tǒng)計發(fā)現(xiàn)最常見的一些錯誤傳遞導致的 SQL 生成錯誤情況,因此針對這些情況來進行擾動,降低模型關于這方面的依賴。


實驗評估


評估數(shù)據(jù)集為多輪對話 Text-to-SQL:SparC 和 CoSQL。


評估指標為:


  • QM:Question Match,表示單輪問題中的生成的 SQL 與標注輸出完全匹配的比例;

  • IM:Interaction Match,表示多輪對話中整個完整輪次所有生成的 SQL 與標注輸出完全匹配的比例。


在表 1 的對比實驗中,MIGA 在兩個數(shù)據(jù)集上的 IM 分數(shù),以及 CoSQL 的 QM 分數(shù)上,超過了目前最好的多輪對話 Text-to-SQL 模型。而且對比同類型的基于 T5 的方案,MIGA 分別在 IM 上提升了 7.0% 和 QM 上提升了 5.8%。


圖片

表 1 對比實驗分析,第一部分為樹模型,第二部分為基于預訓練生成模型。


在表 2 的消融實驗中,該研究對 MIGA 的兩階段訓練過程中的幾個任務進行了探索,同時證明了這些任務分別都會對目標任務有不同程度的提升。


圖片

表 2 針對 SparC 任務,分別去除各項任務或數(shù)據(jù),在指標上都有所降低。


在實際的案例分析結果,MIGA 在生成的穩(wěn)定性和正確性,對比基于 T5-3B 訓練模型更好,可以看到 MIGA 在多表連接操作和列和表格的映射上要優(yōu)于其他模型。在 Case#1 的 Question#2 中,T5-3B 模型不能為相對復雜的 JOIN 結構(兩表連接)生成有效的 SQL,進而導致 Question#3 中更復雜的 JOIN 結構(三表連接)也預測錯誤。而 MIGA 準確地預測了 JOIN 結構,并較好地維持了之前的條件 t1.sex="f"。在 Case#2 中,T5- 3B 混淆了不同表中的多個列,并將 earnings 誤認為是 people 表的列,而 MIGA 可以正確識別該列屬于 poker_player 表,并將其鏈接至 t1。


圖片

表 3 案例分析。


結語


網(wǎng)易互娛 AI Lab 針對 Text-to-SQL 提出了一個基于 T5 的兩階段的多任務預訓練模型:MIGA。在預訓練階段,MIGA 將 Text-to-SQL 任務分解出了額外三個子任務,并將其統(tǒng)一為序列到序列的生成范式,從而更好地激發(fā)預訓練 T5 模型。并且在微調階段引入了 SQL 擾動機制,降低多輪 Text-to-SQL 生成場景下的錯誤傳遞帶來的影響。


未來,研究團隊會進一步探索更多有效的策略來撬動超大語言模型的能力,并且探索更優(yōu)雅更有效的方式來進一步克服因為錯誤傳遞而導致的效果降低問題。


*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區(qū)

關閉