1句指令+5美元+20分鐘,就能訓(xùn)練出小型專業(yè)模型,Prompt2Model了解一下
大規(guī)模語言模型(LLM)使用戶可以借助提示和上下文學(xué)習(xí)來構(gòu)建強大的自然語言處理系統(tǒng)。然而,從另一角度來看,LLM 在特定自然語言處理任務(wù)上表現(xiàn)存在一定退步:這些模型的部署需要大量計算資源,并且通過 API 與模型進行交互可能引發(fā)潛在的隱私問題。
為了應(yīng)對這些問題,來自卡內(nèi)基梅隆大學(xué)(CMU)和清華大學(xué)的研究人員,共同推出了 Prompt2Model 框架。該框架的目標(biāo)是將基于 LLM 的數(shù)據(jù)生成和檢索方法相結(jié)合,以克服上述挑戰(zhàn)。使用 Prompt2Model 框架,用戶只需提供與 LLM 相同的提示,即可自動收集數(shù)據(jù)并高效地訓(xùn)練適用于特定任務(wù)的小型專業(yè)模型。
研究人員在三個自然語言處理子任務(wù)上進行了實驗。采用少量樣本提示作為輸入,僅需花費 5 美元收集數(shù)據(jù)并進行 20 分鐘的訓(xùn)練,Prompt2Model 框架生成的模型在性能上相較強大的 LLM 模型 gpt-3.5-turbo 表現(xiàn)出 20% 的性能提升。與此同時,模型的體積縮小了高達 700 倍。研究人員進一步驗證了這些數(shù)據(jù)在真實場景中對模型效果的影響,使得模型開發(fā)人員能夠在部署前預(yù)估模型的可靠性。該框架已以開源形式提供:
- 框架的 GitHub 倉庫地址:https://github.com/neulab/prompt2model
- 框架演示視頻鏈接:youtu.be/LYYQ_EhGd-Q
- 框架相關(guān)論文鏈接:https://arxiv.org/abs/2308.12261
背景
從零開始建立特定自然語言處理任務(wù)系統(tǒng)通常相當(dāng)復(fù)雜。系統(tǒng)的構(gòu)建者需要明確定義任務(wù)范圍,獲取特定的數(shù)據(jù)集,選擇合適的模型架構(gòu),進行模型訓(xùn)練和評估,然后將其部署以供實際應(yīng)用。
大規(guī)模語言模型(LLM)如 GPT-3 為這一過程提供了更加簡便的解決方案。用戶只需提供任務(wù)提示(instruction)以及一些示例(examples),LLM 便能生成相應(yīng)的文本輸出。然而,通過提示生成文本可能會消耗大量計算資源,并且使用提示的方式不如經(jīng)過專門訓(xùn)練的模型穩(wěn)定。此外,LLM 的可用性還受到成本、速度和隱私等方面的限制。
為了克服這些問題,研究人員開發(fā)了 Prompt2Model 框架。該框架將基于 LLM 的數(shù)據(jù)生成與檢索技術(shù)相結(jié)合,以解決上述限制。該系統(tǒng)首先從 prompt 中提取關(guān)鍵信息,然后生成并檢索訓(xùn)練數(shù)據(jù),最終生成可供部署的專業(yè)化模型。
Prompt2Model 框架自動執(zhí)行以下核心步驟:
- 數(shù)據(jù)集與模型檢索:收集相關(guān)數(shù)據(jù)集和預(yù)訓(xùn)練模型。
- 數(shù)據(jù)集生成:利用 LLM 創(chuàng)建偽標(biāo)記數(shù)據(jù)集。
- 模型微調(diào):通過混合檢索數(shù)據(jù)和生成數(shù)據(jù)對模型進行微調(diào)。
- 模型測試:在測試數(shù)據(jù)集和用戶提供的真實數(shù)據(jù)集上對模型進行測試。
經(jīng)過多個不同任務(wù)的實證評估,Prompt2Model 所花費成本顯著降低,模型的體積也大幅縮小,但性能超越了 gpt-3.5-turbo。Prompt2Model 框架不僅可作為高效構(gòu)建自然語言處理系統(tǒng)的工具,還可用作探索模型集成訓(xùn)練技術(shù)的平臺。
框架
Prompt2Model 框架的核心特點為高度自動化。其流程涵蓋了數(shù)據(jù)收集、模型訓(xùn)練、評估和部署等多個環(huán)節(jié),如上圖所示。其中,自動化數(shù)據(jù)收集系統(tǒng)扮演了關(guān)鍵角色,它通過數(shù)據(jù)集檢索和基于 LLM 的數(shù)據(jù)生成,獲取與用戶需求密切相關(guān)的數(shù)據(jù)。接著,系統(tǒng)會檢索預(yù)訓(xùn)練模型,并在獲取的數(shù)據(jù)集上進行微調(diào)。最后,系統(tǒng)會在測試集上對經(jīng)過訓(xùn)練的模型進行評估,并創(chuàng)建用于與模型交互的 Web 用戶界面(UI)。
Prompt2Model 框架的關(guān)鍵特點包括:
- Prompt 驅(qū)動:Prompt2Model 的核心思想在于使用 prompt 作為驅(qū)動,用戶可以直接描述所需的任務(wù),而無需深入了解機器學(xué)習(xí)的具體實現(xiàn)細節(jié)。
- 自動數(shù)據(jù)收集:框架通過數(shù)據(jù)集檢索和生成技術(shù)來獲取與用戶任務(wù)高度匹配的數(shù)據(jù),從而建立訓(xùn)練所需的數(shù)據(jù)集。
- 預(yù)訓(xùn)練模型:框架利用預(yù)訓(xùn)練模型并進行微調(diào),從而節(jié)省大量的訓(xùn)練成本和時間。
- 效果評估:Prompt2Model 支持在實際數(shù)據(jù)集上進行模型測試和評估,使得在部署模型之前就能進行初步預(yù)測和性能評估,從而提高了模型的可靠性。
這些特點使 Prompt2Model 框架成為一個強大的工具,能夠高效地完成自然語言處理系統(tǒng)的構(gòu)建過程,并且提供了先進的功能,如數(shù)據(jù)自動收集、模型評估以及用戶交互界面的創(chuàng)建。
實驗與結(jié)果
在實驗設(shè)計方面,研究者選擇了三項不同的任務(wù),以評估 Prompt2Model 系統(tǒng)的性能:
- 機器閱讀問答(Machine Reading QA):使用 SQuAD 作為實際評估數(shù)據(jù)集。
- 日語自然語言到代碼轉(zhuǎn)換(Japanese NL-to-Code):使用 MCoNaLa 作為實際評估數(shù)據(jù)集。
- 時間表達式規(guī)范化(Temporal Expression Normalization):使用 Temporal 數(shù)據(jù)集作為實際評估數(shù)據(jù)集。
此外,研究者還選用了 GPT-3.5-turbo 作為基準(zhǔn)模型進行對比。實驗結(jié)果得出以下結(jié)論:
- 在除了代碼生成任務(wù)之外的各項任務(wù)中,Prompt2Model 系統(tǒng)所生成的模型明顯優(yōu)于基準(zhǔn)模型 GPT-3.5-turbo,盡管生成的模型參數(shù)規(guī)模遠小于 GPT-3.5-turbo。
- 通過將檢索數(shù)據(jù)集與生成數(shù)據(jù)集進行混合訓(xùn)練,可以達到與直接使用實際數(shù)據(jù)集訓(xùn)練相媲美的效果。這驗證了 Prompt2Model 框架能夠極大地降低人工標(biāo)注的成本。
- 數(shù)據(jù)生成器所生成的測試數(shù)據(jù)集能夠有效區(qū)分不同模型在實際數(shù)據(jù)集上的性能。這表明生成的數(shù)據(jù)具有較高的質(zhì)量,在模型訓(xùn)練方面具有充分的效果。
- 在日語到代碼轉(zhuǎn)換任務(wù)中,Prompt2Model 系統(tǒng)的表現(xiàn)不如 GPT-3.5-turbo。
這可能是因為生成的數(shù)據(jù)集質(zhì)量不高,以及缺乏適當(dāng)?shù)念A(yù)訓(xùn)練模型等原因所致。
綜合而言,Prompt2Model 系統(tǒng)在多個任務(wù)上成功生成了高質(zhì)量的小型模型,極大地減少了對人工標(biāo)注數(shù)據(jù)的需求。然而,在某些任務(wù)上仍需要進一步改進。
總結(jié)
研究團隊所推出的 Prompt2Model 框架實現(xiàn)了僅通過自然語言提示來自動構(gòu)建任務(wù)特定模型的功能。這一創(chuàng)新顯著地降低了構(gòu)建定制化自然語言處理模型的門檻,進一步擴展了 NLP 技術(shù)的應(yīng)用范圍。
驗證實驗結(jié)果顯示,Prompt2Model 框架所生成的模型相較于大型語言模型,其規(guī)模顯著減小,且在多個任務(wù)上表現(xiàn)優(yōu)于諸如 GPT-3.5-turbo 等模型。同時,該框架生成的評估數(shù)據(jù)集也被證實能夠有效評估不同模型在真實數(shù)據(jù)集上的性能。這為指導(dǎo)模型的最終部署提供了重要價值。
Prompt2Model 框架為行業(yè)和廣大用戶提供了一種低成本、易于上手的途徑,以獲取滿足特定需求的 NLP 模型。這對于推動 NLP 技術(shù)的廣泛應(yīng)用具有重要意義。未來的工作將繼續(xù)致力于進一步優(yōu)化框架的性能。
按照文章順序,本文作者如下:
Vijay Viswanathan: http://www.cs.cmu.edu/~vijayv/
Chenyang Zhao: https://zhaochenyang20.github.io/Eren_Chenyang_Zhao/
Amanda Bertsch: https://www.cs.cmu.edu/~abertsch/
Tongshuang Wu: https://www.cs.cmu.edu/~sherryw/
Graham Neubig: http://www.phontron.com/