大型語言模型工程
DoRA(權重分解低秩適應,weight-decomposed low-rank adaptation)
把每一個權重欄想成一支箭:它有長度(幅值)也有指向(方向)。完整微調可以自由改動這兩者,而分析顯示它改動的方式是 LoRA 難以模仿的——LoRA 傾向於讓幅值與方向同步、綁在一起移動。DoRA 的想法是把箭顯式拆開:用各自獨立的自由參數去學長度,只用 LoRA 式的低秩更新去調指向。
在機制上,DoRA 把預訓練權重分解成一個幅值向量 m(每欄一個純量)與一個對其各欄取單位範數的方向矩陣 V。它接著直接訓練 m,並在把每一欄重新正規化回單位長度之前,對 V 加上一個低秩修正。這恢復了 LoRA 所塌縮掉的一個自由度:模型可以獨立於某特徵指向哪邊,去調整它被激發的強度,而實證上整個訓練過程的學習型態,會變得遠遠更貼近完整微調。
回報是:在同樣低的參數預算下,準確度更靠近完整微調,尤其在純 LoRA 力不從心的小秩情形。代價是正規化帶來些許額外計算、以及稍微複雜一點的合併,但與 LoRA 一樣,訓練結果可以併回單一權重矩陣供推論使用。
W' = m \odot \frac{V + \Delta V}{\lVert V + \Delta V\rVert_c},\qquad \Delta V = B A
幅值 m 自由訓練;方向 V 接受低秩更新,之後對每一欄重新正規化。
DoRA 的增益在極低秩時最大;在高秩時 LoRA 本身容量已足,兩者趨同,分解所能買到的好處也就變少。
又称
另见