您是否仍在使用Lora來微調LLM?
LoRA (低秩自適應- arxiv.org/abs/2106.09685) 是一種經濟高效微調大型語言模型(LLM) 的流行技術。但2024 年湧現出大量新的參數高效微調技術,各種LoRA 替代方案層出不窮:SVF、SVFT、MiLoRA、PiSSA、LoRA-XS ?…… 其中大多數都基於我非常喜歡的一種矩陣技術:奇異值分解(SVD)。讓我們深入探討。
LoRA
LoRA 的最初見解是,微調模型的所有權重是過度操作。相反,LoRA 凍結模型,只訓練一對小的低秩“適配器”矩陣。請參見下面的插圖(其中W 是Transformer LLM 中任何權重矩陣)。
由於需要計算和存儲的梯度要少得多,因此可以節省內存和計算週期。例如,這是一個使用LoRA 微調以模擬海盜說話方式的Gemma 8B 模型:只有2200 萬個參數可訓練,85 億個參數保持凍結狀態。
LoRA 非常流行。它甚至已作為單行API 進入Keras 等主流ML 框架:
<code>gemma.backbone.enable_lora(rank=8)</code>
但是LoRA 是最好的嗎?研究人員一直在努力改進該公式。實際上,選擇較小的“適配器”矩陣的方法有很多種。由於它們大多數巧妙地利用了矩陣的奇異值分解(SVD),讓我們暫停一下,進行一些數學運算。
SVD:簡單的數學
SVD 是理解矩陣結構的一個好工具。該技術將矩陣分解為三個:W = USV T ,其中U 和V 是正交的(即基變換),S 是排序的奇異值的對角矩陣。這種分解總是存在的。
在“教科書式”SVD 中,U 和V 是方陣,而S 是一個矩形矩陣,對角線上是奇異值,後面是零。實際上,您可以使用方陣S 和矩形U 或V——參見圖片——截斷的部分只是乘以零。這種“經濟型”SVD 是常用庫(例如numpy.linalg.svd)中使用的。
那麼我們如何利用這一點更有效地選擇要訓練的權重呢?讓我們快速瀏覽五種最近基於SVD 的低秩微調技術,並附帶註釋說明。
SVF
LoRA 最簡單的替代方法是對模型的權重矩陣使用SVD,然後直接微調奇異值。奇怪的是,這是最新的技術,稱為SVF,發表在Transformers² 論文中(arxiv.org/abs/2501.06252v2)。
SVF 在參數方面比LoRA 經濟得多。此外,它使微調模型具有可組合性。有關這方面的更多信息,請參見此處我的Transformers² 說明,但是組合兩個SVF 微調模型只是一個加法運算:
SVFT
如果您需要更多可訓練參數,SVFT 論文(arxiv.org/abs/2405.19597) 探討了多種方法,首先是在對角線上添加更多可訓練權重。
它還評估了其他多種替代方案,例如將它們隨機分散到“M”矩陣中。
更重要的是,SVFT 論文證實,擁有比對角線更多的可訓練值是有用的。請參見下面的微調結果。
接下來是幾種將奇異值分成兩組“大”和“小”的技術。但在我們繼續之前,讓我們暫停一下,進行更多SVD 數學運算。
更多SVD 數學
SVD 通常被視為分解成三個矩陣W=USV T ,但它也可以被認為是許多秩1 矩陣的加權和,由奇異值加權:
如果您想證明這一點,請一方面使用USV T形式和矩陣乘法的公式來表達單個矩陣元素W jk ,另一方面使用Σ s i u i v i T形式,使用S 是對角線的事實進行簡化,並註意它是一樣的。
在此表示中,很容易看出您可以將總和分成兩部分。並且由於您可以始終對奇異值進行排序,因此您可以將其分成“大”和“小”奇異值。
回到三矩陣形式W=USV T ,這就是分割的樣子:
基於此公式,兩篇論文探討瞭如果您只調整大的奇異值或只調整小的奇異值會發生什麼,即PiSSA 和MiLoRA。
PiSSA
PiSSA(主奇異值和奇異向量自適應,arxiv.org/abs/2404.02948)聲稱您應該只調整大的主值。機制如下所示:
摘自論文:“PiSSA 旨在通過調整主要奇異分量來近似完全微調,這些分量被認為捕捉了權重矩陣的本質。相反,MiLoRA 旨在適應新任務,同時最大限度地保留基礎模型的知識。”
PiSSA 論文還有一個有趣的發現:完全微調容易過度擬合。使用低秩微調技術,您可能會在絕對值上獲得更好的結果。
MiLoRA
另一方面,MiLoRA(次要奇異分量LoRA arxiv.org/abs/2406.09044)聲稱您應該只調整小的主值。它使用與PiSSA 類似的機制:
令人驚訝的是,MiLoRA 似乎佔據了上風,至少在微調數學數據集時是這樣,這些數據集可能與原始預訓練相當一致。可以說,PiSSA 應該更適合將LLM 的行為從其預訓練中進一步彎曲。
LoRA-XS
最後,我想提到LoRA-XS (arxiv.org/abs/2405.17604)。與PiSSA 非常相似,但機制略有不同。它還顯示出比LoRA 少得多的參數也能獲得良好的結果。
該論文提供了數學解釋,說明在兩種情況下這種設置是“理想的”:
- 從SVD 中截斷底部的主要值仍然可以很好地近似權重矩陣
- 微調數據分佈接近預訓練數據分佈
在我看來,兩者都值得懷疑,所以我不會詳細介紹數學。一些結果:
根本假設似乎是奇異值分為“大”和“小”兩種,但事實是這樣嗎?我在Colab 上快速檢查了Gemma2 9B。底線:99% 的奇異值在0.1 – 1.1 範圍內。我不確定將它們分成“大”和“小”是否有意義。
結論
還有許多其他參數高效的微調技術。值得一提的是:
- DoRA (arxiv.org/abs/2402.09353),它將權重分成大小和方向,然後調整這些權重。
- AdaLoRA (arxiv.org/abs/2303.10512),它具有復雜的機制,可以為給定的可訓練權重預算找到最佳調整秩。
我的結論:為了超越具有10 倍參數的LoRA 標準,我喜歡Transformers² 的SVF 的簡單性。如果您需要更多可訓練權重,SVFT 是一種簡單的擴展。兩者都使用所有奇異值(全秩,無奇異值修剪),並且仍然很便宜?。祝您微調愉快!
注意:所有插圖均由作者創作或從arxiv.org 論文中提取,用於評論和討論。
以上是您是否仍在使用Lora來微調LLM?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在從事代理AI時,開發人員經常發現自己在速度,靈活性和資源效率之間進行權衡。我一直在探索代理AI框架,並遇到了Agno(以前是Phi-

該版本包括三種不同的型號,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,標誌著向大語言模型景觀內的特定任務優化邁進。這些模型並未立即替換諸如

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

解鎖嵌入模型的力量:深入研究安德魯·NG的新課程 想像一個未來,機器可以完全準確地理解和回答您的問題。 這不是科幻小說;多虧了AI的進步,它已成為R

模擬火箭發射的火箭發射:綜合指南 本文指導您使用強大的Python庫Rocketpy模擬高功率火箭發射。 我們將介紹從定義火箭組件到分析模擬的所有內容

雙子座是Google AI策略的基礎 雙子座是Google AI代理策略的基石,它利用其先進的多模式功能來處理和生成跨文本,圖像,音頻,視頻和代碼的響應。由DeepM開發

“超級樂於宣布,我們正在購買花粉機器人,以將開源機器人帶到世界上,” Hugging Face在X上說:“自從Remi Cadene從Tesla加入我們以來,我們已成為開放機器人的最廣泛使用的軟件平台。

在AI社區的重大發展中,Agentica和AI共同發布了一個名為DeepCoder-14B的開源AI編碼模型。與OpenAI等封閉源競爭對手提供代碼生成功能
