国产人妻精品区一区二区,国产农村妇女毛片精品久久,JAPANESE日本丰满少妇,日本公妇理伦a片,射精专区一区二区朝鲜

調教LLaMA類模型沒那么難,LoRA將模型微調縮減到幾小時
作者 | 機器之心(xin)2023-08-16

作者:Sebastian Raschka

機器之心編譯

編輯:趙陽

LoRA 微調方(fang)法,隨著(zhu)大模(mo)型的出現而走紅(hong)。

最近幾個月,ChatGPT 等一系列大語言模型(LLM)相繼出現,隨之而來的是算力緊缺日益嚴重。雖然人人都想打造專屬于自己的大模型,但是能負擔得起上億參數模型訓練的機構卻寥寥無幾。在快速發展的人工智能領域(yu),以(yi)高效(xiao)(xiao)和有(you)(you)效(xiao)(xiao)的(de)(de)(de)(de)方(fang)(fang)(fang)式使用大(da)型(xing)(xing)(xing)語(yu)言(yan)(yan)模(mo)型(xing)(xing)(xing)正變(bian)得越來(lai)越重要(yao)。LoRA(Low-Rank Adaption,低(di)秩自適(shi)應(ying)) 作(zuo)為微(wei)(wei)調 LLMs 一種(zhong)比較出(chu)圈的(de)(de)(de)(de)技(ji)(ji)術,其額外引入了(le)可訓(xun)(xun)練的(de)(de)(de)(de)低(di)秩分解矩陣,同時固(gu)定(ding)住預(yu)訓(xun)(xun)練權重,從而大(da)大(da)減(jian)少了(le)下游(you)任(ren)務的(de)(de)(de)(de)可訓(xun)(xun)練參數(shu)數(shu)量(liang)。本(ben)文(wen)中,來(lai)自 Lightning AI 首席人工(gong)智(zhi)能(neng)教育家 Sebastian Raschka 將(jiang)(jiang)帶你了(le)解如(ru)(ru)何以(yi)高效(xiao)(xiao)的(de)(de)(de)(de)方(fang)(fang)(fang)式用 LoRA 來(lai)微(wei)(wei)調 LLM。下面是(shi)(shi)全(quan)文(wen)內容。為什么要(yao)進行微(wei)(wei)調?預(yu)訓(xun)(xun)練大(da)語(yu)言(yan)(yan)模(mo)型(xing)(xing)(xing)通(tong)常被稱為基(ji)礎模(mo)型(xing)(xing)(xing),這樣稱呼的(de)(de)(de)(de)原因是(shi)(shi):大(da)語(yu)言(yan)(yan)模(mo)型(xing)(xing)(xing)在各(ge)種(zhong)任(ren)務中表現良好,可以(yi)將(jiang)(jiang)它們用作(zuo)對目標(biao)任(ren)務進行微(wei)(wei)調的(de)(de)(de)(de)基(ji)礎。正如(ru)(ru) Sebastian Raschka 在上一篇博(bo)文(wen)《Understanding Parameter-Efficient Finetuning of Large Language Models: From Prefix Tuning to LLaMA-Adapters》中所討(tao)論的(de)(de)(de)(de),微(wei)(wei)調能(neng)夠使模(mo)型(xing)(xing)(xing)適(shi)應(ying)目標(biao)域(yu)和目標(biao)任(ren)務。盡(jin)管如(ru)(ru)此(ci),大(da)模(mo)型(xing)(xing)(xing)在計算上的(de)(de)(de)(de)成(cheng)(cheng)本(ben)可能(neng)非常昂貴(gui) —— 模(mo)型(xing)(xing)(xing)越大(da),更新(xin)其網絡(luo)層的(de)(de)(de)(de)成(cheng)(cheng)本(ben)就越高。如(ru)(ru)果不想將(jiang)(jiang)網絡(luo)中所有(you)(you)的(de)(de)(de)(de)層都進行更新(xin),可以(yi)使用諸如(ru)(ru)前(qian)綴微(wei)(wei)調和適(shi)配(pei)器之類(lei)的(de)(de)(de)(de)高效(xiao)(xiao)調參方(fang)(fang)(fang)法(fa)。如(ru)(ru)今,有(you)(you)一種(zhong)更流(liu)行的(de)(de)(de)(de)微(wei)(wei)調技(ji)(ji)術:Hu 等(deng)人提出(chu)的(de)(de)(de)(de)低(di)秩自適(shi)應(ying)(LoRA)。什么是(shi)(shi) LoRA?它是(shi)(shi)如(ru)(ru)何工(gong)作(zuo)的(de)(de)(de)(de)?它與其他(ta)流(liu)行的(de)(de)(de)(de)微(wei)(wei)調方(fang)(fang)(fang)法(fa)相比如(ru)(ru)何?本(ben)文(wen)將(jiang)(jiang)回(hui)答所有(you)(you)這些問題。

圖片

提高權(quan)重(zhong)更新效率論文(wen)《 LoRA: Low-Rank Adaptation of Large Language Models》提出將(jiang)權(quan)重(zhong)變(bian)化 ΔW 分(fen)解(jie)為(wei)(wei)秩較低的(de)表示。(LoRA 不會直接分(fen)解(jie)矩陣(zhen),而(er)是通過反向傳播來學(xue)習分(fen)解(jie)的(de)矩陣(zhen))。在(zai)仔(zi)細研究 LoRA 之前,我們先簡要解(jie)釋一(yi)下規則微調期間的(de)訓練程(cheng)序(xu)。首(shou)先是權(quan)重(zhong)變(bian)化 ΔW。假設 W 表示給定神經網絡(luo)層中的(de)權(quan)重(zhong)矩陣(zhen)。然后,使(shi)用常規反向傳播,我們可以獲得權(quan)重(zhong)更新 ΔW,它通常被計(ji)算為(wei)(wei)損失乘以學(xue)習率的(de)負梯:

圖片

然后,得到 ΔW 后,原始(shi)權重(zhong)按(an)如下公式(shi)更新(xin):W'=W+ΔW。如下圖所示(為了簡單起見,省略了偏(pian)置矢量)。或者,我們可以保持權重(zhong)更新(xin)矩陣分離,并(bing)按(an)如下公式(shi)計(ji)算輸出:h=Wx+ΔWx:

圖片


其中 x 表示輸(shu)入,如下所示:


圖片


當在神經網絡中(zhong)訓練(lian)全(quan)連接(jie)(即(ji) dense)層時,如上(shang)所示,權(quan)重(zhong)矩陣通常具(ju)(ju)有全(quan)秩,這意味著矩陣不具(ju)(ju)有任(ren)何線性相關(guan)(即(ji)冗余(yu))的(de)行或列(lie)(lie)。相比之下,與全(quan)秩相比,低秩意味著矩陣具(ju)(ju)有冗余(yu)的(de)行或列(lie)(lie)。

因此,盡管預(yu)(yu)訓(xun)練模(mo)型的(de)(de)權重是(shi)(shi)滿(man)秩矩(ju)(ju)陣(zhen),但根據(ju) Aghajanyan 等人(ren)的(de)(de)說(shuo)法,LoRA 的(de)(de)作者(zhe)指出預(yu)(yu)訓(xun)練的(de)(de)大(da)型語言模(mo)型在(zai)適應(ying)新(xin)任務時具有較低(di)的(de)(de)內(nei)在(zai)維(wei)(wei)(wei)度(du)。低(di)內(nei)在(zai)維(wei)(wei)(wei)度(du)意味著數(shu)據(ju)可以由低(di)維(wei)(wei)(wei)度(du)空間(jian)有效地(di)表示(shi)或近似,同時保留(liu)其(qi)大(da)部分(fen)(fen)基(ji)本信(xin)息或結(jie)構(gou)。換句話說(shuo),這意味著可以將適應(ying)任務的(de)(de)新(xin)權重矩(ju)(ju)陣(zhen)分(fen)(fen)解(jie)(jie)為低(di)維(wei)(wei)(wei)(較小)矩(ju)(ju)陣(zhen),而(er)不會丟失太(tai)多重要(yao)信(xin)息。例如(ru),假設 ΔW 是(shi)(shi) A×B 維(wei)(wei)(wei)權重矩(ju)(ju)陣(zhen)的(de)(de)權重更新(xin)矩(ju)(ju)陣(zhen),這個權重更新(xin)矩(ju)(ju)陣(zhen)可以分(fen)(fen)解(jie)(jie)為兩個較小的(de)(de)矩(ju)(ju)陣(zhen):ΔW=W_A W_B,其(qi)中 W_A 是(shi)(shi) A×r 維(wei)(wei)(wei)矩(ju)(ju)陣(zhen),W_B 是(shi)(shi) r×B 維(wei)(wei)(wei)矩(ju)(ju)陣(zhen)。在(zai)這里,我們保持原始權重 W 凍結(jie),并且只(zhi)訓(xun)練新(xin)的(de)(de)矩(ju)(ju)陣(zhen) W_A 和(he) W_B。如(ru)下(xia)圖所示(shi)。


圖片


選(xuan)擇秩(zhi)上(shang)圖中(zhong)(zhong)的(de)(de) r 是(shi)超參(can)數(shu),指定(ding)用(yong)(yong)于(yu)自(zi)適應的(de)(de)低(di)秩(zhi)矩陣(zhen)的(de)(de)秩(zhi)。r 越(yue)小(xiao),低(di)秩(zhi)矩陣(zhen)越(yue)簡單,在(zai)(zai)自(zi)適應過程中(zhong)(zhong)需(xu)(xu)要(yao)(yao)(yao)學習的(de)(de)參(can)數(shu)越(yue)少,訓練(lian)就更快,計算需(xu)(xu)求會相(xiang)(xiang)應的(de)(de)減少。然而,r 變小(xiao)的(de)(de)弊(bi)端是(shi),低(di)秩(zhi)矩陣(zhen)捕獲任(ren)務(wu)(wu)特定(ding)信息的(de)(de)能力降低(di)。這(zhe)可(ke)能導致(zhi)較低(di)的(de)(de)自(zi)適應質量,并且(qie)與較高的(de)(de) r 相(xiang)(xiang)比,模型(xing)在(zai)(zai)新任(ren)務(wu)(wu)上(shang)可(ke)能表現(xian)不佳(jia)。總之,在(zai)(zai) LoRA 中(zhong)(zhong)確(que)定(ding) r 的(de)(de)取值,需(xu)(xu)要(yao)(yao)(yao)在(zai)(zai)模型(xing)復(fu)雜性、自(zi)適應能力和擬合(he)不足(zu)或擬合(he)過度的(de)(de)風險之間進行權衡。因(yin)此,重要(yao)(yao)(yao)的(de)(de)是(shi)用(yong)(yong)不同的(de)(de) r 值進行實驗,以找到(dao)正(zheng)確(que)的(de)(de)平(ping)衡,從(cong)而在(zai)(zai)新任(ren)務(wu)(wu)中(zhong)(zhong)滿足(zu)所需(xu)(xu)的(de)(de)性能。 LoRA 實戰LoRA 的(de)(de)使(shi)用(yong)(yong)很(hen)直接,可(ke)以將其視(shi)為 LLM 中(zhong)(zhong)全連接層的(de)(de)前向傳遞修正(zheng)版。偽代(dai)碼(ma)如下所示:


圖片


在(zai)上(shang)(shang)面的偽代碼中(zhong),alpha 是一個縮(suo)放因(yin)子,用于調整(zheng)組(zu)合(he)結果的大小(原始模型輸出加(jia)上(shang)(shang)低(di)秩自(zi)適應)。這平(ping)衡(heng)了預訓練(lian)模型的知(zhi)識和新的任務(wu)特定適應 —— 默認情況下,alpha 通常設(she)置為(wei)(wei) 1。還要(yao)注意,當 W_A 被初(chu)始化為(wei)(wei)小的隨機權重(zhong)時(shi),W_B 被初(chu)始化為(wei)(wei) 0,從而使得

圖片

,這(zhe)意味著需要從原(yuan)始(shi)權(quan)(quan)重(zhong)開(kai)始(shi)訓(xun)(xun)練。參(can)數(shu)效(xiao)率接(jie)下來說(shuo)一(yi)(yi)(yi)說(shuo)最棘手的(de)(de)(de)(de)(de)問題:如(ru)果(guo)引入新的(de)(de)(de)(de)(de)權(quan)(quan)重(zhong)矩陣(zhen),參(can)數(shu)如(ru)何(he)才能有(you)(you)效(xiao)?新的(de)(de)(de)(de)(de)矩陣(zhen) W_A 和(he) W_B 可(ke)(ke)以(yi)非(fei)常小。例(li)如(ru),假設(she) A=100,B=500,那么 ΔW 的(de)(de)(de)(de)(de)大(da)小為(wei) 100×500=50000。如(ru)果(guo)將其(qi)分解為(wei)兩個較小的(de)(de)(de)(de)(de)矩陣(zhen),一(yi)(yi)(yi)個 100×5 維矩陣(zhen) W_A 和(he)一(yi)(yi)(yi)個 5×500 維矩陣(zhen) W_B。這(zhe)兩個矩陣(zhen)總共(gong)只有(you)(you) 5×100+5×500=3000 個參(can)數(shu)。 減少推理開(kai)銷在(zai)實(shi)(shi)踐中(zhong)(zhong),如(ru)果(guo)在(zai)如(ru)上所(suo)(suo)示(shi)的(de)(de)(de)(de)(de)訓(xun)(xun)練后保(bao)持原(yuan)始(shi)權(quan)(quan)重(zhong) W 以(yi)及(ji)矩陣(zhen) W_A 和(he) W_B 處于(yu)分離(li)狀態,推理過程中(zhong)(zhong)就會額(e)外(wai)產生效(xiao)率損(sun)失,因為(wei)引入了額(e)外(wai)的(de)(de)(de)(de)(de)計(ji)算步驟。相反可(ke)(ke)以(yi)在(zai)訓(xun)(xun)練后通(tong)過 W’=W+W_A?W_B 更新權(quan)(quan)重(zhong),這(zhe)類似于(yu)前面提到的(de)(de)(de)(de)(de) W’=W+ΔW。然(ran)(ran)而,保(bao)持權(quan)(quan)重(zhong)矩陣(zhen) W_A 和(he) W_B 分離(li)也可(ke)(ke)能有(you)(you)些優(you)勢。例(li)如(ru),假設(she)希(xi)望保(bao)留預訓(xun)(xun)練的(de)(de)(de)(de)(de)模(mo)(mo)(mo)型(xing)(xing)作為(wei)各種客(ke)戶(hu)的(de)(de)(de)(de)(de)基(ji)礎模(mo)(mo)(mo)型(xing)(xing),并且希(xi)望從基(ji)礎模(mo)(mo)(mo)型(xing)(xing)開(kai)始(shi)為(wei)每個客(ke)戶(hu)創建(jian)一(yi)(yi)(yi)個微調的(de)(de)(de)(de)(de) LLM。在(zai)這(zhe)種情況(kuang)下,就不(bu)需要為(wei)每個客(ke)戶(hu)存(cun)儲(chu)完整的(de)(de)(de)(de)(de)權(quan)(quan)重(zhong)矩陣(zhen) W’。不(bu)然(ran)(ran)存(cun)儲(chu)模(mo)(mo)(mo)型(xing)(xing)的(de)(de)(de)(de)(de)所(suo)(suo)有(you)(you)權(quan)(quan)重(zhong) W’=W+W_A W_B 對于(yu) LLM 來說(shuo)可(ke)(ke)能非(fei)常大(da),因為(wei) LLM 通(tong)常具(ju)有(you)(you)數(shu)十億(yi)到數(shu)萬(wan)億(yi)的(de)(de)(de)(de)(de)權(quan)(quan)重(zhong)參(can)數(shu)。因此,可(ke)(ke)以(yi)保(bao)留原(yuan)始(shi)模(mo)(mo)(mo)型(xing)(xing) W,只需要存(cun)儲(chu)新的(de)(de)(de)(de)(de)輕(qing)量級(ji)矩陣(zhen) W_A 和(he) W_B。用具(ju)體(ti)的(de)(de)(de)(de)(de)數(shu)字來說(shuo)明的(de)(de)(de)(de)(de)話,一(yi)(yi)(yi)個完整的(de)(de)(de)(de)(de) 7B LLaMA checkpoint 需要 23 GB 的(de)(de)(de)(de)(de)存(cun)儲(chu)容(rong)量,而選擇(ze) r=8 的(de)(de)(de)(de)(de)秩,則 LoRA 權(quan)(quan)重(zhong)可(ke)(ke)以(yi)小到 8 MB。 實(shi)(shi)踐效(xiao)果(guo)LoRA 在(zai)實(shi)(shi)踐中(zhong)(zhong)有(you)(you)多好(hao),與完全微調和(he)其(qi)他(ta)參(can)數(shu)有(you)(you)效(xiao)方法相比如(ru)何(he)?根據 LoRA 的(de)(de)(de)(de)(de)論文,在(zai)幾個特定任務的(de)(de)(de)(de)(de)基(ji)準測試中(zhong)(zhong),使(shi)用 LoRA 的(de)(de)(de)(de)(de)模(mo)(mo)(mo)型(xing)(xing)的(de)(de)(de)(de)(de)建(jian)模(mo)(mo)(mo)性能略好(hao)于(yu)使(shi)用 Adapters、prompt tuning 或(huo) prefix tuning 的(de)(de)(de)(de)(de)模(mo)(mo)(mo)型(xing)(xing)。通(tong)常,LoRA 的(de)(de)(de)(de)(de)性能甚至(zhi)比微調所(suo)(suo)有(you)(you)層更好(hao),如(ru)下面 LoRA 論文的(de)(de)(de)(de)(de)注釋表(biao)所(suo)(suo)示(shi)。

圖片

值得注意的(de)是(shi),LoRA 與(yu)其他微(wei)調(diao)方法正交,這意味(wei)著它也(ye)可以與(yu) Adapters 或 prefix tuning 相結(jie)合(he)。LoRA & LLaMA現在,讓我們使(shi)用(yong) LoRA 來微(wei)調(diao) Meta 提(ti)出的(de) LLaMA 模型。除了用(yong)于訓練和運行 LLaMA 本身的(de)代(dai)碼(使(shi)用(yong)原始的(de) Meta-LLaMA 權重)外,還包含用(yong)于使(shi)用(yong) LLaMA Adapter 和 LoRA 微(wei)調(diao) LLaMA 的(de)代(dai)碼。作者建(jian)議使(shi)用(yong)以下操(cao)作方法文件:


下載預訓練的權(quan)重://github.com/Lightning-AI/lit-llama/blob/main/howto/download_weights.md

使用(yong) LoRA 進行(xing)微調://github.com/Lightning-AI/lit-llama/blob/main/howto/finetune_lora.md

使用(yong)適配器進行微調://github.com/Lightning-AI/lit-llama/blob/main/howto/finetune_adapter.md(可選(xuan),用(yong)于比較研究)

下(xia)一(yi)節將(jiang)比較 7B LLaMA 基礎(chu)模型(xing)與使用(yong) LoRA 和(he) LLaMA Adapter 微調(diao)的(de)(de) 7B LLaMA 基礎(chu)模型(xing)。(請注意,需要(yao)具有至少 24 GB RAM 的(de)(de) GPU)。計算(suan)性(xing)能基準本(ben)節中(zhong),作(zuo)者將(jiang)比較 LLaMA 7B 基礎(chu)模型(xing)與使用(yong) LoRA 和(he) LLaMA Adapter 微調(diao)的(de)(de)基礎(chu)模型(xing)的(de)(de)計算(suan)性(xing)能。微調(diao)數據集是(shi) Alpaca 52k 指令數據集,其(qi)結構如(ru)下(xia):


圖片


數據集是按(an)照 Self-Instruct 論文(wen)中(zhong)描述(shu)的方法生成的,由 49759 個(ge)(ge)訓練樣(yang)本(ben)和 2000 個(ge)(ge)驗證樣(yang)本(ben)組成。Self-Instruct 的流程可(ke)總結為 4 個(ge)(ge)步驟:

種子(zi)任務池,包含一組人工編(bian)寫的(de)指(zhi)令(本例中為(wei) 175 條)和樣本指(zhi)令;

使用預訓練的 LLM(如 GPT-3)來確(que)定(ding)任務類別;

給定新指令,讓預訓練的 LLM 生成響應(ying)結(jie)果;

在將(jiang)響應(ying)(ying)結果添加到任務池之(zhi)前,先收集(ji)、剪枝和篩選響應(ying)(ying)結果。


圖片

Alpaca 52k 數(shu)(shu)(shu)據(ju)(ju)集(ji)是使用上(shang)述 Self-Instruct 程(cheng)序收集(ji)的(de)。但是,也可(ke)以(yi)使用(或將(jiang)其與)替代數(shu)(shu)(shu)據(ju)(ju)集(ji)進行比較。例如,一個(ge)有(you)趣的(de)候選(xuan)數(shu)(shu)(shu)據(ju)(ju)集(ji)是最近(jin)發布的(de)開源 databricks-doolly-15k 數(shu)(shu)(shu)據(ju)(ju)集(ji),該數(shu)(shu)(shu)據(ju)(ju)集(ji)包(bao)含(han) databricks 員工(gong)編寫的(de)約(yue) 15k 條指令 / 響應微調(diao)記錄(lu)。Lit LLaMA 存儲庫包(bao)含(han)一個(ge)數(shu)(shu)(shu)據(ju)(ju)集(ji)制備腳本,可(ke)以(yi)選(xuan)擇使用 Dolly 15k 數(shu)(shu)(shu)據(ju)(ju)集(ji)。給定以(yi)下(xia)超參(can)數(shu)(shu)(shu)設置(塊(kuai)大小、批大小和(he) LoRA 的(de) r),Adapter 和(he) LoRA 都可(ke)以(yi)以(yi) bfloat-16 的(de)混合精度,在具有(you) 24 Gb RAM 的(de)單個(ge) GPU 上(shang)微調(diao) 7B 參(can)數(shu)(shu)(shu)的(de) LLaMA 基本模(mo)型。LoRA

圖片

LaMA Adapter

圖片

如(ru)(ru)果(guo)代(dai)碼將(jiang)來發生(sheng)變化,GitHub 上會同(tong)(tong)(tong)步(bu)更(geng)新代(dai)碼(帶有超(chao)參數(shu)設置)。Adapter 在(zai) A100 上使(shi)用(yong)了大約(yue) 22 Gb 的(de)(de)(de)空間(jian)(jian),并在(zai) 162 分(fen)(fen)鐘(zhong)內(nei)完(wan)成(cheng)了 62400 次(ci)迭代(dai)。同(tong)(tong)(tong)樣的(de)(de)(de)迭代(dai)次(ci)數(shu)下,LoRA 使(shi)用(yong)了 21 Gb 的(de)(de)(de)內(nei)存,在(zai) 192 分(fen)(fen)鐘(zhong)內(nei)完(wan)成(cheng)。總之,同(tong)(tong)(tong)樣基(ji)于 Lit-LLaMA 的(de)(de)(de) Adapter 和 LoRA 使(shi)用(yong)的(de)(de)(de) RAM 數(shu)量(liang)大致相同(tong)(tong)(tong),訓(xun)練(lian)(lian)時(shi)間(jian)(jian)大致相同(tong)(tong)(tong)。(請(qing)注意,這是在(zai)單個(ge)(ge) GPU 上進行(xing)的(de)(de)(de),但如(ru)(ru)果(guo)有多個(ge)(ge) GPU,只需(xu)將(jiang)設備參數(shu)更(geng)改為(wei)(wei) > 1 即可(ke)(ke)(ke)利用(yong)額外的(de)(de)(de)加速(su)!)相比(bi)之下,完(wan)全(quan)微調(LLaMA 7B 由 32 個(ge)(ge) Transformer 塊和 3 個(ge)(ge)全(quan)連接的(de)(de)(de)輸出層組成(cheng))需(xu)要至(zhi)(zhi)少(shao)(shao) 2 個(ge)(ge)具(ju)有至(zhi)(zhi)少(shao)(shao) 30Gb 的(de)(de)(de) GPU 和完(wan)全(quan)分(fen)(fen)片訓(xun)練(lian)(lian)來分(fen)(fen)配權(quan)重(zhong)。或者,可(ke)(ke)(ke)以使(shi)用(yong) 4 個(ge)(ge) GPU,每個(ge)(ge) GPU 的(de)(de)(de)最(zui)大內(nei)存使(shi)用(yong)量(liang)為(wei)(wei) 22 Gb。在(zai) 4 個(ge)(ge) GPU 上進行(xing)訓(xun)練(lian)(lian),訓(xun)練(lian)(lian)耗時(shi) 1956 分(fen)(fen)鐘(zhong)。在(zai)單個(ge)(ge) GPU 上至(zhi)(zhi)少(shao)(shao)需(xu)要 6000 分(fen)(fen)鐘(zhong),這將(jiang)比(bi)參數(shu)高效的(de)(de)(de) LLaMA Adapter 或 LoRA 代(dai)價昂(ang)貴 30-40 倍。接下來,本文將(jiang)介紹應用(yong)不(bu)同(tong)(tong)(tong)微調策略后的(de)(de)(de)模(mo)型輸出。評(ping)估(gu)建模(mo)性能有幾種(zhong)度量(liang)標(biao)準(zhun)可(ke)(ke)(ke)用(yong)于評(ping)估(gu) LLM 生(sheng)成(cheng)的(de)(de)(de)文本。例如(ru)(ru),困(kun)惑度、BLEU 和 ROUGE 分(fen)(fen)數(shu)是自(zi)然語言處理中用(yong)來評(ping)估(gu) LLM 在(zai)各種(zhong)任務中的(de)(de)(de)表現的(de)(de)(de)一些(xie)最(zui)常(chang)見(jian)的(de)(de)(de)評(ping)估(gu)指(zhi)標(biao)。然而,所有這些(xie)指(zhi)標(biao)都有很(hen)大的(de)(de)(de)缺(que)點(dian),人工(gong)評(ping)估(gu)仍然是黃(huang)金標(biao)準(zhun) —— 人工(gong)評(ping)估(gu)的(de)(de)(de)缺(que)點(dian)是創(chuang)建成(cheng)本高,難以自(zi)動化。簡單起見(jian),本文只關注定性比(bi)較(jiao),看看各種(zhong)模(mo)型產生(sheng)的(de)(de)(de)一些(xie)輸出。為(wei)(wei)了對模(mo)型進行(xing)定性比(bi)較(jiao),本文將(jiang)使(shi)用(yong) “請(qing)解釋權(quan)重(zhong)衰減是如(ru)(ru)何工(gong)作(zuo)的(de)(de)(de)” 作(zuo)為(wei)(wei) prompt。基(ji)準(zhun)模(mo)型

圖片

請解(jie)釋一(yi)下權(quan)(quan)重衰(shuai)(shuai)減是如(ru)(ru)何工作的(de)…… 以及(ji)為(wei)什么它(ta)有(you)時看起(qi)來(lai)有(you)效(xiao),有(you)時無效(xiao)!最簡單(dan)地說,權(quan)(quan)重衰(shuai)(shuai)減從模(mo)型中刪除特(te)征(zheng)(作為(wei)特(te)征(zheng)重要性的(de)函數),它(ta)也被(bei)稱為(wei)正(zheng)(zheng)則(ze)化。推理時間 1:4.18 秒,11.95 個 token / 秒正(zheng)(zheng)如(ru)(ru)我們(men)所(suo)看到的(de),模(mo)型開始通過附加 “… 以及(ji)為(wei)什么它(ta)有(you)時看起(qi)來(lai)有(you)效(xiao),有(you)時不起(qi)作用(yong)!” 來(lai)補(bu)全 prompt。這(zhe)是因為(wei)基礎模(mo)型只在(zai)下一(yi)個單(dan)詞預(yu)測任務中進行了訓練,沒有(you)經過專門的(de)訓練來(lai)處理指(zhi)令。盡管如(ru)(ru)此,它(ta)試圖在(zai)下面進一(yi)步解(jie)釋。這(zhe)種解(jie)釋對正(zheng)(zheng)則(ze)化做出了一(yi)些正(zheng)(zheng)確的(de)解(jie)釋,但它(ta)并沒有(you)真正(zheng)(zheng)捕捉到權(quan)(quan)重衰(shuai)(shuai)減的(de)關鍵機制(zhi)。LLaMA-Adapter

圖片

權重(zhong)衰減是(shi)(shi)一種懲罰詞條字(zi)數的(de)方法(fa)。通過選擇單詞較少的(de)句子(zi),模(mo)型更有可能(neng)選擇那些可能(neng)提供重(zhong)要信息的(de)句子(zi)。推理時間:總計 7.04 秒,14.21 個 tokens/sec。使用的(de)內存:13.56 GB。這(zhe)個解(jie)釋在(zai)語法(fa)上(shang)是(shi)(shi)合理的(de),但也不(bu)一定是(shi)(shi)我(wo)們想要的(de)。LoRA

圖片

權(quan)(quan)(quan)重衰減(jian)(jian)是(shi)機(ji)器學習模(mo)型(xing)中(zhong)用于減(jian)(jian)少過(guo)擬合(he)(he)的(de)(de)(de)算(suan)法(fa)參數。這是(shi)一個調整模(mo)型(xing)權(quan)(quan)(quan)重的(de)(de)(de)過(guo)程(cheng),以(yi)減(jian)(jian)少模(mo)型(xing)中(zhong)不(bu)太重要的(de)(de)(de)特(te)征的(de)(de)(de)影響并防止過(guo)擬合(he)(he)。權(quan)(quan)(quan)重衰減(jian)(jian)是(shi)通過(guo)向權(quan)(quan)(quan)重添加(jia)少量噪聲(sheng)來減(jian)(jian)少模(mo)型(xing)對訓練數據的(de)(de)(de)影響。這個過(guo)程(cheng)鼓勵模(mo)型(xing)更多地關注對預測任(ren)務(wu)更重要的(de)(de)(de)特(te)征。

推理(li)時(shi)間:總計 3.25 秒,30.76 個 tokens/sec。使用(yong)的內存:27.65 GB。可以看到離期望的答案越來越近了(le);放到廣義線性(xing)模(mo)型(xing)(xing)中(zhong),這種解釋確實有意義,在廣義線性(xing)模(mo)型(xing)(xing)中(zhong),會強迫模(mo)型(xing)(xing)學習與輸入(ru)特征(zheng)相(xiang)乘結果較小的權重參數。

在神經網絡中,這(zhe)通(tong)常會應(ying)用于模(mo)型中的(de)(de)(de)(de)(de)所有(you)權重(zhong)(zhong)參數(shu)(shu)。上(shang)面的(de)(de)(de)(de)(de) LoRA 方(fang)法(fa)目前(qian)來說使(shi)用的(de)(de)(de)(de)(de)內存(cun)最多。然而,如前(qian)所述(shu),可(ke)以(yi)通(tong)過(guo)將 LoRA 權重(zhong)(zhong)與預(yu)訓練的(de)(de)(de)(de)(de)模(mo)型權重(zhong)(zhong)合(he)并來減少這(zhe)種內存(cun)使(shi)用。由于評估(gu) LLM 本身就是一(yi)(yi)個大課題,因此這(zhe)種定(ding)性概(gai)述(shu)只能反應(ying)每個模(mo)型能力的(de)(de)(de)(de)(de)一(yi)(yi)小(xiao)部分。但(dan)這(zhe)里的(de)(de)(de)(de)(de)要點是,LoRA 可(ke)以(yi)用于以(yi)相(xiang)對(dui)經濟高(gao)效(xiao)的(de)(de)(de)(de)(de)方(fang)式在指令數(shu)(shu)據集上(shang)微(wei)調 LLM。結論本文討論了低秩自適應(ying)(LoRA),這(zhe)是一(yi)(yi)種參數(shu)(shu)完全微(wei)調的(de)(de)(de)(de)(de)有(you)效(xiao)替代(dai)方(fang)案(an)。使(shi)用 LoRA,可(ke)以(yi)在幾(ji)個小(xiao)時內在單個 GPU 上(shang)對(dui) LLaMA 等相(xiang)對(dui)較大的(de)(de)(de)(de)(de)模(mo)型進行微(wei)調,這(zhe)使(shi)得它對(dui)那(nei)些不想在 GPU 資源(yuan)上(shang)花費數(shu)(shu)千美(mei)元的(de)(de)(de)(de)(de)人特別有(you)吸引力。

LoRA 的(de)(de)特(te)別(bie)之(zhi)處在(zai)于,可以(yi)選擇性地將新(xin)的(de)(de) LoRA 權重矩陣與(yu)原始的(de)(de)預(yu)訓練權重合并,這(zhe)樣在(zai)推(tui)理過程中就(jiu)不會產生額外(wai)的(de)(de)開銷或(huo)復(fu)雜性。隨(sui)著越來越多的(de)(de) ChatGPT 或(huo) GPT-4 開源(yuan)替代(dai)品的(de)(de)出現,在(zai)特(te)定的(de)(de)目(mu)標數據集或(huo)目(mu)標上(shang)微(wei)調(diao)和(he)(he)定制(zhi)這(zhe)些 LLM 將在(zai)各個研究領域和(he)(he)行業變得越來越有吸引(yin)力。而(er) LoRA 等(deng)參數有效的(de)(de)微(wei)調(diao)技(ji)術(shu)使微(wei)調(diao)更具資源(yuan)效率和(he)(he)可訪問性。Lit LLaMA 存儲庫中提供(gong)了(le)諸如 LoRA 和(he)(he) LLaMA Adapter 之(zhi)類的(de)(de)參數高效微(wei)調(diao)技(ji)術(shu)。原文鏈接://lightning.ai/pages/community/tutorial/lora-llm/


熱門文章
8月1日,由萬向區塊鏈實驗室、HashKey Capital共同發起的Future3 Campus孵化營二期——Future3 Camp2正式開啟招募(點擊文末閱讀原文報名),聚焦DePIN賽道,招募
2023-08-16
X