Closed4

ReLoRAの論文読む

if001if001

そもそも線形代数の話
行列AとBのrankの間には以下が成り立つ

rank(A+B) ≦ rank(A) + rank(B)

LoRAの話

とある層のweightをW、学習後のweightをΔWとする。

LoRAでは、ΔWは、ΔWよりもlow Rankの行列AとBの積として表すことができる。

ΔW=sW_{A}W_{B}

ABの積で近似できる。ただしsは1/r

r = max_{A,B} rank(AB)
if001if001

ここで、LoRAを学習途中でN回restartすることを考えると、ΔWは以下のようになる

ΔW=sW^{1}_{A}W^{1}_{B} + sW^{2}_{A}W^{2}_{B} + ... sW^{N}_{A}W^{N}_{B}

従来LoRAの1回学習でのrankとN回restartしたときのrankだと、restartしたときのrankのほうが大きくなるってこと?

rank(sW^{1}_{A}W^{1}_{B}) ≦ rank(sW^{1}_{A}W^{1}_{B}) + rank(sW^{2}_{A}W^{2}_{B}) +...
if001if001

何度もLoRAをrestartする場合、最適化手順の修正が必要

a jagged-cosine learning rate schedule の提案

if001if001

Experiments

C4データセットで60M、130M、250M、350Mサイズのモデルを学習

ReLoRAはLoRAよりも大幅に優れたパフォーマンスを示した。ReLoRAがControlベースラインを上回らなかった唯一のモデルは、60Mパラメータの最小モデルだった。これより大規模ネットワークの訓練を改善するのに効果的であると言える。

このスクラップは2023/07/19にクローズされました