隨著對預(yù)訓(xùn)練大型語言模型( LLM )權(quán)重訪問需求的增加,圍繞 LLM 共享的環(huán)境正在發(fā)生變化。最近, Meta 發(fā)布了 開式預(yù)訓(xùn)練Transformer ,一個具有 1750 億個參數(shù)的語言模型。 BigScience 計劃在幾個月內(nèi)發(fā)布具有 1760 億個參數(shù)的多語言模型。
隨著越來越多的 LLM 可用,行業(yè)需要解決實際自然語言任務(wù)的技術(shù)。研究表明, 模型提示方法 可以從 LLM 中獲得良好的零拍和少拍性能,并有助于在各種下游自然語言處理( NLP )任務(wù)中產(chǎn)生高質(zhì)量的結(jié)果。白皮書提出了一種解決方案,使經(jīng)過預(yù)訓(xùn)練的通用 LLM 在自然語言處理領(lǐng)域日益流行的新 預(yù)訓(xùn)練、提示和預(yù)測 范式中切實有用。
然而,當您將提示方法應(yīng)用于工業(yè)自然語言處理應(yīng)用程序時,還需要考慮其他挑戰(zhàn)。對于任何下游 NLP 任務(wù),必須收集標記數(shù)據(jù),以指示語言模型如何生成預(yù)期結(jié)果。
盡管對于許多任務(wù),有大量標記的英語數(shù)據(jù),但很少有具有基準價值的非英語下游數(shù)據(jù)集。標記數(shù)據(jù)的稀缺性是業(yè)界在低資源語言環(huán)境中執(zhí)行自然語言處理任務(wù)的首要挑戰(zhàn)。
此外,公司通常必須動態(tài)解決多個下游非線性規(guī)劃任務(wù),這些任務(wù)可以隨著時間的推移而演變。在不忘記先前學(xué)習(xí)任務(wù)的情況下對新任務(wù)進行連續(xù)學(xué)習(xí)仍然是一個熱門的研究課題。一個好的、干凈的解決方案意味著更低的模型維護、更低的部署成本和快速的開發(fā)。
在本文中,我們將向您展示如何將 p-tuning (一種快速學(xué)習(xí)方法)適應(yīng)于低資源的語言設(shè)置。我們使用在 NVIDIA NeMo 中實現(xiàn)的 improved version p-tuning ,它支持虛擬提示的連續(xù)多任務(wù)學(xué)習(xí)。特別是,我們將重點放在使我們的英語 p-tuning 工作流適應(yīng)瑞典語。 Learn more 關(guān)于瑞典的一個財團計劃如何在北歐地區(qū)提供語言模型。
我們提出的工作流是通用的,可以很容易地為其他語言修改。
為什么選擇大型語言模型?
如 OpenAI 的 語言模型比例律研究 所示,語言模型的性能隨著語言模型大小的增加而提高。這導(dǎo)致了訓(xùn)練越來越大的語言模型的競賽。
NVIDIA 最近培訓(xùn)了一名 Megatron 圖靈 NLG 530B 該模型具有優(yōu)越的零拍和少拍學(xué)習(xí)性能。為了訪問 LLM ,研究人員可以使用付費模型 API ,例如 OpenAI 提供的 API ,或者在本地部署公開發(fā)布的模型。
當您有一個能夠很好地理解語言的 LLM 時,您可以應(yīng)用 即時學(xué)習(xí)方法 使該模型解決過多的非線性規(guī)劃下游任務(wù)。
快速學(xué)習(xí)和 p- 調(diào)優(yōu)的簡要概述
與手動或自動選擇離散文本提示不同, prompt learning 使用虛擬提示嵌入,可以使用梯度下降進行優(yōu)化。這些虛擬嵌入會從文本提示自動插入到離散令牌嵌入中。
在即時學(xué)習(xí)期間,整個 GPT 模型被凍結(jié),并且在每個訓(xùn)練步驟中僅更新這些虛擬令牌嵌入。提示學(xué)習(xí)過程會產(chǎn)生少量虛擬令牌嵌入,這些嵌入可以與文本提示相結(jié)合,以提高推理時的任務(wù)性能。
具體來說,在 p- 調(diào)諧中,使用一個小的長短時記憶( LSTM )模型作為提示編碼器。提示編碼器的輸入是任務(wù)名稱,輸出是特定于任務(wù)的虛擬令牌嵌入,與文本提示嵌入一起傳遞到 LLM 。
多任務(wù)連續(xù)學(xué)習(xí)解決方案
圖 2 顯示了 p-tuning 使用提示編碼器生成虛擬令牌嵌入。在 原始 p 調(diào)諧紙 中,提示編碼器只能用于一個任務(wù)。我們在我們的 NeMo 實現(xiàn) 因此,提示編碼器可以根據(jù)不同任務(wù)的名稱進行調(diào)整。
訓(xùn)練提示編碼器時,它將任務(wù)名稱映射到一組虛擬令牌嵌入。這使您能夠構(gòu)建一個嵌入表,該表存儲每個任務(wù)的任務(wù)名稱和虛擬令牌嵌入之間的映射。使用此嵌入表可以不斷學(xué)習(xí)新任務(wù),避免災(zāi)難性遺忘。例如,可以使用任務(wù) A 和 B 啟動 p-tuning 。
訓(xùn)練后,您可以將任務(wù) A 和 B 的虛擬令牌嵌入保存在表中,并將其凍結(jié)。您可以使用另一個新的提示編碼器繼續(xù)訓(xùn)練任務(wù) C 。類似地,在訓(xùn)練后,將任務(wù) C 的虛擬令牌嵌入保存在提示表中。在推理過程中,該模型可以查找提示表,并為不同的任務(wù)使用正確的虛擬令牌嵌入。
除了持續(xù)學(xué)習(xí)能力外, p-tuning 的 modified version 還有幾個其他優(yōu)點。首先,我們的實現(xiàn)引出了質(zhì)量模型預(yù)測。今年早些時候,我們在 GTC 2022 年關(guān)于使用 P-tuning 可以顯著提高大型非線性規(guī)劃模型的性能 的會議上,展示了 p- 調(diào)優(yōu)有助于實現(xiàn)下游非線性規(guī)劃任務(wù)的最先進精度。
其次, p- 調(diào)優(yōu)只需要幾個標記的數(shù)據(jù)點就可以給出合理的結(jié)果。例如,對于 FIQA 情緒分析任務(wù) ,它使用了 1000 個數(shù)據(jù)示例來實現(xiàn) 92% 的準確性。
第三,原始文件中描述的 p- 調(diào)優(yōu),在我們的具體實現(xiàn)中更是如此,是極其高效的參數(shù)。在 p- 調(diào)整期間,參數(shù)等于原始 GPT 模型參數(shù)的一小部分的 LSTM 被調(diào)整,而 GPT 模型權(quán)重保持不變。在訓(xùn)練結(jié)束時,可以丟棄 LSTM 網(wǎng)絡(luò),只需要保存虛擬提示本身。這意味著在推理過程中必須存儲和使用總計小于 GPT 模型大小約 0.01% 的參數(shù),以實現(xiàn)與零次和少次推理相比顯著提高的任務(wù)性能。
第四, p-tuning 在訓(xùn)練期間也更節(jié)省資源。凍結(jié) GPT 模型意味著我們不必為這些模型參數(shù)存儲優(yōu)化器狀態(tài),也不必花時間更新 GPT 模型權(quán)重。這節(jié)省了大量 GPU 內(nèi)存。
最后,虛擬提示令牌參數(shù)與 GPT 模型解耦。這使得能夠分發(fā)小型虛擬令牌參數(shù)文件,這些文件可以插入共享訪問 GPT 模型,而不需要共享更新的 GPT 模型權(quán)重,這是微調(diào) GPT 模型時所需要的。
創(chuàng)建瑞典下游任務(wù)數(shù)據(jù)集
為了將 p-tuning 應(yīng)用于非英語下游任務(wù),我們在目標語言中標記了數(shù)據(jù)。由于有大量的英文標簽下游任務(wù)數(shù)據(jù),我們使用機器翻譯模型將這些英文標簽數(shù)據(jù)翻譯成目標低資源語言。在這篇文章中,我們將英文數(shù)據(jù)翻譯成瑞典語。由于 p-tuning 的低標記數(shù)據(jù)要求,我們不需要翻譯很多標記數(shù)據(jù)點。
為了完全控制翻譯模型,我們選擇使用從頭開始訓(xùn)練的內(nèi)部翻譯模型。該模型采用英語到瑞典語/挪威語(一對多)的方向,使用 NeMo NMT 工具包。 訓(xùn)練數(shù)據(jù)(平行語料庫)來自 Opus 。英語到瑞典語的翻譯質(zhì)量由母語為英語和瑞典語的人手動評估。
我們還使用了其他翻譯模型來幫助檢查我們的翻譯模型的質(zhì)量。我們翻譯了一些來自原始英語基準數(shù)據(jù)的隨機樣本,并手動檢查了其他模型翻譯與我們自己的模型翻譯的質(zhì)量。我們使用了 deepL 、 谷歌翻譯 API 和 DeepTranslator 。
除了一些時鐘和時間系統(tǒng)錯誤外,整體翻譯質(zhì)量足夠好,我們可以繼續(xù)將英語標記的數(shù)據(jù)轉(zhuǎn)換為瑞典語。隨著我們的 NeMo 非負矩陣變換英語 – 瑞典語翻譯模型的訓(xùn)練和驗證完成,我們使用該模型翻譯了兩個英語基準數(shù)據(jù)集:
財務(wù)情緒分析 ( FIQA )
Assistant Benchmarking (助手)
為了方便起見,我們使用 svFIQA 和 svAssistant 來區(qū)分原始英語和翻譯后的瑞典基準數(shù)據(jù)集。
以下是分別從 FIQA 和 svFIQA 中隨機選取的培訓(xùn)記錄示例:
英語:
{"taskname": "sentiment-task", "sentence": "Barclays PLC & Lloyds Banking Group PLC Are The 2 Banks I'd Buy Today. Sentiment for Lloyds ", "label": "positive"}
瑞典的:
{"taskname": "sentiment-task", "sentence": "Barclays PLC & Lloyds Banking Group PLC ?r de 2 banker jag skulle k?pa idag.. K?nslor f?r Lloyds", "label": "positiva"}
翻譯后的數(shù)據(jù)集應(yīng)保留實際英語源數(shù)據(jù)的正確語法結(jié)構(gòu)。因為情緒指的是兩家銀行,所以是復(fù)數(shù)。翻譯成瑞典語的地面實況標簽也應(yīng)反映正確的瑞典語語法,即“ positiva ”。
為了完整性起見,我們還從 Assistant 和 svAssistant 中隨機選擇了一個示例:
英語:
{"taskname": "intent_and_slot", "utterance": "will you please get the coffee machine to make some coffee", "label": "\nIntent: iot_coffee\nSlots: device_type(coffee machine)"}
瑞典的:
{"taskname": "intent_and_slot", "utterance": "kommer du sn?lla f? kaffemaskinen f?r att g?ra lite kaffe", "label": "Intent: iot _ kaffe Slots: enhet _ typ (kaffemaskin)"}
GPT 模型
以下實驗中使用的瑞典 GPT-SW3 檢查點是瑞典 AI 和 NVIDIA 合作的結(jié)果。更具體地說, AI 瑞典的 GPT-SW3 檢查點具有 36 億個參數(shù),使用威震天 LM 進行預(yù)訓(xùn)練。該模型用于進行本文所述的瑞典多任務(wù) p- 調(diào)整實驗。
多任務(wù) p- 調(diào)諧實驗
為了模擬典型的企業(yè)客戶用例,我們設(shè)想了一個場景,其中用戶首先需要高精度地解決情感分析非線性規(guī)劃任務(wù)。隨后,隨著業(yè)務(wù)的發(fā)展,用戶需要繼續(xù)使用相同的模型解決虛擬助理任務(wù),以降低成本。
我們在瑞典語的連續(xù)學(xué)習(xí)設(shè)置中運行了兩次 p-tuning 。我們將 svFIQA 數(shù)據(jù)集用于第一個自然語言處理任務(wù)。然后,我們將 svAssistant 數(shù)據(jù)集用于第二個 NLP 任務(wù)。
我們可以同時對這兩個任務(wù)進行 p-tuned 。然而,我們選擇連續(xù)進行兩輪 p 調(diào)整,以展示 NeMo 中的連續(xù)快速學(xué)習(xí)能力。
我們首先使用該 p-tuning 教程筆記本 的稍微修改版本,對 svFIQA 和 svAssistant 進行了一系列短期超參數(shù)調(diào)優(yōu)實驗。在這些實驗中,我們確定了每個任務(wù)的最佳虛擬令牌數(shù)量和最佳虛擬令牌放置。
為了在文本提示中操作虛擬令牌的總數(shù)及其位置,我們在 p-tuning 模型的訓(xùn)練配置文件中修改了以下sentiment任務(wù)模板。
"taskname": "sentiment", "prompt_template": "<|VIRTUAL_PROMPT_0|> {sentence} <|VIRTUAL_PROMPT_1|>sentiment:{label}", "total_virtual_tokens": 16, "virtual_token_splits": [10,6], "truncate_field": None, "answer_only_loss": True, "answer_field": "label",
此提示模板是特定于語言的。除了虛擬令牌的位置和使用的虛擬令牌的數(shù)量外,將每個提示模板中的單詞翻譯成目標語言也很重要。在這里,術(shù)語“情緒”(添加在最終虛擬提示令牌和標簽之間)應(yīng)翻譯成瑞典語。
在我們的實驗中,我們使用了 10 倍交叉驗證來計算性能指標。在我們的超參數(shù)搜索過程中,我們對瑞典 GPT-SW3 模型進行了第一次 p- 調(diào)優(yōu),直到驗證損失在 10-20 個階段后趨于穩(wěn)定。
在以這種方式進行了幾輪實驗后,我們決定對 svFIQA 數(shù)據(jù)集的所有 10 倍使用以下模板:
"taskname": "sentiment-task", "prompt_template": "<|VIRTUAL_PROMPT_0|> {sentence}:{label}", "total_virtual_tokens": 10, "virtual_token_splits": [10], "truncate_field": None, "answer_only_loss": True, "answer_field": "label",
術(shù)語“情緒”從提示模板中刪除,而是直接包含在提示的{sentence}
部分。這使我們能夠輕松地將“感悟”與英語句子的其余部分一起翻譯成瑞典語:
{"taskname": "sentiment-task", "sentence": "Barclays PLC & Lloyds Banking Group PLC ?r de 2 banker jag skulle k?pa idag.. K?nslor f?r Lloyds", "label": "positiva"}
在找到最佳訓(xùn)練配置后,我們在 10 個 svFIQA 折疊中的每個折疊上對瑞典 GPT-SW3 模型進行了 p- 調(diào)優(yōu)。我們評估了對應(yīng)測試分割上每個折疊的 p- 調(diào)整檢查點。通過對 svAssistant 數(shù)據(jù)集重復(fù)相同的步驟,我們向 GPT-SW3 模型中添加了意向和時隙預(yù)測功能,這次恢復(fù)了在 svFIQA 上訓(xùn)練的檢查點,并添加了意向和時隙任務(wù)。
后果
為了建立一個基線,并且由于在這種情況下沒有瑞典現(xiàn)有的基準,我們使用原始 AI 瑞典 GPT-SW3 模型的零、一和少數(shù)鏡頭學(xué)習(xí)性能作為基線。
可以看出,除了零炮外, svFIQA 上的少數(shù)炮學(xué)習(xí)性能為 42-52% ??梢岳斫猓捎?GPT 模型接收到零標記示例,零炮的性能明顯較差。該模型生成的令牌很可能與給定任務(wù)無關(guān)。
考慮到情緒分析任務(wù)的二元性,在計算任務(wù)準確性之前,我們將單詞“ positive ”和“ negative ”的所有瑞典語法變體映射到相同的格式。
通過這種重映射機制,我們?nèi)〉昧讼喈敽玫慕Y(jié)果: 82.65% 。 svFIQA 測試中的 p- 調(diào)諧性能在所有 10 倍中取平均值。
表 2 顯示了 svAssistant 數(shù)據(jù)集(意向和時隙分類)上第二輪 p 調(diào)整的結(jié)果。所有 10 倍的分數(shù)也取平均值。
接下來,我們進一步探討了這個問題, “ 在不降低性能的情況下,我們可以減少多少訓(xùn)練數(shù)據(jù)總量? ”
對于 svFIQA 數(shù)據(jù)集,我們發(fā)現(xiàn)我們可以在每次訓(xùn)練運行中只獲得十分之一的訓(xùn)練數(shù)據(jù),并且仍然保持可接受的性能。然而,從 5% 的訓(xùn)練數(shù)據(jù)開始(只有 47 個訓(xùn)練數(shù)據(jù)點),我們開始看到性能急劇下降,性能在 1% 左右變得不穩(wěn)定(只有 9 個訓(xùn)練數(shù)據(jù)點,平均 6 次訓(xùn)練,每個訓(xùn)練有 9 個隨機采樣的數(shù)據(jù)點)。
今后的工作
我們注意到,可以改進意向和時隙分類的結(jié)果。它們在很大程度上依賴于翻譯模型將非自然文本從英語翻譯為瑞典語的能力。在下面的示例中,英語意圖和時隙提示格式對于翻譯模型來說很難準確翻譯,從而影響了瑞典語翻譯的質(zhì)量。
英文標簽為“意圖: alarm \ u set Slots : date ( sunday ), 時間(上午八點)” 。
當它被翻譯成瑞典語時,它變成了 “時間(上午八點)” 。
翻譯模型完全跳過了“意圖”和“槽:”這兩個詞。它還刪除了 intent 中alarm_set和插槽中date(sunday)的翻譯。
未來,我們將把源語言數(shù)據(jù)表述為自然語言,然后再將其翻譯成目標語言。我們還嘗試了一種預(yù)訓(xùn)練的 mT5 模型,該模型可以完全跳過翻譯步驟。早期的結(jié)果是有希望的,所以請關(guān)注完整的結(jié)果。
最后,我們還計劃將快速學(xué)習(xí)方法與基本 GPT 模型的完全微調(diào)進行比較。這將使我們能夠比較兩種任務(wù)適應(yīng)方法之間的權(quán)衡。
結(jié)論
在這篇文章中,我們展示了一種參數(shù)高效的解決方案,可以在低資源語言環(huán)境中解決多個自然語言處理任務(wù)。針對瑞典語,我們將英語情感分類和意圖/時隙分類數(shù)據(jù)集翻譯成瑞典語。然后,我們在這些數(shù)據(jù)集上對瑞典 GPT-SW3 模型進行了 p- 調(diào)優(yōu),與我們的幾個快照學(xué)習(xí)基線相比,取得了良好的性能。
我們表明,我們的方法可以幫助您訓(xùn)練提示編碼器,只需將原始訓(xùn)練數(shù)據(jù)的十分之一調(diào)整到模型原始參數(shù)的 0.1% 以下,同時仍能保持性能。
由于 LLM 在訓(xùn)練過程中被凍結(jié), p-tuning 需要更少的資源,整個訓(xùn)練過程可以高效快速地完成,這使得任何人都可以訪問 LLM 。您可以帶上自己的數(shù)據(jù),并根據(jù)自己的用例調(diào)整模型。
在我們的 NeMo p- 調(diào)諧實現(xiàn)中,我們還簡化了輕量級的連續(xù)學(xué)習(xí)。您可以使用我們的方法不斷學(xué)習(xí)和部署新任務(wù),而不會降低以前添加的任務(wù)的性能。
關(guān)于作者
Virginia Adams 是一位深度學(xué)習(xí)應(yīng)用科學(xué)家,與 NVIDIA 對話人工智能團隊( NeMo )合作開發(fā)自然語言處理應(yīng)用程序。 2018 年,她獲得了麻省理工學(xué)院中文系計算機科學(xué)學(xué)士學(xué)位。她在深度學(xué)習(xí)領(lǐng)域有四年的專業(yè)經(jīng)驗,目前正在斯坦福大學(xué)攻讀計算機科學(xué)碩士學(xué)位。在工作之外,你可以看到維吉尼亞在讀科幻小說,嘗試新的運動。
Zenodia Charpy 是高級深度學(xué)習(xí)解決方案架構(gòu)師,專注于應(yīng)用自然語言處理和深度學(xué)習(xí)技術(shù)來應(yīng)對非英語和低資源語言的挑戰(zhàn),例如瑞典語、丹麥語和挪威語。作為一名數(shù)據(jù)科學(xué)家,她在解決現(xiàn)實世界問題、構(gòu)建端到端解決方案方面擁有八年的豐富經(jīng)驗,她既是一名內(nèi)部數(shù)據(jù)科學(xué)家,也是一名數(shù)據(jù)科學(xué)顧問。在空閑時間,她喜歡在森林里散步或跑步,做瑜伽。
Yi Dong 是 NVIDIA 的深度學(xué)習(xí)解決方案架構(gòu)師,負責(zé)提供金融服務(wù)業(yè)人工智能解決方案。易建聯(lián)獲得了博士學(xué)位。來自約翰·霍普金斯大學(xué)醫(yī)學(xué)院,研究計算神經(jīng)科學(xué)。易在計算機軟件工程、機器學(xué)習(xí)和金融領(lǐng)域擁有 10 年的工作經(jīng)驗。易建聯(lián)喜歡閱讀深度學(xué)習(xí)的最新進展,并將其應(yīng)用于解決財務(wù)問題。
審核編輯:郭婷
-
編碼器
+關(guān)注
關(guān)注
45文章
3875瀏覽量
140535 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5431瀏覽量
108281 -
nlp
+關(guān)注
關(guān)注
1文章
491瀏覽量
23049
發(fā)布評論請先 登錄
Task任務(wù):LuatOS實現(xiàn)“任務(wù)級并發(fā)”的核心引擎

云知聲向信陽高中捐贈英語口語考評教室設(shè)備
采用 WLCSP 封裝的 3P4T 發(fā)射/接收 LTE 交換機 skyworksinc

K230 ISP Tuning Tool導(dǎo)出數(shù)據(jù)錯誤的原因?
Hyperabrupt Junction Tuning 變?nèi)荻O管芯片 skyworksinc

Hyperabrupt Junction Tuning 變?nèi)荻O管 skyworksinc

Hyperabrupt Junction Tuning Varactor skyworksinc

EZ-USB? HX3PD否可以將兩個PD端口用作下游USB端口?
采用雙時鐘機制下的XL2407P芯片

Linux計劃任務(wù)cron詳解

評論