AAAI 2023 | 基于T5的兩階段的多任務(wù)Text-to-SQL預訓練模型MIGA
網(wǎng)易互娛 AI Lab 聯(lián)合廣東外語(yǔ)外貿大學(xué)和哥倫比亞大學(xué)基于預訓練語(yǔ)言模型 T5 的預訓練方式,提出了兩階段的多任務(wù)預訓練模型 MIGA。
越來(lái)越多的工作證明了預訓練語(yǔ)言模型(PLM)中蘊含著(zhù)豐富的知識,針對不同的任務(wù),用合適的訓練方式來(lái)撬動(dòng) PLM,能更好地提升模型的能力。在 Text-to-SQL 任務(wù)中,目前主流的生成器是基于語(yǔ)法樹(shù)的,需要針對 SQL 語(yǔ)法進(jìn)行設計。
近期,網(wǎng)易互娛 AI Lab 聯(lián)合廣東外語(yǔ)外貿大學(xué)和哥倫比亞大學(xué)基于預訓練語(yǔ)言模型 T5 的預訓練方式,提出了兩階段的多任務(wù)預訓練模型 MIGA。MIGA 在預訓練階段引入三個(gè)輔助任務(wù),并將他們組織成統一的生成任務(wù)范式,可以將所有的 Text-to-SQL 數據集統一進(jìn)行訓練;同時(shí)在微調階段,MIGA 針對多輪對話(huà)中的錯誤傳遞問(wèn)題進(jìn)行 SQL 擾動(dòng),提升了模型生成的魯棒性。
目前對于 Text-to-SQL 的研究,主流的方法主要是基于 SQL 語(yǔ)法樹(shù)的 encoder-decoder 模型,可以確保生成的結果一定符合 SQL 語(yǔ)法,但是需要針對 SQL 語(yǔ)法進(jìn)行特殊設計。最近也有一些關(guān)于 Text-to-SQL 的研究是基于生成式語(yǔ)言模型,可以很方便地繼承預訓練語(yǔ)言模型的知識和能力。
為了降低對基于語(yǔ)法樹(shù)的依賴(lài),更好地挖掘預訓練語(yǔ)言模型的能力,該研究在預訓練 T5 模型的框架下,提出了一個(gè)兩階段的多任務(wù) Text-to-SQL 預訓練模型 MIGA (MultI-task Generation frAmework)。
MIGA 分為兩階段的訓練過(guò)程:
在預訓練階段,MIGA 使用與 T5 相同的預訓練范式,額外提出了三個(gè)與 Text-to-SQL 相關(guān)的輔助任務(wù),從而更好地激發(fā)預訓練語(yǔ)言模型中的知識。該訓練方式可以將所有的 Text-to-SQL 的數據集進(jìn)行統一,擴充了訓練數據的規模;而且也可以靈活地去設計更多有效的輔助任務(wù),進(jìn)一步發(fā)掘預訓練語(yǔ)言模型的潛在知識。
在微調階段,MIGA 針對多輪對話(huà)和 SQL 中容易存在的錯誤傳遞問(wèn)題,在訓練過(guò)程中對歷史 SQL 進(jìn)行擾動(dòng),使得生成當前輪次的 SQL 效果更加穩定。
MIGA 模型在兩個(gè)多輪對話(huà) Text-to-SQL 公開(kāi)數據集上表現優(yōu)于目前最好的基于語(yǔ)法樹(shù)的模型,相關(guān)研究已經(jīng)被 AAAI 2023 錄用。
論文地址:https://arxiv.org/abs/2212.09278
MIGA 模型細節
圖 1 MIGA 模型圖。
多任務(wù)預訓練階段
該研究主要參考 T5 的預訓練方式,基于已經(jīng)訓練好的 T5 模型,設計了四個(gè)預訓練任務(wù):
Text-to-SQL 主任務(wù):上圖中的黃色部分,通過(guò)設計 Prompt 為”translate dialogue to system query”,然后以一些 special tokens 來(lái)將歷史對話(huà)、數據庫信息和 SQL 語(yǔ)句拼接輸入到 T5-encoder 中,讓 decoder 直接輸出對應的 SQL 語(yǔ)句;
相關(guān)信息預測:上圖中的綠色部分,設計 Prompt 為”translate dialogue to relevant column”,T5-encoder 的輸入也是與主任務(wù)一致,decoder 則需要輸出與當前問(wèn)題相關(guān)的數據表和列,目的是加強模型對 Text-to-SQL 的理解;
當前輪次的操作預測:上圖中的灰色部分,設計 Prompt 為”translate dialogue to turn switch”,這個(gè)任務(wù)主要是針對多輪對話(huà)中的上下文理解進(jìn)行設計,對比上一輪的對話(huà)和 SQL,decoder 需要輸出當前對話(huà)的目的做了哪些變化,比如圖中例子是 where 條件進(jìn)行了改動(dòng);
最終對話(huà)預測:上圖中的藍色部分,設計 Prompt 為”translate dialogue to final utterance”,目的是為了讓模型去更好的理解上下文對話(huà),需要 decoder 輸出整個(gè)多輪對話(huà)下來(lái),最后時(shí)刻的 SQL 對應的一句完整問(wèn)題描述。
通過(guò)這樣的一個(gè)統一的訓練方式設計,MIGA 可以通用而又靈活地去處理更多與任務(wù)相關(guān)的額外任務(wù),而且還有一下優(yōu)點(diǎn):
參考人類(lèi)編寫(xiě) SQL 的步驟,對話(huà)文本到 SQL 任務(wù)被分解為多個(gè)子任務(wù),允許主任務(wù)從中學(xué)習;
訓練樣本的構造格式與 T5 一致,可以最大限度地發(fā)揮預訓練 T5 模型對目標任務(wù)的潛力;
統一的框架允許多個(gè)輔助任務(wù)的靈活調度。當應用于特定任務(wù)時(shí),僅需在特定任務(wù)的標記數據中使用相同的訓練目標對上面的預訓練模型進(jìn)行微調即可。
在預訓練階段,該研究整合了 Text-to-SQL 數據集 Spider 和對話(huà) Text-to-SQL 數據集 SparC 和 CoSQL 的數據來(lái)訓練 T5 模型。
微調階段
在預訓練階段之后,該研究針對目標任務(wù)的標注數據,單純使用 Text-to-SQL 任務(wù)來(lái)進(jìn)一步微調模型。該研究在預測當前輪次的 SQL 時(shí),會(huì )拼接之前輪次的預測 SQL,在此過(guò)程中,為了盡量克服多輪對話(huà)和生成中所帶來(lái)的錯誤傳遞問(wèn)題,該研究提出了 SQL 擾動(dòng)的方案,對輸入數據中的歷史輪次 SQL,以 α 概率來(lái)進(jìn)行擾動(dòng)。SQL 語(yǔ)句的擾動(dòng)主要以 β 的概率采樣相應的 token,然后進(jìn)行以下其一的擾動(dòng):
用相同數據表中的列,來(lái)隨機修改或者新增 SELECT 部分中的列;
隨機修改 JOIN 條件中的結構,比如交換兩個(gè)表的位置;
修改”*” 所有列為一些其他的列;
交換”asc” 和”desc”。
上述的擾動(dòng)是該研究在實(shí)驗中統計發(fā)現最常見(jiàn)的一些錯誤傳遞導致的 SQL 生成錯誤情況,因此針對這些情況來(lái)進(jìn)行擾動(dòng),降低模型關(guān)于這方面的依賴(lài)。
實(shí)驗評估
評估數據集為多輪對話(huà) Text-to-SQL:SparC 和 CoSQL。
評估指標為:
QM:Question Match,表示單輪問(wèn)題中的生成的 SQL 與標注輸出完全匹配的比例;
IM:Interaction Match,表示多輪對話(huà)中整個(gè)完整輪次所有生成的 SQL 與標注輸出完全匹配的比例。
在表 1 的對比實(shí)驗中,MIGA 在兩個(gè)數據集上的 IM 分數,以及 CoSQL 的 QM 分數上,超過(guò)了目前最好的多輪對話(huà) Text-to-SQL 模型。而且對比同類(lèi)型的基于 T5 的方案,MIGA 分別在 IM 上提升了 7.0% 和 QM 上提升了 5.8%。
表 1 對比實(shí)驗分析,第一部分為樹(shù)模型,第二部分為基于預訓練生成模型。
在表 2 的消融實(shí)驗中,該研究對 MIGA 的兩階段訓練過(guò)程中的幾個(gè)任務(wù)進(jìn)行了探索,同時(shí)證明了這些任務(wù)分別都會(huì )對目標任務(wù)有不同程度的提升。
表 2 針對 SparC 任務(wù),分別去除各項任務(wù)或數據,在指標上都有所降低。
在實(shí)際的案例分析結果,MIGA 在生成的穩定性和正確性,對比基于 T5-3B 訓練模型更好,可以看到 MIGA 在多表連接操作和列和表格的映射上要優(yōu)于其他模型。在 Case#1 的 Question#2 中,T5-3B 模型不能為相對復雜的 JOIN 結構(兩表連接)生成有效的 SQL,進(jìn)而導致 Question#3 中更復雜的 JOIN 結構(三表連接)也預測錯誤。而 MIGA 準確地預測了 JOIN 結構,并較好地維持了之前的條件 t1.sex="f"。在 Case#2 中,T5- 3B 混淆了不同表中的多個(gè)列,并將 earnings 誤認為是 people 表的列,而 MIGA 可以正確識別該列屬于 poker_player 表,并將其鏈接至 t1。
表 3 案例分析。
結語(yǔ)
網(wǎng)易互娛 AI Lab 針對 Text-to-SQL 提出了一個(gè)基于 T5 的兩階段的多任務(wù)預訓練模型:MIGA。在預訓練階段,MIGA 將 Text-to-SQL 任務(wù)分解出了額外三個(gè)子任務(wù),并將其統一為序列到序列的生成范式,從而更好地激發(fā)預訓練 T5 模型。并且在微調階段引入了 SQL 擾動(dòng)機制,降低多輪 Text-to-SQL 生成場(chǎng)景下的錯誤傳遞帶來(lái)的影響。
未來(lái),研究團隊會(huì )進(jìn)一步探索更多有效的策略來(lái)撬動(dòng)超大語(yǔ)言模型的能力,并且探索更優(yōu)雅更有效的方式來(lái)進(jìn)一步克服因為錯誤傳遞而導致的效果降低問(wèn)題。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。