偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

大規(guī)模語言模型高效參數(shù)微調(diào)--BitFit/Prefix/Prompt 微調(diào)系列

人工智能
Prompt Tuning 可以看作是 Prefix Tuning 的簡(jiǎn)化版本,它給每個(gè)任務(wù)定義了自己的 Prompt,然后拼接到數(shù)據(jù) 上作為輸入,但只在輸入層加入 prompt tokens,并且不需要加入 MLP 進(jìn)行調(diào)整來解決難訓(xùn)練的問題。

2018 年谷歌發(fā)布了 BERT,一經(jīng)面世便一舉擊敗 11 個(gè) NLP 任務(wù)的 State-of-the-art (Sota) 結(jié)果,成為了 NLP 界新的里程碑; BERT 的結(jié)構(gòu)如下圖所示, 左邊是 BERT 模型預(yù)訓(xùn)練過程, 右邊是對(duì)于具體任務(wù)的微調(diào)過程。其中, 微調(diào) 階段是后續(xù)用于一些下游任務(wù)的時(shí)候進(jìn)行微調(diào), 例如: 文本分類, 詞性標(biāo)注, 問答系統(tǒng)等, BERT 無需調(diào)整結(jié)構(gòu) 就可以在不同的任務(wù)上進(jìn)行微調(diào)。通過”預(yù)訓(xùn)練語言模型 + 下游任務(wù)微調(diào)”的任務(wù)設(shè)計(jì), 帶來了強(qiáng)大的模型效 果。從此,“預(yù)訓(xùn)練語言模型 + 下游任務(wù)微調(diào)”便成為了 NLP 領(lǐng)域主流訓(xùn)練范式。

BERT 結(jié)構(gòu)圖,左邊是預(yù)訓(xùn)練過程,右邊是具體任務(wù)微調(diào)過程BERT 結(jié)構(gòu)圖,左邊是預(yù)訓(xùn)練過程,右邊是具體任務(wù)微調(diào)過程

但是, 以 GPT3 為代表的大規(guī)模語言模型(LLM) 參數(shù)規(guī)模變得越來越大, 這使得在消費(fèi)級(jí)硬件上進(jìn)行全量 微調(diào)變得不可行。下表展示了在一張 A100 GPU  (80G 顯存) 以及 CPU 內(nèi)存 64GB 以上的硬件上進(jìn)行模型全量 微調(diào)以及參數(shù)高效微調(diào)對(duì)于 CPU/GPU 內(nèi)存的消耗情況。

全量參數(shù)微調(diào)與參數(shù)高效微調(diào)顯存占用對(duì)比全量參數(shù)微調(diào)與參數(shù)高效微調(diào)顯存占用對(duì)比

除此之外, 模型全量微調(diào)還會(huì)損失多樣性, 存在災(zāi)難性遺忘的問題。因此, 如何高效的進(jìn)行模型微調(diào)就成了業(yè)界研究的重點(diǎn),這也為參數(shù)高效微調(diào)技術(shù)的快速發(fā)展帶來了研究空間。

參數(shù)高效微調(diào)是指微調(diào)少量或額外的模型參數(shù), 固定大部分預(yù)訓(xùn)練模型(LLM) 參數(shù), 從而大大降低了計(jì) 算和存儲(chǔ)成本, 同時(shí), 也能實(shí)現(xiàn)與全量參數(shù)微調(diào)相當(dāng)?shù)男阅?。參?shù)高效微調(diào)方法甚至在某些情況下比全量微調(diào) 效果更好,可以更好地泛化到域外場(chǎng)景。

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

常見的參數(shù)高效微調(diào)技術(shù)有 BitFit 、Prefix Tuning 、Prompt Tuning 、P-Tuning 、Adapter Tuning 、LoRA 等, 后 面章節(jié)將對(duì)一些主流的參數(shù)高效微調(diào)方法進(jìn)行講解。

常見的參數(shù)高效微調(diào)技術(shù)和方法常見的參數(shù)高效微調(diào)技術(shù)和方法

BitFit/Prefix/Prompt 微調(diào)系列

BitFit

雖然對(duì)每個(gè)任務(wù)進(jìn)行全量微調(diào)非常有效, 但它也會(huì)為每個(gè)預(yù)訓(xùn)練任務(wù)生成一個(gè)獨(dú)特的大型模型, 這使得很 難推斷微調(diào)過程中發(fā)生了什么變化,也很難部署,特別是隨著任務(wù)數(shù)量的增加,很難維護(hù)。

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

上述的問題取決于微調(diào)過程能多大程度引導(dǎo)新能力的學(xué)習(xí)以及暴露在預(yù)訓(xùn)練 LM 中學(xué)到的能力。雖然, 之 前的高效微調(diào)方法 Adapter-Tuning 、Diff-Pruning 也能夠部分滿足上述的需求。一種參數(shù)量更小的稀疏的微調(diào)方 法 BitFit 可以滿足上述所有需求。

BitFit 是一種稀疏的微調(diào)方法, 它訓(xùn)練時(shí)只更新 bias 的參數(shù)或者部分 bias 參數(shù)。對(duì)于 Transformer 模型而言, 凍結(jié)大部分 transformer-encoder 參數(shù), 只更新 bias 參數(shù)跟特定任務(wù)的分類層參數(shù)。涉及到的 bias 參數(shù)有 attention  模塊中計(jì)算 query,key,value 跟合并多個(gè) attention 結(jié)果時(shí)涉及到的bias,MLP 層中的bias,Layernormalization 層的 bias 參數(shù),預(yù)訓(xùn)練模型中的bias參數(shù)如下圖所示。

圖片圖片

PLM 模塊代表了一個(gè)特定的 PLM 子層, 例如注意力或 FFN,圖中橙色塊表示可訓(xùn)練的提示向量, 藍(lán)色 塊表示凍結(jié)的預(yù)訓(xùn)練模型參數(shù)

在 Bert-Base/Bert-Large 這種模型里, bias 參數(shù)僅占模型全部參數(shù)量的 0.08%~0.09%。但是通過在 Bert-Large  模型上基于 GLUE 數(shù)據(jù)集進(jìn)行了 BitFit、Adapter 和 Diff-Pruning 的效果對(duì)比發(fā)現(xiàn), BitFit 在參數(shù)量遠(yuǎn)小于Adapter、 Diff-Pruning 的情況下,效果與 Adapter 、Diff-Pruning 想當(dāng),甚至在某些任務(wù)上略優(yōu)于 Adapter 、Diff-Pruning。

通過實(shí)驗(yàn)結(jié)果還可以看出, BitFit 微調(diào)結(jié)果相對(duì)全量參數(shù)微調(diào)而言, 只更新極少量參數(shù)的情況下, 在多個(gè)數(shù) 據(jù)集上都達(dá)到了不錯(cuò)的效果, 雖不及全量參數(shù)微調(diào), 但是遠(yuǎn)超固定全部模型參數(shù)的 Frozen 方式。同時(shí), 通過對(duì) 比 BitFit 訓(xùn)練前后的參數(shù), 發(fā)現(xiàn)很多 bias 參數(shù)并沒有太多變化(例如:跟計(jì)算 key 所涉及到的 bias 參數(shù))。發(fā)現(xiàn) 計(jì)算 query 和將特征維度從 N 放大到 4N 的 FFN 層(intermediate) 的 bias 參數(shù)變化最為明顯, 只更新這兩類 bias 參數(shù)也能達(dá)到不錯(cuò)的效果,反之,固定其中任何一者,模型的效果都有較大損失。

Prefix Tuning

在 Prefix Tuning 之前的工作主要是人工設(shè)計(jì)離散的模版或者自動(dòng)化搜索離散的模版。對(duì)于人工設(shè)計(jì)的模版, 模版的變化對(duì)模型最終的性能特別敏感, 加一個(gè)詞、少一個(gè)詞或者變動(dòng)位置都會(huì)造成比較大的變化。而對(duì)于自動(dòng) 化搜索模版, 成本也比較高;同時(shí), 以前這種離散化的 token 搜索出來的結(jié)果可能并不是最優(yōu)的。除此之外, 傳 統(tǒng)的微調(diào)范式利用預(yù)訓(xùn)練模型去對(duì)不同的下游任務(wù)進(jìn)行微調(diào), 對(duì)每個(gè)任務(wù)都要保存一份微調(diào)后的模型權(quán)重, 一 方面微調(diào)整個(gè)模型耗時(shí)長(zhǎng);另一方面也會(huì)占很多存儲(chǔ)空間。基于上述兩點(diǎn), Prefix Tuning 提出固定預(yù)訓(xùn)練 LM,為LM 添加可訓(xùn)練, 任務(wù)特定的前綴, 這樣就可以為不同任務(wù)保存不同的前綴, 微調(diào)成本也小; 同時(shí), 這種 Prefix  實(shí)際就是連續(xù)可微的 Virtual Token  (Soft Prompt/Continuous Prompt),相比離散的 Token ,更好優(yōu)化,效果更好。

那么 prefix 的含義是什么呢?prefix 的作用是引導(dǎo)模型提取 x 相關(guān)的信息, 進(jìn)而更好地生成 y。例如, 我們 要做一個(gè) summarization 的任務(wù), 那么經(jīng)過微調(diào)后, prefix 就能領(lǐng)悟到當(dāng)前要做的是個(gè)“總結(jié)形式”的任務(wù), 然后 引導(dǎo)模型去 x 中提煉關(guān)鍵信息;如果我們要做一個(gè)情感分類的任務(wù), prefix 就能引導(dǎo)模型去提煉出 x 中和情感相 關(guān)的語義信息,以此類推。這樣的解釋可能不那么嚴(yán)謹(jǐn),但大家可以大致體會(huì)一下 prefix 的作用。

Prefix Tuning 是在輸入 token 之前構(gòu)造一段任務(wù)相關(guān)的 virtual tokens 作為 Prefix,然后訓(xùn)練的時(shí)候只更新 Prefix 部分的參數(shù),而 PLM 中的其他部分參數(shù)固定。針對(duì)不同的模型結(jié)構(gòu),需要構(gòu)造不同的 Prefix:

  • 針對(duì)自回歸架構(gòu)模型:在句子前面添加前綴, 得到 z = [PREFIX; x; y],合適的上文能夠在固定 LM 的情況 下去引導(dǎo)生成下文(比如:GPT3 的上下文學(xué)習(xí))。
  • 針對(duì)編碼器-解碼器架構(gòu)模型:Encoder 和 Decoder 都增加了前綴,得到 z = [PREFIX; x; PREFIX0; y]。Encoder 端增加前綴是為了引導(dǎo)輸入部分的編碼, Decoder 端增加前綴是為了引導(dǎo)后續(xù) token 的生成。

圖片圖片

上部分的微調(diào)更新所有 Transformer 參數(shù)(紅色框),并且需要為每個(gè)任務(wù)存儲(chǔ)完整的模型副本。下部分 的 Prefix Tuning 凍結(jié)了 Transformer 參數(shù)并且只優(yōu)化前綴(紅色框)

該方法其實(shí)和構(gòu)造 Prompt 類似, 只是 Prompt 是人為構(gòu)造的“顯式”的提示, 并且無法更新參數(shù), 而 Prefix 則是可以學(xué)習(xí)的“隱式”的提示。同時(shí),為了防止直接更新 Prefix 的參數(shù)導(dǎo)致訓(xùn)練不穩(wěn)定和性能下降的情況,在 Prefix 層前面加了 MLP 結(jié)構(gòu), 訓(xùn)練完成后, 只保留 Prefix 的參數(shù)。除此之外, 通過消融實(shí)驗(yàn)證實(shí), 只調(diào)整 embedding 層的表現(xiàn)力不夠,將導(dǎo)致性能顯著下降,因此,在每層都加了 prompt 的參數(shù),改動(dòng)較大。

Prefix Tuning 雖然看起來方便,但也存在以下兩個(gè)顯著劣勢(shì):

Prompt Tuning

大模型全量微調(diào)對(duì)每個(gè)任務(wù)訓(xùn)練一個(gè)模型, 開銷和部署成本都比較高。同時(shí), 離散的 prompts  (指人工設(shè)計(jì) prompts 提示語加入到模型) 方法, 成本比較高, 并且效果不太好。Prompt Tuning 通過反向傳播更新參數(shù)來學(xué)習(xí) prompts,而不是人工設(shè)計(jì) prompts;同時(shí)凍結(jié)模型原始權(quán)重, 只訓(xùn)練 prompts 參數(shù), 訓(xùn)練完以后, 用同一個(gè)模型 可以做多任務(wù)推理。

圖片圖片

模型調(diào)整需要為每個(gè)任務(wù)制作整個(gè)預(yù)訓(xùn)練模型的特定任務(wù)副本下游任務(wù)和推理必須在分開批次。Prompt Tuning 只需要為每個(gè)任務(wù)存儲(chǔ)一個(gè)小的特定于任務(wù)的提示,并且使用原始預(yù)訓(xùn)練模型啟用混合任務(wù)推理。

Prompt Tuning 可以看作是 Prefix Tuning 的簡(jiǎn)化版本,它給每個(gè)任務(wù)定義了自己的 Prompt,然后拼接到數(shù)據(jù) 上作為輸入,但只在輸入層加入 prompt tokens,并且不需要加入 MLP 進(jìn)行調(diào)整來解決難訓(xùn)練的問題。

通過實(shí)驗(yàn)發(fā)現(xiàn),隨著預(yù)訓(xùn)練模型參數(shù)量的增加,Prompt Tuning 的方法會(huì)逼近全參數(shù)微調(diào)的結(jié)果。同時(shí), Prompt Tuning 還提出了 Prompt Ensembling,也就是在一個(gè)批次(Batch) 里同時(shí)訓(xùn)練同一個(gè)任務(wù)的不同 prompt  (即采用 多種不同方式詢問同一個(gè)問題) ,這樣相當(dāng)于訓(xùn)練了不同模型, 比模型集成的成本小多了。除此之外, Prompt Tuning 論文中還探討了 Prompt token 的初始化方法和長(zhǎng)度對(duì)于模型性能的影響。通過消融實(shí)驗(yàn)結(jié)果發(fā)現(xiàn), 與隨機(jī) 初始化和使用樣本詞匯表初始化相比, Prompt Tuning 采用類標(biāo)簽初始化模型的效果更好。不過隨著模型參數(shù)規(guī) 模的提升, 這種 gap 最終會(huì)消失。Prompt token 的長(zhǎng)度在 20 左右時(shí)的表現(xiàn)已經(jīng)不錯(cuò)(超過 20 之后, 提升Prompt token 長(zhǎng)度, 對(duì)模型的性能提升不明顯了),同樣的, 這個(gè) gap 也會(huì)隨著模型參數(shù)規(guī)模的提升而減小(即對(duì)于超大 規(guī)模模型而言,即使 Prompt token 長(zhǎng)度很短,對(duì)性能也不會(huì)有太大的影響)。

責(zé)任編輯:武曉燕 來源: AI大模型咨訊
相關(guān)推薦

2025-05-08 05:00:00

2024-01-18 15:38:17

語言模型大型語言模型

2023-06-09 08:00:00

QLoRa語言模型微調(diào)

2025-04-10 07:59:51

2024-07-22 08:17:00

模型性能

2024-03-18 13:36:36

大型語言模型個(gè)人可識(shí)別信息

2023-03-06 13:59:38

模型參數(shù)

2024-04-15 12:50:00

大型語言模型ReFT

2024-05-07 08:00:00

自然語言處理機(jī)器學(xué)習(xí)

2024-11-21 08:22:45

2023-06-07 08:22:59

LLM微調(diào)技術(shù)

2025-06-26 09:06:59

2025-02-24 14:15:00

模型訓(xùn)練AI

2025-01-14 10:56:14

2023-06-02 15:47:49

2024-12-10 09:07:17

2023-12-18 13:37:44

天翼云天池大語言模型

2024-09-09 07:46:16

2023-04-06 16:29:18

模型AI
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)