成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大模型面經——LoRA最全總結 原創

發布于 2024-10-17 10:40
瀏覽
0收藏

LoRA面經搜集總結。

大家的顯卡都比較吃緊,LoRA家族越來越壯大,基于LoRA出現了各種各樣的改進,最近比較火的一個改進版是 dora,聽大家反饋口碑也不錯。

基于PEFT的話用4090 24G顯存也可以進行大模型的微調,所以LoRA家族這塊還是很有研究和實際落地的潛力。

LoRA整個系列分為兩個部分:

1、LoRA總述

2、LoRA家族演進

本篇開始介紹第一部分:LoRA總述,盡量以面經問題的形式提出并解答,下面是一個快捷目錄。

一、概念

1. 簡單介紹一下LoRA

2. LoRA的思路

3. LoRA的特點

4. LoRA的優點

5. LoRA的缺點

二、訓練理論

1. LoRA權重是否可以合入原模型?

2. ChatGLM-6B LoRA后的權重多大? 

3. LoRA微調方法為啥能加速訓練? 

4. 如何在已有LoRA模型上繼續訓練?

5. LoRA這種微調方法和全參數比起來有什么劣勢嗎?

6. LORA應該作用于Transformer的哪個參數矩陣? 

7. LoRA 微調參數量怎么確定? 

8. Rank 如何選取? 

9. alpha參數 如何選取? 

10. LoRA 高效微調如何避免過擬合?

11. 哪些因素會影響內存使用? 

12. LoRA權重是否可以合并? 

13. 是否可以逐層調整LoRA的最優rank? 

14. Lora的矩陣怎么初始化?為什么要初始化為全0?

 一、概念

1. 簡單介紹一下LoRA


大模型面經——LoRA最全總結-AI.x社區

通過低秩分解來模擬參數的改變量,從而以極小的參數量來實現大模型的間接訓練。實現思想很簡單,就是凍結一個預訓練模型的矩陣參數,并選擇用A和B矩陣來替代,在下游任務時只更新A和B。

2. LoRA的思路

主要思想:在原模型旁邊增加一個旁路,通過低秩分解(先降維再升維)來模擬參數的更新量。

  • 訓練:原模型固定,只訓練降維矩陣A和升維矩陣B。
  • 推理:可將BA加到原參數上,不引入額外的推理延遲。
  • 初始化:A采用高斯分布初始化,B初始化為全0,保證訓練開始時旁路為0矩陣。
  • 可插拔式的切換任務:當前任務W0+B1A1,將lora部分減掉,換成B2A2,即可實現任務切換。

3. LoRA的特點

  • 將BA加到W上可以消除推理延遲; 
  • 可以通過可插拔的形式切換到不同的任務;
  • 設計的比較簡單且效果好。

4. LoRA的優點

1)一個中心模型服務多個下游任務,節省參數存儲量 

2)推理階段不引入額外計算量 

3)與其它參數高效微調方法正交,可有效組合 

4)訓練任務比較穩定,效果比較好 

5)LoRA 幾乎不添加任何推理延遲,因為適配器權重可以與基本模型合并

5. LoRA的缺點

LoRA參與訓練的模型參數量不多,也就百萬到千萬級別的參數量,所以效果比全量微調差很多。(數據以及算力滿足的情況下,還是微調的參數越多越好)

二、訓練理論

1. LoRA權重是否可以合入原模型?

可以,將訓練好的低秩矩陣(B*A)+原模型權重合并(相加),計算出新的權重。

2. ChatGLM-6B LoRA后的權重多大?

rank 8 target_module query_key_value條件下,大約15M。

3. LoRA微調方法為啥能加速訓練? 

1)只更新了部分參數:比如LoRA原論文就選擇只更新Self Attention的參數,實際使用時我們還可以選擇只更新部分層的參數;

2)減少了通信時間:由于更新的參數量變少了,所以(尤其是多卡訓練時)要傳輸的數據量也變少了,從而減少了傳輸時間; 

3)采用了各種低精度加速技術,如FP16、FP8或者INT8量化等。

這三部分原因確實能加快訓練速度,然而它們并不是LoRA所獨有的,事實上幾乎都有參數高效方法都具有這些特點。LoRA的優點是它的低秩分解很直觀,在不少場景下跟全量微調的效果一致,以及在預測階段不增加推理成本。

4. 如何在已有LoRA模型上繼續訓練?

理解此問題的情形是:已有的lora模型只訓練了一部分數據,要訓練另一部分數據的話,是在這個lora上繼續訓練呢,還是跟base 模型合并后再套一層lora,或者從頭開始訓練一個lora? 

把之前的LoRA跟base model 合并后,繼續訓練就可以,為了保留之前的知識和能力,訓練新的LoRA時,加入一些之前的訓練數據是需要的。每次都要重頭訓練的話成本比較高。

5. LoRA這種微調方法和全參數比起來有什么劣勢嗎?

大模型面經——LoRA最全總結-AI.x社區

如果有足夠計算資源以及有10k以上數據,還是建議全參數微調,lora的一個初衷就是為了解決不夠計算資源的情況下微調,只引入了少量參數,就可以在消費級gpu上訓練,但lora的問題在于它不能節省訓練時間,相比于全量微調,他要訓練更久,同時因為可訓練參數量很小,在同樣大量數據訓練下,比不過全量微調。

6. LORA應該作用于Transformer的哪個參數矩陣? 

大模型面經——LoRA最全總結-AI.x社區

從上圖我們可以看到: 

1)將所有微調參數都放到attention的某一個參數矩陣的效果并不好,將可微調參數平均分配到 Wq 和 Wk 的效果最好;

2)即使是秩僅取4也能在 ?W 中獲得足夠的信息。

因此在實際操作中,應當將可微調參數分配到多種類型權重矩陣中,而不應該用更大的秩單獨微調某種類型的權重矩陣。

7. LoRA 微調參數量怎么確定? 

LoRA 模型中可訓練參數的結果數量取決于低秩更新矩陣的大小,其主要由秩 r 和原始權重矩陣的形狀確定。實際使用過程中,通過選擇不同的 lora_target 決定訓練的參數量。 

以 LLama 為例: 

--lora_target q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj

8. Rank 如何選取? 

Rank的取值比較常見的是8,理論上說Rank在4-8之間效果最好,再高并沒有效果提升。不過論文的實驗是面向下游單一監督任務的,因此在指令微調上根據指令分布的廣度,Rank選擇還是需要在8以上的取值進行測試。

9. alpha參數 如何選取? 

alpha其實是個縮放參數,本質和learning rate相同,所以為了簡化可以默認讓alpha=rank,只調整lr,這樣可以簡化超參。

10. LoRA 高效微調如何避免過擬合?

過擬合還是比較容易出現的。減小r或增加數據集大小可以幫助減少過擬合,還可以嘗試增加優化器的權重衰減率或LoRA層的dropout值。

11. 哪些因素會影響內存使用? 

內存使用受到模型大小、批量大小、LoRA參數數量以及數據集特性的影響。例如,使用較短的訓練序列可以節省內存。

12. LoRA權重是否可以合并? 

可以將多套LoRA權重合并。訓練中保持LoRA權重獨立,并在前向傳播時添加,訓練后可以合并權重以簡化操作。

13. 是否可以逐層調整LoRA的最優rank? 

理論上,可以為不同層選擇不同的LoRA rank,類似于為不同層設定不同學習率,但由于增加了調優復雜性,實際中很少執行。

14. Lora的矩陣怎么初始化?為什么要初始化為全0?

矩陣B被初始化為0,而矩陣A正常高斯初始化。 

如果B,A全都初始化為0,那么缺點與深度網絡全0初始化一樣,很容易導致梯度消失(因為此時初始所有神經元的功能都是等價的)。 

如果B,A全部高斯初始化,那么在網絡訓練剛開始就會有概率為得到一個過大的偏移值Δ W 從而引入太多噪聲,導致難以收斂。 

因此,一部分初始為0,一部分正常初始化是為了在訓練開始時維持網絡的原有輸出(初始偏移為0),但同時也保證在真正開始學習后能夠更好的收斂。


文轉載自公眾號瓦力算法學研所,作者:喜歡瓦力的卷卷

原文鏈接:??https://mp.weixin.qq.com/s/d3WIiA3VDyyRPyWWkwHa3w??


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2024-10-17 10:44:12修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 亚洲日本一区二区三区四区 | 日韩在线视频一区 | 国产成人精品一区二区三 | 久久久久久久一区 | 一区二区三区四区免费视频 | 日本久久精品视频 | 亚洲精品亚洲人成人网 | 久久夜色精品国产 | 日韩黄| 精品视频一区二区三区四区 | 亚洲人成人一区二区在线观看 | 欧美伦理一区 | 国产亚洲人成a在线v网站 | 精品影院 | 欧美爱爱视频网站 | 国产欧美日韩在线观看 | www.久久影视 | 精品视频一区二区三区在线观看 | 91精品国产欧美一区二区成人 | 国产精品爱久久久久久久 | 成人亚洲一区 | 午夜亚洲 | 日韩毛片免费看 | 欧美一区成人 | 中文日韩在线 | 成人免费淫片aa视频免费 | 亚洲第一天堂 | 亚洲毛片在线观看 | aaa在线观看 | 高清成人av | 国产精品女人久久久 | a级在线免费观看 | 日韩国产欧美一区 | 亚洲第一视频网 | 亚洲视频一区在线观看 | 99热热热热 | 久久久久久国产精品久久 | 中文字幕亚洲一区二区三区 | 亚洲免费一区二区 | 涩在线 | 欧美精品1区 |