搜尋
首頁科技週邊人工智慧大規模語言模型高效參數微調--BitFit/Prefix/Prompt 微調系列

2018 年Google發布了BERT,一經面世便一舉擊敗11 個NLP 任務的State-of-the-art (Sota) 結果,成為了NLP 界新的里程碑; BERT 的結構如下圖所示, 左邊是 BERT 模型預訓練過程, 右邊是特定任務的微調過程。其中, 微調 階段是後續用於一些下游任務的時候進行微調, 例如: 文本分類, 詞性標註, 問答系統等, BERT 無需調整結構 就可以在不同的任務上進行微調。透過」預訓練語言模式   下游任務微調」的任務設計, 帶來了強大的模式效 果。從此,「預訓練語言模式   下游任務微調」便成為了 NLP 領域主流訓練範式。

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列BERT 結構圖,左邊是預訓練過程,右邊是具體任務微調過程

然而,隨著以GPT3為代表的大規模語言模型(LLM)參數規模的增加,消費級硬體上進行全量微調變得不可行。下表展示了在一張A100 GPU(80G顯存)以及CPU記憶體64GB以上的硬體上進行模型全量微調以及參數高效微調對於CPU/GPU記憶體的消耗情況

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列#全量參數微調與參數高效能微調顯存佔用對比

除此之外,全面微調模型還會導致多樣性的喪失,並且存在嚴重的遺忘問題。因此,如何高效地進行模型微調已成為業界研究的重點,這也為參數高效微調技術的快速發展提供了研究空間

參數高效微調是指微調少量或額外的模型參數,固定大部分預訓練模型(LLM) 參數, 因而大幅降低了計 算與儲存成本, 同時, 也能達到與全量參數微調相當的效能。參數高效微調方法甚至在某些情況下比全量微調 效果更好,可以更好地泛化到域外場景。

高效能微調技術可粗略分為以下三大類,如下圖所示:增加額外參數(A)、選取一部分參數更新(S)、引入重參數化(R)。 而在增加額外參數這類方法中,又主要分為類適配器(Adapter-like)方法和軟提示(Soft prompts)兩個小類。

常見的參數高效能微調技術包括BitFit、Prefix Tuning、Prompt Tuning、P-Tuning、Adapter Tuning、LoRA等。接下來的章節將對一些主流的參數高效微調方法進行詳細講解

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列#常見的參數高效微調技術和方法

#BitFit/Prefix/Prompt 微調系列

BitFit

雖然對每個任務進行全量微調非常有效,但它也會為每個預訓練任務產生一個獨特的大型模型, 這使得很 難推斷微調過程中發生了什麼變化,也很難部署,特別是隨著任務數量的增加,很難維護。

理想狀況下,我們希望有一種滿足以下條件的高效微調方法:

上述的問題取決於微調過程能多大程度引導新能力的學習以及暴露在預訓練LM 中學到的能力。雖然, 之 前的高效率微調方法 Adapter-Tuning 、Diff-Pruning 也能夠部分滿足上述的需求。一種參數量較小的稀疏的微調方 法 BitFit 可以滿足上述所有需求。

BitFit 是一種稀疏的微調方法, 它訓練時只更新 bias 的參數或部分 bias 參數。對 Transformer 模型而言, 凍結大部分 transformer-encoder 參數, 只更新 bias 參數跟特定任務的分類層參數。涉及的bias 參數有attention  模組中計算query,key,value 跟隨合併多個attention 結果時涉及到的bias,MLP 層中的bias,Layernormalization 層的bias 參數,預訓練模型中的bias參數如下圖所示。

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列圖片

PLM 模組代表了一個特定的 PLM 子層, 例如注意力或 FFN,圖中橘色區塊表示可訓練的提示向量, 藍色 塊表示凍結的預訓練模型參數

#

在 Bert-Base/Bert-Large 這種模型裡, bias 參數只佔模型全部參數量的 0.08%~0.09%。但透過在Bert-Large  模型上基於GLUE 資料集進行了BitFit、Adapter 和Diff-Pruning 的效果比較發現, BitFit 在參數量遠小於Adapter、 Diff-Pruning 的情況下,效果與Adapter 、Diff-Pruning 想當,甚至在某些任務上略優於Adapter 、Diff-Pruning。

透過實驗結果可以看出,相對於全量參數微調,BitFit微調結果只更新了極少量的參數,在多個資料集上都取得了不錯的效果。雖然不如全量參數微調,但遠超過固定全部模型參數的Frozen方式。同時,透過比較BitFit訓練前後的參數,發現許多偏移參數並沒有太多變化,例如與計算key相關的偏移參數。而發現計算query和將特徵維度從N放大到4N的FFN層的偏移參數變化最為明顯,只更新這兩類偏壓參數也能取得不錯的效果。反之,固定其中任何一者,模型的效果都會有較大損失

Prefix Tuning

在 Prefix Tuning 之前的工作主要是人工設計離散的模版或自動化搜尋離散的模版。對於人工設計的模版, 模版的變化對模型的最終表現特別敏感, 加一個字、少一個字或是變動位置都會造成比較大的變化。而對於自動 化搜尋模版, 成本也比較高;同時, 以前這種離散化的 token 搜尋出來的結果可能並不是最優的。除此之外, 傳統的微調範式利用預訓練模型去對不同的下游任務進行微調, 對每個任務都要保存一份微調後的模型權重, 一 方面微調整個模型耗時長;另一方面也會佔很多儲存空間。基於上述兩點, Prefix Tuning 提出固定預訓練LM,為LM 添加可訓練, 任務特定的前綴, 這樣就可以為不同任務保存不同的前綴, 微調成本也小; 同時, 這種 Prefix  實際是連續可微的 Virtual Token  (Soft Prompt/Continuous Prompt),相較於離散的 Token ,較佳優化,效果較好。

那麼,需要重寫的內容是:那麼 prefix 的意思是什麼呢? prefix 的作用是引導模型提取 x 相關的訊息,進而更好地產生 y。例如,我們要做一個summarization 的任務,那麼經過微調後,prefix 就能領悟到當前要做的是個「總結形式」的任務,然後引導模型去x 中提煉關鍵訊息;如果我們要做一個情感分類的任務,prefix 就能引導模型去提煉出x 中和情感相關的語意訊息,以此類推。這樣的解釋可能不那麼嚴謹,但大家可以大致體會一下prefix 的作用

Prefix Tuning 是在輸入token 之前構造一段任務相關的virtual tokens 作為Prefix,然後訓練的時候只更新Prefix 部分的參數,而PLM 中的其他部分參數固定。針對不同的模型結構,需要建構不同的Prefix:

  • 針對自迴歸架構模型:在句子前面加上前綴, 得到z = [PREFIX; x; y],適合的上文能夠在固定LM 的情況下去引導生成下文(例如:GPT3 的上下文學習)。
  • 針對編碼器-解碼器架構模型:Encoder 和 Decoder 都增加了前綴,得到 z = [PREFIX; x; PREFIX0; y]。 Encoder 端增加前綴是為了引導輸入部分的編碼, Decoder 端增加前綴是為了引導後續 token 的產生。

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列圖片

對內容重寫,不改變原意,使用中文重寫: 對於上一個部分的微調,我們會更新所有Transformer參數(紅色框),並且需要為每個任務儲存完整的模型副本。而下部分的前綴調整則會凍結Transformer參數,並且只優化前綴(紅色框)

該方法其實和構造Prompt 類似, 只是Prompt 是人為構造的“顯式”的提示,且無法更新參數, 而Prefix 則是可以學習的「隱式」的提示。同時,為了防止直接更新 Prefix 的參數導致訓練不穩定和表現下降的情況,在 Prefix 層前面加了 MLP 結構, 訓練完成後, 只保留 Prefix 的參數。除此之外, 透過消融實驗證實, 只調整 embedding 層的表現力不夠,將導致表現顯著下降,因此,每層都加了 prompt 的參數,而改變較大。

Prefix Tuning 雖然看起來方便,但也存在以下兩個顯著劣勢:

Prompt Tuning

大模型全量微調對每個任務訓練一個模型, 開銷和部署成本都比較高。同時, 離散的 prompts  (指人工設計 prompts 提示語加入到模型) 方法, 成本比較高, 且效果不太好。 Prompt Tuning 透過反向傳播更新參數來學習 prompts,而不是人工設計 prompts;同時凍結模型原始權重, 只訓練 prompts 參數, 訓練完以後, 用同一個模型 可以做多任務推理。

大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列圖片

模型調整需要為每個任務製作整個預訓練模型的特定任務副本下游任務和推理必須在分開批次。 Prompt Tuning 只需要為每個任務儲存一個小的特定於任務的提示,並且使用原始預訓練模型啟用混合任務推理。

Prompt Tuning 可以看作是Prefix Tuning 的簡化版本,它給每個任務定義了自己的Prompt,然後拼接到資料 上作為輸入,但只在輸入層加入prompt tokens,並且不需要加入MLP 進行調整來解決難訓練的問題。

透過實驗發現,隨著預訓練模型參數量的增加,Prompt Tuning 的方法會逼近全參數微調的結果。同時, Prompt Tuning 也提出了Prompt Ensembling,也就是在一個批次(Batch) 裡同時訓練同一個任務的不同prompt  (即採用 多種不同方式詢問同一個問題) ,這樣相當於訓練了不同模型, 比模型整合的成本小多了。除此之外, Prompt Tuning 論文中也探討了 Prompt token 的初始化方法和長度對於模型效能的影響。透過消融實驗結果發現, 與隨機 初始化和使用樣本詞彙表初始化相比, Prompt Tuning 採用類別標籤初始化模型的效果更好。不過隨著模型參數規 模的提升, 這種 gap 最終會消失。 Prompt token 的長度在20 左右時的表現已經不錯(超過20 之後, 提升Prompt token 長度, 對模型的性能提升不明顯了),同樣的, 這個gap 也會隨著模型參數規模的提升而減小(即對於超大規模模型而言,即使Prompt token 長度很短,對性能也不會有太大的影響)。

以上是大規模語言模型高效參數微調--BitFit/Prefix/Prompt 微調系列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
無法使用chatgpt!解釋可以立即測試的原因和解決方案[最新2025]無法使用chatgpt!解釋可以立即測試的原因和解決方案[最新2025]May 14, 2025 am 05:04 AM

ChatGPT無法訪問?本文提供多種實用解決方案!許多用戶在日常使用ChatGPT時,可能會遇到無法訪問或響應緩慢等問題。本文將根據不同情況,逐步指導您解決這些問題。 ChatGPT無法訪問的原因及初步排查 首先,我們需要確定問題是出在OpenAI服務器端,還是用戶自身網絡或設備問題。 請按照以下步驟進行排查: 步驟1:檢查OpenAI官方狀態 訪問OpenAI Status頁面 (status.openai.com),查看ChatGPT服務是否正常運行。如果顯示紅色或黃色警報,則表示Open

計算ASI的風險始於人類的思想計算ASI的風險始於人類的思想May 14, 2025 am 05:02 AM

2025年5月10日,麻省理工學院物理學家Max Tegmark告訴《衛報》,AI實驗室應在釋放人工超級智能之前模仿Oppenheimer的三位一體測試演算。 “我的評估是'康普頓常數',這是一場比賽的可能性

易於理解的解釋如何編寫和撰寫歌詞和推薦工具易於理解的解釋如何編寫和撰寫歌詞和推薦工具May 14, 2025 am 05:01 AM

AI音樂創作技術日新月異,本文將以ChatGPT等AI模型為例,詳細講解如何利用AI輔助音樂創作,並輔以實際案例進行說明。我們將分別介紹如何通過SunoAI、Hugging Face上的AI jukebox以及Python的Music21庫進行音樂創作。 通過這些技術,每個人都能輕鬆創作原創音樂。但需注意,AI生成內容的版權問題不容忽視,使用時務必謹慎。 讓我們一起探索AI在音樂領域的無限可能! OpenAI最新AI代理“OpenAI Deep Research”介紹: [ChatGPT]Ope

什麼是chatgpt-4?對您可以做什麼,定價以及與GPT-3.5的差異的詳盡解釋!什麼是chatgpt-4?對您可以做什麼,定價以及與GPT-3.5的差異的詳盡解釋!May 14, 2025 am 05:00 AM

ChatGPT-4的出现,极大地拓展了AI应用的可能性。相较于GPT-3.5,ChatGPT-4有了显著提升,它具备强大的语境理解能力,还能识别和生成图像,堪称万能的AI助手。在提高商业效率、辅助创作等诸多领域,它都展现出巨大的潜力。然而,与此同时,我们也必须注意其使用上的注意事项。 本文将详细解读ChatGPT-4的特性,并介绍针对不同场景的有效使用方法。文中包含充分利用最新AI技术的技巧,敬请参考。 OpenAI发布的最新AI代理,“OpenAI Deep Research”详情请点击下方链

解釋如何使用chatgpt應用程序!日本支持和語音對話功能解釋如何使用chatgpt應用程序!日本支持和語音對話功能May 14, 2025 am 04:59 AM

CHATGPT應用程序:與AI助手釋放您的創造力!初學者指南 ChatGpt應用程序是一位創新的AI助手,可處理各種任務,包括寫作,翻譯和答案。它是一種具有無限可能性的工具,可用於創意活動和信息收集。 在本文中,我們將以一種易於理解的方式解釋初學者,從如何安裝chatgpt智能手機應用程序到語音輸入功能和插件等應用程序所獨有的功能,以及在使用該應用時要牢記的要點。我們還將仔細研究插件限制和設備對設備配置同步

如何使用中文版Chatgpt?註冊程序和費用的說明如何使用中文版Chatgpt?註冊程序和費用的說明May 14, 2025 am 04:56 AM

ChatGPT中文版:解鎖中文AI對話新體驗 ChatGPT風靡全球,您知道它也提供中文版本嗎?這款強大的AI工具不僅支持日常對話,還能處理專業內容,並兼容簡體中文和繁體中文。無論是中國地區的使用者,還是正在學習中文的朋友,都能從中受益。 本文將詳細介紹ChatGPT中文版的使用方法,包括賬戶設置、中文提示詞輸入、過濾器的使用、以及不同套餐的選擇,並分析潛在風險及應對策略。此外,我們還將對比ChatGPT中文版和其他中文AI工具,幫助您更好地了解其優勢和應用場景。 OpenAI最新發布的AI智能

5 AI代理神話,您需要停止相信5 AI代理神話,您需要停止相信May 14, 2025 am 04:54 AM

這些可以將其視為生成AI領域的下一個飛躍,這為我們提供了Chatgpt和其他大型語言模型聊天機器人。他們可以代表我們採取行動,而不是簡單地回答問題或產生信息

易於理解使用Chatgpt創建和管理多個帳戶的非法性的解釋易於理解使用Chatgpt創建和管理多個帳戶的非法性的解釋May 14, 2025 am 04:50 AM

使用chatgpt有效的多個帳戶管理技術|關於如何使用商業和私人生活的詳盡解釋! Chatgpt在各種情況下都使用,但是有些人可能擔心管理多個帳戶。本文將詳細解釋如何為ChatGpt創建多個帳戶,使用時該怎麼做以及如何安全有效地操作它。我們還介紹了重要的一點,例如業務和私人使用差異,並遵守OpenAI的使用條款,並提供指南,以幫助您安全地利用多個帳戶。 Openai

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!