大模型微調(面經總結)

持續更新中

  • 一、LORA篇
    • 1、介紹一下Lora的原理
    • 2、LoRA 是為了解決什么問題提出的?哪些模型適合用 LoRA 微調?什么是低秩分解?
        • **低秩分解:用小矩陣逼近大矩陣**
    • 3、LoRA初始化
    • 4、LoRA初始化秩 r 是怎么選的?為什么不選其他值?
      • 📌 一般經驗:
    • 5、LoRA家族
      • 5.1 LoRA+
      • 4.2 VeRA
      • 4.3 QLoRA

一、LORA篇

1、介紹一下Lora的原理

LoRA 是一種參數高效微調方法,其核心思想是將原始權重矩陣的更新限制在一個低秩空間內,從而顯著減少訓練參數量。
不同于傳統微調,LoRA 將權重的更新項 Δ W \Delta W ΔW 表示為兩個低秩矩陣 A ∈ R r × d A \in \mathbb{R}^{r \times d} ARr×d B ∈ R d × r B \in \mathbb{R}^{d \times r} BRd×r 的乘積:
W ′ = W + Δ W = W + B A W' = W + \Delta W = W + BA W=W+ΔW=W+BA
訓練階段只更新兩個低秩矩陣 A A A B B B ,原始模型權重 W W W 保持不變;

2、LoRA 是為了解決什么問題提出的?哪些模型適合用 LoRA 微調?什么是低秩分解?

  • LoRA 的核心目標:降低大模型微調成本 參數量從 O ( d 2 ) O(d^2) O(d2) O ( r d ) O(rd) O(rd)
  • 適合含大量線性層的 Transformer 架構模型 比如注意力模塊的 Q/K/V 投影矩陣、FFN前饋神經網絡
低秩分解:用小矩陣逼近大矩陣

定義:低秩分解是將高維矩陣近似為兩個低維矩陣的乘積,以降低表示復雜度。
數學形式:對于 d × d d \times d d×d 的高維矩陣 W W W,找到兩個低維矩陣 A ∈ R r × d A \in \mathbb{R}^{r \times d} ARr×d B ∈ R d × r B \in \mathbb{R}^{d \times r} BRd×r 的乘積,使得:

W ≈ B A W \approx BA WBA

  • (A) 是 降維矩陣:將原始 d d d 維空間映射到 r r r 維子空間(提取關鍵特征)。
  • (B) 是 升維矩陣:將 $r$ 維特征恢復到 d d d 維空間(重構原始空間的更新)。
  • 優勢:通過僅優化 (A) 和 (B) 的 2 r d 2rd 2rd 個參數(遠小于 d 2 d^2 d2),即可近似表達 (W) 的主要變化,大幅減少計算量。

3、LoRA初始化

LoRA 的初始化通常遵循以下原則:

  • 原始模型權重 W 不變

  • LoRA 的矩陣:

    • A A A 通常使用正態分布初始化:nn.Linear(..., bias=False) 默認初始化
    • B B B 通常初始化為 全零矩陣,這樣一開始 Δ W = B A = 0 \Delta W = B A = 0 ΔW=BA=0,模型輸出不會被擾動,保證收斂穩定性

如果A也初始化成0,這樣都沒法更新了。對于

對于 y = B A x y = B A x y=BAx

  • 對 B 的梯度: ? L ? B = ? L ? y ? ( A x ) T \displaystyle \frac{\partial L}{\partial B} = \frac{\partial L}{\partial y} \cdot (A x)^T ?B?L?=?y?L??(Ax)T
  • 對 A 的梯度: ? L ? A = B T ? ( ? L ? y ) ? x T \displaystyle \frac{\partial L}{\partial A} = B^T \cdot \left( \frac{\partial L}{\partial y} \right) \cdot x^T ?A?L?=BT?(?y?L?)?xT
    向量對矩陣求導規則:
    如果:
  • y = B z y = B z y=Bz
  • B ∈ R d × r B \in \mathbb{R}^{d \times r} BRd×r
  • z ∈ R r z \in \mathbb{R}^{r} zRr
    則有:
    ? L ? B = ? L ? y ? z T \frac{\partial L}{\partial B} = \frac{\partial L}{\partial y} \cdot z^T ?B?L?=?y?L??zT
    📌 這是矩陣微積分中經典的鏈式法則:
  • ? L ? y \frac{\partial L}{\partial y} ?y?L? d d d 維行向量(外層loss對每個輸出的導數)
  • z T z^T zT 1 × r 1 \times r 1×r 行向量
  • 所以它們的乘積是一個 d × r d \times r d×r 的矩陣(和 B 同型)

4、LoRA初始化秩 r 是怎么選的?為什么不選其他值?

LoRA 中的秩 $r$ 是一個超參數,控制低秩矩陣的維度,通常選取值為 4、8、16、32、64,具體視模型規模和任務而定。

  • 太小(如 r = 1 r=1 r=1:表達能力太弱,模型性能下降
  • 太大(如 r = 512 r=512 r=512:雖然逼近能力強,但和原始 full fine-tune 差別不大,喪失了 LoRA 節省資源的意義

📌 一般經驗:

模型規模推薦 LoRA 秩 r
<100M 參數4-8
100M-1B16
>1B 模型32 或 64

5、LoRA家族

參考:LoRA及衍生

5.1 LoRA+

將矩陣 B 的學習率設置得比矩陣 A 的學習率高得多
在這里插入圖片描述

4.2 VeRA

VeRA(Very Efficient Rank Adaptation)是一種改進版 LoRA 微調方法,它固定低秩矩陣 A 和 B(隨機初始化后凍結,在所有層之間共享;),僅訓練縮放向量 d 和 b,實現參數更少、適配性更強的微調。
在這里插入圖片描述
等等

4.3 QLoRA

對LoRA進行量化

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82497.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82497.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82497.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Camera相機人臉識別系列專題分析之一:人臉識別系列專題SOP及理論知識介紹

【關注我&#xff0c;后續持續新增專題博文&#xff0c;謝謝&#xff01;&#xff01;&#xff01;】 上一篇我們講了&#xff1a;內存泄漏和內存占用拆解系列專題 這一篇我們開始講&#xff1a; Camera相機人臉識別系列專題分析之一&#xff1a;人臉識別系列專題SOP及理論知識…

【Elasticsearch】PUT` 請求覆蓋式更新

是的&#xff0c;Elasticsearch 中的 PUT 請求是覆蓋式的。當你使用 PUT 請求向索引中寫入文檔時&#xff0c;如果文檔已經存在&#xff0c;Elasticsearch 會完全替換整個文檔的內容&#xff0c;而不是進行部分更新。 覆蓋式的具體行為 - 文檔存在時&#xff1a;PUT 請求會用新…

計算機系統結構-第4章-數據級并行

數據集并行的概念: 并行場景1: 對不同數據執行相同的操作: 串行執行: 可以同時進行: 可以嘗試一個多條指令,多核執行 引入: SISD: 單核,單線程,串行執行,這樣耗時 MIMD: 多核,多線程,并行執行,一條指令多次重復,變成了MIMID 存在的問題: 在標量CPU流水線中&#xff0…

重新安裝解決mac vscode點擊不能跳轉問題

依次執行以下過程 刪除vscode程序 刪除vscode的緩存文件夾(xxx表示你的用戶名) /Users/xxx/Library/Application Support/Code 重新安裝vscode 這時候你會反向可以跳轉項目內的import 文件以及自定義函數。但是import安裝的包還不能點擊跳轉 配置python環境 如果你電腦沒有安…

題目 3334: 藍橋杯2025年第十六屆省賽真題-園藝

題目 3334: 藍橋杯2025年第十六屆省賽真題-園藝 時間限制: 2s 內存限制: 192MB 提交: 129 解決: 37 題目描述 小藍從左到右種了 n 棵小樹&#xff0c;第 i 棵樹的高度為 hi &#xff0c;相鄰樹的間隔相同。 小藍想挪走一些樹使得剩下的樹等間隔分布&#xff0c;且從左到右高度逐…

Chrome 開發中的任務調度與線程模型實戰指南

內容 概述 快速入門指南 核心概念線程詞典 線程任務優先使用序列而不是物理線程 發布并行任務 直接發布到線程池通過 TaskRunner 發布 發布順序任務 發布到新序列發布到當前&#xff08;虛擬&#xff09;主題 使用序列代替鎖將多個任務發布到同一線程 發布到瀏覽器進程中的主線…

詳解osgb的頂點,紋理,索引,UV讀取與存儲

virtual void apply(osg::Geode& node) {for (int i 0; i < node.getNumDrawables(); i){osg::Geometry* geometry dynamic_cast<osg::Geometry*>(node.getDrawable(i));if (geometry){//apply(*g);//***********************************************//解析頂點…

CSS闖關指南:從手寫地獄到“類”積木之旅|得物技術

一、背景 在Web開發網頁設計中&#xff0c;CSS&#xff08;層疊樣式表&#xff09;扮演著至關重要的角色&#xff0c;它用于控制網頁的布局、外觀和視覺效果。CSS不僅可以美化網頁的視覺表現&#xff0c;還可以提高網頁的可訪問性、可維護性和響應式設計。在我們進行網頁開發的…

【大模型應用開發】Qwen2.5-VL-3B識別視頻

0. 編寫代碼并嘗試運行 克隆以下代碼 git clone https://gitee.com/ai-trailblazer/qwen-vl-hello.git 嘗試運行qwen-vl-hello.py&#xff0c;報錯原因缺少modelscope&#xff1a; 1. 安裝qwen-vl-utils工具包 pip install qwen-vl-utils[decord]0.0.8 嘗試運行&#xff0c;…

MySQL 窗口函數深度解析:語法、應用場景與性能優化

一、窗口函數核心概念 ??本質??&#xff1a;對一組與當前行相關聯的行執行計算&#xff0c;??不改變原表行數?? ??與聚合函數的區別??&#xff1a; SELECT department, AVG(salary) -- 普通聚合&#xff1a;每個部門一行 FROM employees GROUP BY department;SE…

新版Chrome瀏覽器加載eDrawings 3D Viewer控件網頁查看DWG、DXF

eDrawings是一款由達索系統&#xff08;DASSAULT SYSTMES&#xff09;開發的免費跨平臺CAD看圖工具&#xff0c;專注于3D模型和2D工程圖的查看、協作與共享。其核心功能包括多格式支持、動態模型展示、跨平臺適配及輕量化操作體驗&#xff0c;適用于工程設計、教育培訓等領域。…

阿姆斯特朗數

阿姆斯特朗數也就是俗稱的水仙花數&#xff0c;是指一個n位數&#xff0c;其各位數字的n次方之和等于該數本身。例如&#xff0c;153是一個水仙花數&#xff0c;因為153&#xff1d;13&#xff0b;53&#xff0b;33。請問100-10000所有水仙花數有哪些。 采用窮舉法對范圍之間的…

vmvare 虛擬機內存不足

centos 擴展物理卷df -hT / sudo du -hx --max-depth1 / | sort -rh | head -n 20 // 查看前20個的大文件 # 清理舊日志&#xff08;保留最近7天&#xff09; sudo find /var/log -type f -mtime 7 -delete sudo journalctl --vacuum-time7d # 清理yum緩存 sudo yum clean …

C++?繼承!!!

一、引言 代碼的復用對于代碼的質量以及程序員的代碼設計上都是非常重要的&#xff0c;C中的許多特性都體現了這一點&#xff0c;從函數復用、模板的引入到今天我們將一起學習的&#xff1a;繼承 二、什么是繼承&#xff1f; 1、繼承的概念 繼承(inheritance)機制是面向對象程…

Android設置界面層級為最上層實現

Android設置界面層級為最上層實現 文章目錄 Android設置界面層級為最上層實現一、前言二、Android設置界面層級為最上層實現1、主要代碼2、后遺癥 三、其他1、Android設置界面層級為最上層小結2、懸浮框的主要代碼懸浮框 注意事項&#xff08;1&#xff09;權限限制&#xff08…

Linux 了解篇

一、GNU 項目與 GPL 許可 &#xff08;一&#xff09;GNU 項目 GNU &#xff1a;GNU 是一個遞歸縮寫&#xff0c;代表 "GNUs Not Unix"。GNU 項目旨在開發一個完全自由的操作系統&#xff0c;該操作系統基于 Unix 的設計理念但不包含 Unix 的代碼。GNU 項目提供了大…

word 如何讓公式居中,公式編號右對齊

問題&#xff1a; 如何讓輸入的公式居中&#xff0c;公式編號右對齊&#xff1f; 解決方法&#xff1a; 方法一&#xff1a;使用制表符 1、輸入內容&#xff1a;先按一次“Tab”鍵&#xff08;制表符&#xff09;&#xff0c;然后鍵入公式&#xff0c;然后再按一次“Tab”鍵…

華為OD機試真題——最小循環子數組 (2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳實現

2025 B卷 100分 題型 本專欄內全部題目均提供Java、python、JavaScript、C、C++、GO六種語言的最佳實現方式; 并且每種語言均涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、3個測試用例以及綜合分析; 本文收錄于專欄:《2025華為OD真題目錄+全流程解析+備考攻略+經驗分…

OpenCv高階(十七)——dlib庫安裝、dlib人臉檢測

文章目錄 前言一、dlib庫簡介二、dlib庫安裝1、本地安裝&#xff08;離線&#xff09;2、線上安裝 三、dlib人臉檢測原理1、HOG 特征提取2、 SVM 分類器訓練3、 滑動窗口搜索4、非極大值抑制&#xff08;NMS&#xff09; 四、dlib人臉檢測代碼1、導入OpenCV計算機視覺庫和dlib機…

AD-PCB--AD20軟件安裝及中英文切換 DAY 2

1.軟件安裝 1.1 軟件包下載 給你一個捷徑&#xff1a; 1.2 安裝過程&#xff08;安裝過的人跳過就好&#xff0c;一般很多都支持懶人安裝&#xff09; 雙擊其中的exe文件 點擊下一步 選擇中文 接受用戶協議 下面這個彈窗有的沒有。 建議勾選導入導出 安裝目錄&#xff0c…