LoRA(Low-Rank Adaptation)是一種用于微調大型預訓練模型的技術,旨在高效地適應特定任務,同時減少計算和存儲開銷。
預訓練模型:如DeepSeek、BERT、GPT等,已在大量數據上訓練,具備廣泛的語言理解能力。
微調:為適應特定任務,通常需要對整個模型進行微調,但這種方法計算和存儲成本高。
雖然這種微調技術已經成功使用了很長時間,但在用于更大的模型時——例如大語言模型(LLM),就會出現問題,主要因為:
模型的大小。
微調所有權重的成本。
維護所有微調后的大模型的成本。
LoRA 微調解決了傳統微調的局限性。
1.LoRA的核心思想
核心思想是將原始模型的權重矩陣(部分或全部)分解為低秩矩陣,并訓練這些矩陣。
只更新少量參數,而不是整個模型,從而減少計算和存儲需求。
如圖所示,底部網絡表示大型預訓練模型,而頂部網絡表示帶有 LoRA 層的模型。
其核心思想是只訓練 LoRA 網絡,而凍結大型模型。
2.實現步驟
凍結預訓練模型:保持大部分參數不變。
引入低秩矩陣:在關鍵層(如注意力機制)添加低秩矩陣,用于捕捉任務特定的變化。
微調低秩矩陣:只訓練這些低秩矩陣,保持原始模型參數不變。
對于需要微調的模型中的某些線性層(例如注意力層或全連接層),LoRA方法凍結原始權重,并引入兩個低秩矩陣A和B,使得模型最終使用的權重可以表示為:
W_effective = W + ΔW, 其中 ΔW = A × B
這里A和B的秩非常小(例如秩r遠小于輸入和輸出維度),因此只需訓練這兩個低秩矩陣而非整個權重矩陣。
LoRA微調通過這種增量調整方式,既保留了預訓練模型的強大表達能力,又實現了在新任務上的高效適應,是當前大模型微調領域非常流行的技術之一。
3.理解矩陣的秩
在線性代數中,矩陣的秩(Rank)是指矩陣中線性無關的行或列的最大數目。一個矩陣的秩不會超過其行數或列數的最小值。秩反映了矩陣的信息量和獨立性。
例如,對于一個 m×n 的矩陣:
如果其秩為 r,則說明矩陣中存在 r 個線性無關的行(或列)。
秩反映了矩陣的“有效維度”,低秩通常意味著矩陣的數據存在冗余,許多行或列可以通過其他行或列的線性組合來表示。
在許多應用中,例如數據降維、低秩分解或模型壓縮中,都利用這一性質簡化問題和減少參數。
作者:架構筆記
來源:網絡博客
題圖來自 Unsplash ,基于 CC0 協議, 如有侵權,請聯系pmtalk123刪除
“分享產品經理改變世界的點滴”
產品顧問| 產品咨詢|培訓合作
請添加微信PMxiaowanzi
最近我的原創
每日案例拆解庫,AI等產品打卡群
我創建的產品設計打卡社群,加入后365天,每天體驗一款APP。提升產品設計能力,同時有1300份體驗報告幫助你找到競品
在這里你可以隨時查詢到你想找的各類競品行業APP,無須自己親自下載就可以馬上得到APP的一手產品優化、交互設計、功能描述信息。
從優化&建議、商業模式、運營、功能描述、交互設計、產品定位至少6個維度,體驗一款應用。
平均1天1塊錢,掃碼購買即可加入
連續體驗48款應用,通過后原路退回
報名后添加星球助理
PMTalk123
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.