5、 有監(jiān)督微調(diào)
5.1、提示學(xué)習(xí)&語境學(xué)習(xí)
提示學(xué)習(xí)
完成預(yù)測(cè)的三個(gè)階段:提示添加、答案搜索、答案映射
提示添加
“[X] 我感到 [Z]”
x = “我不小心錯(cuò)過了公共汽車?!?/p>
x’ = “我不小心錯(cuò)過了公共汽車。我感到[Z]”
答案搜索
Z = {“太好了”,“好”,“一般”,“不好”,“糟糕”}
將給定提示 x ′ 而模型輸出為 z 的過程記錄為函數(shù) f f i l l ( x ′ , z ) f_{fill} (x ′ , z) ffill?(x′,z),對(duì)于每個(gè)答案空間 Z Z Z中的候選答案 z z z,分別計(jì)算模型輸出它的概率, 從而找到模型對(duì)[Z] 插槽預(yù)測(cè)得分最高的輸出:
z ~ = s e a r c h z ∈ Z P ( f f i l l ( x ′ , z ) ; θ ) \tilde{z} = search_{z∈Z}P(f_{fill}(x',z);θ) z~=searchz∈Z?P(ffill?(x′,z);θ)
答案映射
將模型的輸出與最終的標(biāo)簽做映射。映射規(guī)則是人為制定的,比如,將“太好了”、“好”映射為“正面”標(biāo)簽,將“不好”,“糟糕”映射為“負(fù)面”標(biāo)簽,將“一般”映射為“中立”標(biāo)簽。
提示學(xué)習(xí)方法易于理解且效果顯著,提示工程、答案工程、多提示學(xué)習(xí)方法、基于提示的訓(xùn)練策略等已經(jīng)成為從提示學(xué)習(xí)衍生出的新的研究方向。
語境學(xué)習(xí)
關(guān)鍵思想是從類比中學(xué)習(xí),整個(gè)過程并不需要對(duì)模型進(jìn)行參數(shù)更新,僅執(zhí)行向前的推理。
向模型輸入特定任務(wù)的一些具體例子以及測(cè)試樣例,讓模型根據(jù)示例續(xù)寫出測(cè)試樣例的答案。
如下情感分類,續(xù)寫情感極性:
5.2、高效微調(diào)
高效微調(diào):在縮減訓(xùn)練參數(shù)量和GPU顯存占用,同時(shí)使訓(xùn)練后的模型具有與全量微調(diào)相當(dāng)?shù)男阅堋?/p>
全量微調(diào):微調(diào)全部參數(shù)需要相當(dāng)高的算力。
LoRA( Low-Rank Adaptation of Large Language Models)
計(jì)算流程
h = W 0 x + Δ W x = W 0 x + B A x h = W_0x + \Delta Wx = W_0x + BAx h=W0?x+ΔWx=W0?x+BAx
矩陣 A 通過高斯函數(shù)初始化,矩陣 B 為零初始化,使得訓(xùn)練開始之前旁路對(duì)原模型不造成影響,即參數(shù)改變量為 0。
將原權(quán)重與訓(xùn)練后權(quán)重合并后, 推理時(shí)不存在額外的開銷。
低秩矩陣通常有以下特點(diǎn):
- 線性相關(guān)性較高:矩陣中的行或列之間存在較強(qiáng)的線性相關(guān)性,因此可以用較少的線性獨(dú)立分量來近似表示。
- 信息冗余較多:由于線性相關(guān)性,低秩矩陣中包含了一些冗余信息,可以通過較低秩的近似來減少存儲(chǔ)和計(jì)算成本。
- 較小的維度:低秩矩陣通常具有較低的維度,因?yàn)樗鼈兛梢杂幂^少的基向量(或特征向量)來表示。
其它高效微調(diào)方式
- 微調(diào)適配器(
Adapter
)
分別對(duì) Transformer 層中的自注意力模塊與多層感知(MLP)模塊,在其與其之后的殘差連接之間添加適配器層(Adapter layer)作為可訓(xùn)練參數(shù)。
該方法及其變體會(huì)增加網(wǎng)絡(luò)的深度,從而在模型推理時(shí)帶來額外的時(shí)間開銷。
- 前綴微調(diào)(
Prefix Tuning
)
前綴微調(diào)是指在輸入序列前綴添加連續(xù)可微的軟提示作為可訓(xùn)練參數(shù)。由于模型可接受的最大輸入長(zhǎng)度有限,隨著軟提示的參數(shù)量增多,實(shí)際輸入序列的最大長(zhǎng)度也會(huì)相應(yīng)減小,影響模型性能。
軟提示:連續(xù)提示的方法。
5.3、模型上下文窗口擴(kuò)展
上下文窗口:在自然語言處理中,LLM(Large Language Model,大型語言模型)的上下文窗口指的是模型在處理文本時(shí)所考慮的文本片段或單詞的范圍。
- 具有外推能力的位置編碼
ALiBi
相對(duì)位置編碼
注意力加上線性偏置
S o f t m a x ( q i K T + m ? [ ? ( i ? 1 ) , . . . , ? 2 , ? 1 , 0 ] ) Softmax(q_iK^T+m·[-(i-1),...,-2,-1,0]) Softmax(qi?KT+m?[?(i?1),...,?2,?1,0])
- m為坡度,取值為: { 1 a , 1 a 2 , . . . , 1 256 } , 其中 a n u m _ h e a d s = 256 \{\frac{1}{a} , \frac{1}{a^2},...,\frac{1}{256} \} ,其中 a^{num\_heads} =256 {a1?,a21?,...,2561?},其中anum_heads=256
- [ ? ( i ? 1 ) , . . . , ? 2 , ? 1 , 0 ] [-(i-1),...,-2,-1,0] [?(i?1),...,?2,?1,0]表示相對(duì)位置,取值:-(k索引[1,i] - q索引[i])
- 插值法
RoPE位置插值:
f ’ ( x , m ) = f ( x , m L ′ ) L f’(x,m) = f(x,\frac{m}{L'})L f’(x,m)=f(x,L′m?)L
將更大的位置索引范圍 [0,L′) 縮減至原始的索引范圍 [0,L)
5.4、指令數(shù)據(jù)構(gòu)建
指令數(shù)據(jù)的質(zhì)量和多樣性是衡量指令數(shù)據(jù)的重要維度,影響有監(jiān)督微調(diào)過程的關(guān)鍵因素。
指令數(shù)據(jù)由指令、輸入、輸出組成。
指令數(shù)據(jù)示例:
- 手動(dòng)構(gòu)建
手動(dòng)編寫提示與相應(yīng)的回答;
大量人力投入。
- 自動(dòng)生成指令
Self-instruct
Self-instruct
其數(shù)據(jù)生成過程是一個(gè)迭代引導(dǎo)算法。
- 生成任務(wù)指令
手動(dòng)構(gòu)建175 seed tasks;
每次采樣8個(gè)task 指令(人工6 + 迭代生成2);
直到停止生成 || 達(dá)到模型長(zhǎng)度限制。
- 確定指令是否代表分類任務(wù)
處理不同。
不同原因:避免分類任務(wù)時(shí),生成過多某些特定任務(wù)Input,而忽視其他類別。
- 生成任務(wù)輸入和輸出
輸出:完整指令數(shù)據(jù)
No:Input-first, Input i n s t r u c t i o n > \frac{instruction}{}> instruction?>Output
Yes:Output-first, Output i n s t r u c t i o n > \frac{instruction}{}> instruction?>Input
- 過濾低質(zhì)量數(shù)據(jù)
多樣性:ROUGE-L相似度<0.7;
質(zhì)量:?jiǎn)l(fā)式規(guī)則:除掉含某些關(guān)鍵字(如“圖片”)、重復(fù)、過長(zhǎng)或過短數(shù)據(jù)。
LLaMA 模型上進(jìn)行有監(jiān)督微調(diào)得到 Alpaca 模型, 所使用的指令數(shù)據(jù)集的示例
5.5、開源指令數(shù)據(jù)集
開源數(shù)據(jù)指令集文章來源:http://www.zghlxwxcb.cn/news/detail-731196.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-731196.html
到了這里,關(guān)于LLM-TAP隨筆——有監(jiān)督微調(diào)【深度學(xué)習(xí)】【PyTorch】【LLM】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!