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

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

作者:Sebastian Raschka

機器之心編譯

編輯:趙陽

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

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

圖片

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

圖片

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

圖片


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


圖片


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

因此,盡管預訓練模型的(de)(de)(de)權(quan)(quan)重(zhong)(zhong)是(shi)滿秩矩陣(zhen)(zhen),但根據 Aghajanyan 等人的(de)(de)(de)說法,LoRA 的(de)(de)(de)作(zuo)者指出預訓練的(de)(de)(de)大型語言(yan)模型在適(shi)(shi)應(ying)新(xin)(xin)任(ren)務時(shi)具(ju)有較低的(de)(de)(de)內在維度(du)。低內在維度(du)意(yi)味著數據可(ke)以由低維度(du)空間有效地表示(shi)或(huo)近似,同(tong)時(shi)保(bao)(bao)留其大部分基本信息或(huo)結構。換(huan)句話說,這意(yi)味著可(ke)以將適(shi)(shi)應(ying)任(ren)務的(de)(de)(de)新(xin)(xin)權(quan)(quan)重(zhong)(zhong)矩陣(zhen)(zhen)分解為低維(較小)矩陣(zhen)(zhen),而不(bu)會丟(diu)失太多重(zhong)(zhong)要信息。例如(ru),假設 ΔW 是(shi) A×B 維權(quan)(quan)重(zhong)(zhong)矩陣(zhen)(zhen)的(de)(de)(de)權(quan)(quan)重(zhong)(zhong)更(geng)新(xin)(xin)矩陣(zhen)(zhen),這個權(quan)(quan)重(zhong)(zhong)更(geng)新(xin)(xin)矩陣(zhen)(zhen)可(ke)以分解為兩個較小的(de)(de)(de)矩陣(zhen)(zhen):ΔW=W_A W_B,其中 W_A 是(shi) A×r 維矩陣(zhen)(zhen),W_B 是(shi) r×B 維矩陣(zhen)(zhen)。在這里,我(wo)們保(bao)(bao)持(chi)原始權(quan)(quan)重(zhong)(zhong) W 凍結,并且只(zhi)訓練新(xin)(xin)的(de)(de)(de)矩陣(zhen)(zhen) W_A 和 W_B。如(ru)下(xia)圖(tu)所示(shi)。


圖片


選擇秩(zhi)(zhi)上圖中的 r 是(shi)超參(can)數(shu),指定用(yong)(yong)(yong)于自適(shi)應的低(di)秩(zhi)(zhi)矩(ju)陣的秩(zhi)(zhi)。r 越小,低(di)秩(zhi)(zhi)矩(ju)陣越簡單(dan),在(zai)(zai)自適(shi)應過(guo)程中需(xu)要(yao)(yao)學習的參(can)數(shu)越少,訓(xun)練(lian)就(jiu)更快,計(ji)算需(xu)求會相應的減少。然而,r 變(bian)小的弊端是(shi),低(di)秩(zhi)(zhi)矩(ju)陣捕獲任務(wu)特(te)定信(xin)息的能(neng)力(li)降低(di)。這可能(neng)導致(zhi)較低(di)的自適(shi)應質量,并且(qie)與(yu)較高的 r 相比,模型(xing)在(zai)(zai)新(xin)(xin)任務(wu)上可能(neng)表現(xian)不佳。總(zong)之(zhi),在(zai)(zai) LoRA 中確(que)定 r 的取值,需(xu)要(yao)(yao)在(zai)(zai)模型(xing)復雜性(xing)、自適(shi)應能(neng)力(li)和擬(ni)合(he)不足或擬(ni)合(he)過(guo)度的風險之(zhi)間進(jin)行權(quan)衡。因此,重要(yao)(yao)的是(shi)用(yong)(yong)(yong)不同的 r 值進(jin)行實驗,以(yi)找到正(zheng)確(que)的平衡,從(cong)而在(zai)(zai)新(xin)(xin)任務(wu)中滿足所(suo)(suo)需(xu)的性(xing)能(neng)。 LoRA 實戰LoRA 的使用(yong)(yong)(yong)很直接,可以(yi)將其(qi)視為 LLM 中全連(lian)接層的前向傳遞修(xiu)正(zheng)版(ban)。偽代(dai)碼如下所(suo)(suo)示:


圖片


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

圖片

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

圖片

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


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

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

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

下一節(jie)將(jiang)比(bi)(bi)較(jiao) 7B LLaMA 基(ji)(ji)礎模(mo)型(xing)與(yu)使用 LoRA 和 LLaMA Adapter 微(wei)調的(de) 7B LLaMA 基(ji)(ji)礎模(mo)型(xing)。(請注意,需要具有(you)至少 24 GB RAM 的(de) GPU)。計算性能基(ji)(ji)準本節(jie)中,作者將(jiang)比(bi)(bi)較(jiao) LLaMA 7B 基(ji)(ji)礎模(mo)型(xing)與(yu)使用 LoRA 和 LLaMA Adapter 微(wei)調的(de)基(ji)(ji)礎模(mo)型(xing)的(de)計算性能。微(wei)調數(shu)據(ju)集是 Alpaca 52k 指令數(shu)據(ju)集,其結構如下:


圖片


數據集(ji)是按(an)照 Self-Instruct 論文中(zhong)描述的(de)方(fang)法生成的(de),由 49759 個訓練樣本和(he) 2000 個驗證樣本組成。Self-Instruct 的(de)流(liu)程可總(zong)結為 4 個步驟:

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

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

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

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


圖片

Alpaca 52k 數據集(ji)(ji)(ji)(ji)(ji)是(shi)使(shi)用上(shang)述(shu) Self-Instruct 程序收集(ji)(ji)(ji)(ji)(ji)的(de)(de)(de)(de)。但是(shi),也(ye)可(ke)以使(shi)用(或(huo)將其(qi)與)替(ti)代數據集(ji)(ji)(ji)(ji)(ji)進行比較。例如,一個(ge)有趣(qu)的(de)(de)(de)(de)候(hou)選數據集(ji)(ji)(ji)(ji)(ji)是(shi)最近發布的(de)(de)(de)(de)開(kai)源 databricks-doolly-15k 數據集(ji)(ji)(ji)(ji)(ji),該(gai)數據集(ji)(ji)(ji)(ji)(ji)包含 databricks 員(yuan)工(gong)編寫的(de)(de)(de)(de)約 15k 條(tiao)指令 / 響應微調(diao)記錄。Lit LLaMA 存儲庫包含一個(ge)數據集(ji)(ji)(ji)(ji)(ji)制備腳本,可(ke)以選擇(ze)使(shi)用 Dolly 15k 數據集(ji)(ji)(ji)(ji)(ji)。給(gei)定以下超參數設置(zhi)(塊大(da)小、批大(da)小和 LoRA 的(de)(de)(de)(de) r),Adapter 和 LoRA 都可(ke)以以 bfloat-16 的(de)(de)(de)(de)混合精度,在(zai)具有 24 Gb RAM 的(de)(de)(de)(de)單(dan)個(ge) GPU 上(shang)微調(diao) 7B 參數的(de)(de)(de)(de) LLaMA 基本模型。LoRA

圖片

LaMA Adapter

圖片

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

圖片

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

圖片

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

圖片

權重衰減(jian)(jian)是機器學(xue)習(xi)模(mo)型(xing)中用于減(jian)(jian)少過(guo)擬合的(de)算(suan)法參數(shu)。這是一個(ge)調整模(mo)型(xing)權重的(de)過(guo)程(cheng),以減(jian)(jian)少模(mo)型(xing)中不太重要的(de)特(te)征(zheng)的(de)影響(xiang)并防(fang)止過(guo)擬合。權重衰減(jian)(jian)是通(tong)過(guo)向(xiang)權重添加少量噪(zao)聲(sheng)來減(jian)(jian)少模(mo)型(xing)對(dui)訓(xun)練數(shu)據的(de)影響(xiang)。這個(ge)過(guo)程(cheng)鼓勵模(mo)型(xing)更多地關注對(dui)預測任務更重要的(de)特(te)征(zheng)。

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

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

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


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