Skip to content
Published on

LoRAのrankを変えたら学習率も変えるべきか — μA(2026)が分けた二つのレジーム、そしてその測定の限界

シェア
Authors

はじめに — rankを上げたら学習率を探し直す羽目になった

LoRAを実際に運用したことがある人なら経験があるはずです。rank 16ではうまく回っていたレシピをrank 64に上げた途端、損失が跳ねたり学習が止まったりする。学習率をもう一度掃き直すしかありません。ところが別のチームに聞くと正反対です — 「rankは上げるだけでいい、学習率はいじらなくていい」。

どちらも実際に観測される現象です。そしてこの矛盾は、実務者がいい加減に見ているから生じたわけではありません。2026年2月5日にarXivへ投稿されたLearning Rate Scaling across LoRA Ranks and Transfer to Full Finetuning(Nan Chen, Soledad Villar, Soufiane Hayou, arXiv:2602.06204)は、この二つの通念がそれぞれ異なる設定について正しい主張だと言います。どちらに当たるかは、あなたが使うα規約と初期化が決めます。

本稿は、この論文が正確に何を導き、実験が何を測り、何を測れなかったのかを整理します。結論から言えば、有用な規則が出てきます。ただしその根拠はシード一つ(42)、2倍間隔のグリッドであり、著者ら自身がその限界を明示しています。その限界まで一緒に運ぶのが本稿の狙いです。

問題の正体 — α、初期化、rank、学習率は互いに絡み合っている

まず論文の記法を合わせましょう。LoRAは凍結された事前学習済み重みに低ランク項を足します。

W  ←  W + α·B·A

  A ∈ R^(r×n)   (down-projection)
  B ∈ R^(n×r)   (up-projection)
  n = モデル幅(width),  r = LoRA rank,  α = LoRAの倍率(multiplier)

ここで実務者がいじるつまみは四つです — rank r、倍率α、学習率η、そして初期化。アダプタが最初にno-opになるよう、片方の因子を0に置き、もう片方だけをランダムに埋めますが、論文はこの二つの選択をこう呼びます。

  • Init[A] — Aはランダム、B = 0。元祖LoRAが使う方式で、大半の実装のデフォルトです。
  • Init[B] — Bはランダム、A = 0。逆側です。

倍率αも一つではありません。論文2節の整理によれば、元祖LoRA(Huら、2022)は更新の大きさを抑えるためにα = rの-1乗を使い、rsLoRA(Kalajdzievski、2023)は大きなrankでの安定性のためにα = rの-1/2乗を提案し、最近の研究では次第にα = 1が使われています。

ここが実務者の混乱ポイントです。Hugging Face PEFTはαを直接受け取りません。PEFT v0.17.0のソース(論文が実際に使ったバージョン)を開くと、こうなっています。

# peft/tuners/lora/layer.py — update_layer()
if use_rslora:
    self.scaling[adapter_name] = lora_alpha / math.sqrt(r)
else:
    self.scaling[adapter_name] = lora_alpha / r

つまりuse_rslora=Falseのとき、実効倍率はlora_alpha / rです。論文のαに換算するとこうなります。

lora_alpha = 32 (rankと無関係な定数)    ->  実効α = 32/r   ∝ r^(-1)
lora_alpha = r  (rankに合わせて一緒に増やす) ->  実効α = 1      (定数)
lora_alpha = 2r                          ->  実効α = 2      (定数)

チュートリアルによくあるlora_alpha=32固定と、最近よく勧められる「lora_alphaをrankに合わせて(あるいは2倍に)そろえろ」というアドバイスが、互いに異なる数学的レジームだということです。論文1節の表現どおり、LoRAの更新はAとBについて双線形(bilinear)であるため、初期化・α・rank・ηが互いに絡み合って実効的な更新の大きさを共同で決めます。だからハイパーパラメータのチューニングは壊れやすいのです。

μA — 二つのレジームが分かれる地点

論文は、幅とrankが同時に無限大へ向かう極限(n, r → ∞)で、LoRAの1ステップあたりの特徴更新の大きさを計算します。事前学習のμP(Maximal-Update Parametrization)をファインチューニングへ移したものなので、μA(Maximal-Update Adaptation)という名前です。目標は、特徴更新が発散も消失もしない(Θ(1))学習率を見つけることです。

まず前提を見る必要があります。 論文4節が明示するのは三つです。

  1. 各ステップで順伝播の入力と逆伝播の勾配がΘ(1)で有界(仮定4.1)
  2. オプティマイザをモメンタムなしAdam = SignSGDで近似(仮定4.2)。実験自体は実際にはAdamWで回します。
  3. 損失は単一サンプル基準で計算(Hayouら、2024bに従う)

この上で出てくる結果が二つあります。

Init[A] (系4.4)。 α = rの-γ乗、γは0と1の間とすると、安定した特徴学習に必要な学習率は

η = Θ( n^(-1/2) · r^(-(1-γ)/2) )

  γ=0   (α = 1)          ->  η ∝ n^(-1/2) · r^(-1/2)     rankに依存
  γ=1/2 (α = r^(-1/2))   ->  η ∝ n^(-1/2) · r^(-1/4)     弱いrank依存
  γ=1   (α = r^(-1))     ->  η ∝ n^(-1/2)                rankと無関係

論文の解釈をそのまま移すと、α = 1のときはrankを4倍にすると学習率を半分に減らす必要があり、α = rの-1乗のときはrank依存が倍率に吸収されて学習率がrankと無関係になります。

Init[B]、α = 1 (系4.6)。

η = Θ( n^(-1) )      rankと無関係、幅にのみ依存

ここで論文の核心的な観察が出てきます。同じSignSGD近似のもとで、線形層のフルファインチューニング(FFT)もη ∝ n^(-1)になるということです(付録A.6、定理A.23)。幅のスケーリングが一致する — これがLoRAとFFT間の学習率転移の必要条件です。

あまり知られていない副産物も一つあります。Init[A]では、rankが大きくなるほどAの寄与が消え、学習が実質的にBを通してのみ起こります。論文の表現では、アダプタが次第に「Aを初期値に固定したランダム射影」のように振る舞うようになり、この不均衡はInit[A]のどの標準的なα選択でも消えません。Init[B]ではその逆で、rがnよりはるかに小さいとBの更新が無視できるほど小さくなり、学習が主にAを通して起こります。

なぜ「学習率10倍」の俗説が生き残り続けたのか

ここで先ほどの矛盾が解けます。

昨年9月29日、Thinking MachinesのLoRA Without Regret(John Schulmanら)はこう書きました — 自分たちはW' = W + (α/r)BAにα = 32を固定して使い、「1/rスケーリング係数が最適学習率をrankにほぼ無関係にする」と。学習の初期にはrankが違っても学習曲線がまったく同じで、最初はrank係数が無視されるバグを疑ったとまで書いています。

μA座標に移すと、Schulmanの設定は実効α = 32/r、つまりγ=1です。系4.4がrank無関係を予測するまさにそのマスです。二つの通念のうち「rank無関係」の側は正しい — ただし古典的な1/r規約を使うという条件のもとで。 そしてlora_alphaをrankに合わせて増やし始めた瞬間、あなたはγ=0のマスへ移動しており、そこではrankを4倍にするたびに学習率を半分に下げる必要があります。同じ人が同じライブラリで正反対の経験をする理由がこれです。

ですがμAが解いていないことが一つ残ります。Schulmanが報告した有名な規則 — 「LoRAの最適学習率は、同じ応用先でのFullFTの10倍」です。その根拠はこうです。Tulu3データセット上でLlamaとQwen系列の14個のモデルについてLoRAとFullFTの学習率をそれぞれ掃き、最適学習率をhidden sizeとモデル系列(Llama/Qwen)から予測する関数をフィットしました。その最適化が見つけたLoRAの倍率は9.8で、LoRAのhidden size依存の指数はFullFTと同じでした(フィット結果はLoRA pow = 0)。短いランでは倍率がもっと大きいという予備的観察(~15倍、脚注に「これは逸話的な根拠であり、おおよそ100ステップ以下で成り立つ」)も併せて書き残しています。

この規則についてSchulman自身が付け加えた一文が重要です — 「我々はこの観察に対する適切な理論的説明をまだ持っていない」。実際、ブログの未解決の問い一覧の2番目が「LoRAとFullFTの学習率の比を説明するより完全な理論」です。

μAはその問いに答えません。 論文2節はSchulmanの結果を「ヒューリスティックな規則(例:LoRAの学習率を10で割ってFFTの学習率を得る)」とだけ言及して通り過ぎます。代わりにμAがやっているのは迂回です — 比を説明する代わりに、比が1になる設定を見つけるのです。

迂回路 — LoRAからFFTへ学習率をそのまま移す

Init[B] + α = 1がその設定です。論文の論理はこうです。この設定に必要な学習率はη ∝ n^(-1)、線形層のFFTに必要な学習率もη ∝ n^(-1)。幅のスケーリングが同じなので最適学習率がそろい得るし、そろうならLoRAでチューニングした学習率をFFTにそのまま使えます。

実験はこの予測をおおむね支持します。論文5.2節の表現をそのまま移すと — ほとんどのモデルで、Init[B] (α=1)の最適学習率がFFTの最適学習率と近接してそろいます。例外はRoBERTa-largeで、FFTがInit[B]よりわずかに小さい学習率を好みました。論文はこれを、追加された分類ヘッドのせいだとしています — ヘッドの学習率は10の-3乗に固定していますが、アダプタと一緒に学習されることで最適点を揺らしうる、というわけです。

著者らが提案する実務ワークフローはここから出てきます。GRPOでLlama-3.1-8BをGSM8kに合わせたRLVR実験では、FFTはLoRA(r=256)よりGPUメモリを2倍以上使い、その超過分の大半が勾配バッファとオプティマイザ状態でした(同じ実験でステップあたりの実時間は両者ほぼ同程度でした)。だから、比較的手に入りやすい中級GPUでInit[B] (α=1)を使って学習率を掃き、その値を大きなハードウェアのFFTへ移せば再チューニングのコストを節約できる — これが論文の売り物です。

ここで二つ、正直に指摘しておく必要があります。

第一に、論文6節の限界が念を押しています — この分析が立てたのは学習率転移の必要条件であり、十分条件を見つけて証明することは今後の課題です。幅のスケーリングが同じというのは「そろい得る」であって「そろう」ではありません。実験はそろいを示していますが、実験は実験にすぎません。

第二に、Init[B]はPEFTのデフォルトではありません。 v0.17.0のソースのreset_lora_parametersを見ると、デフォルト経路(init_lora_weights=True)はlora_Aにkaiming_uniform_、lora_Bにzeros_を入れます — つまりInit[A]です。しかも論文は、0でない側の因子にKaimingnormalを使い、Init[A]ではAの成分の分散を1/n、Init[B]ではBの成分の分散を1/rにそろえたと明かしています。PEFTのデフォルトはKaiming uniformです。まとめると、この論文の設定を再現するにはLoraConfigのフラグをいくつかいじるだけでは足りず、初期化コードを直接触る必要があります。

実験が実際に測ったもの、そして測らなかったもの

この部分が本稿でいちばん重要です。

何を回したか。 五つのSFT設定 — Llama-3.2-1B / Tulu-3 SFT混合(学習320k、検証32k、最大1024トークン)、Qwen2.5-3B-Instruct / OpenThoughts-114k(71k / 6k、8192トークンパッキング)、RoBERTa-large / ANLI(163k / 3k)、ViT-Huge/14 / ImageNet-1K(1.28M / 50k)、Qwen3-VL-2B-Instruct / LLaVA-Instruct-Mix(198k / 17k)。これに加えてRLVRでLlama-3.1-8B / GSM8k(GRPOのDAPO変種)、そして拡散モデルとしてStable Diffusion v1.5 / Naruto-BLIP-Captions(1.2kペア、10,000ステップ)。ハードウェアはH200 4枚のノード。言語・視覚・視覚言語・画像生成・強化学習をすべて網羅しているという点で、カバレッジは確かに広いです。

ですが統計はこうです。

  • 論文付録B.1: 「ランダムシードはすべての実験で42に設定する」。 シードは一つです。信頼区間も、誤差棒も、シード間の分散も報告されていません。
  • 学習率グリッドはlog2スケールで整数指数のみ、つまり隣接点が2倍差です。報告される「最適点」は、この離散グリッド上での最良値です。
  • rankは設定あたり5個しかありません。Init[A]は4、16、64、256、1024。Init[B]はSFTで16、32、64、128、256。RLVRと拡散モデルのInit[A]は1、4、16、64、256。
  • RLVR学習はGSM8kから問題500問(テスト50問)を抜き出して使います。

論文5.1節がこの限界を自ら書き記しています。スケーリング規則は(n, r) → ∞の先行項依存であり、有限な幅とrankでは定数項と低次項が最適点を押しうる — その影響は小さいrankほど大きい。そして「損失地形が最適点付近で平坦であれば、隣接するグリッド点の性能が似通うため、どちらが最良に見えるかは学習ノイズが決めうる」。 だから著者らは、正確な数値の一致ではなく定性的な傾向で評価すると宣言しています — rank無関係が予測される設定は、最適点がグリッド一マス(2倍)の中に収まれば合格、rank依存の設定は最適点がrankに応じて単調に動き、複数のグリッド点にまたがれば合格。

つまりこの論文の「rank無関係」は「シード一つで、2倍間隔グリッドの一マスの中」という意味です。 有用な主張ではありますが、精密な主張ではありません。そして論文はこれを隠していません — 隠していないことこそがこの論文の美点です。

論文が自ら報告しているズレもあります。 Qwen2.5-3B-InstructのInit[A] (α=1)では、r=16とr=64が同じ学習率で最小損失を出しました(予測では異なるはず)。論文はグリッドの離散化のせいだとしています。そしてInit[A] (α = rの-1乗)では、小さいrank(r=4)が大きいrankよりわずかに小さい学習率を好みましたが、これはα=1で観測された傾向と逆方向です。論文は有限サイズ効果として説明しています。どちらの説明も事後的だという点は指摘に値します。

そして、この論文が測らなかったもの。 これは「LoRAがFFTと同じくらいうまくいく」という論文ではありません。 測っている対象は最適学習率がどこに位置するかであって、LoRAがFFTの最終損失に到達するかではありません。学習率スイープのU字曲線の底の位置を扱っているのであって、底の深さを主張してはいません。RLVR付録D.1で「rankが違っても最高性能は似ている」と観察し、Schulmanと一致すると書いている箇所くらいが例外ですが、これは付随的な観察であってこの論文の主張ではありません。LoRAがいつFFTに劣るかは、依然としてLoRA Learns Less and Forgets Less(Bidermanら、TMLR 2024)のような別の根拠を見る必要があります — こちらは、プログラミングと数学のドメインで標準的な低ランク設定のLoRAがフルファインチューニングにかなり劣るものの、対象ドメイン外の性能はより良く保つと報告しています。

もう一つ。デコーダのみのLMでは、LoRAをMLPにのみ(gate_proj、up_proj、down_proj)付けています。これは欠陥というより現在のベストプラクティスと一致しています — Schulmanのブログは、アテンションのみのLoRAがMLPのみより明確に劣り、MLPの上にアテンションを足しても得はないと報告しており、Bidermanらも同じ結果を得たと書いています。ただし、スケーリング規則が他の配置戦略でも成り立つかは、この実験は答えていません。

幅のスケーリングで二つの結果が食い違う

ここは私が二つの出典を並べて読んだ結果であり、どちらの論文もこの点で相手を扱っていないことを先に断っておきます。

Schulmanの設定はμA座標でInit[A]、α ∝ rの-1乗です。μAの表1はそのマスでη ∝ n^(-1/2)を与えます。そしてμAの定理A.23は、FFTがη ∝ n^(-1)だと言います。二つを割ると、LoRA/FFTの学習率比がnの1/2乗に比例するという予測が出てきます — つまりモデルが広くなるほど比が大きくなるはずです。

ところがSchulmanのフィット結果は正反対です。14個のモデルについて最適化が見つけた値はLoRA pow = 0、つまりLoRAのhidden size依存はFullFTと同一で、倍率は9.8で固定です。

この二つはそのままでは合いません。ただし性急に「どちらかが間違っている」と言ってはいけない理由があります。

  • μAの理論は漸近的です。論文6節の限界が「我々の理論は漸近的であり、有限の(n, r)ではノイズに敏感になりうる」と直接書いています。
  • 計算してみると、nの1/2乗はhidden sizeが4倍広がって初めて比が2倍変わります。2倍はlog2グリッド上でちょうど一マスです。つまり、この予測された差は、どちらの研究の測定解像度でも捉えられない大きさかもしれません。
  • Schulmanのフィットは、Llama/Qwen系列ごとに別々の指数を立てているため、純粋な幅スケーリングの検定とみなすのも難しいところがあります。

正直な結論はこうです — この不一致を整理した数字は、まだ発表されていません。 μAは10倍規則を説明しませんし、Schulmanのフィットはμaの幅指数を検定するように設計されていません。誰かが二つの座標系をそろえたうえで、広いhidden size範囲を複数シードで掃く必要があります。その実験は、私の知る限り存在しません。

では実務では何をすべきか

1. まずα規約を確認してください。 これが本稿でいちばん安くて確実な収穫です。

lora_alphaを固定(32など) + use_rslora=False   ->  実効α ∝ r^(-1)
   => rankを変えても学習率は維持。(Schulmanが見た図)

lora_alpha = r または 2r                        ->  実効α = 定数
   => μAの予測: rankが4倍になるたびに学習率を半分に。

論文はαが2のときと4のときも同じスケーリングが保たれるかを付録C.1で確認しています。つまり「lora_alphaをrankに合わせて増やせ」というアドバイスに従った瞬間、一緒に従うべき学習率の規則があるのに、そのアドバイスには大抵それが抜けているということです。

2. FFTの学習率を安く見つけたいなら、Init[B] + α=1が候補です。ただし(a)必要条件にすぎず、(b)PEFTのデフォルトではないので初期化コードを自分で書く必要があり、(c)根拠はシード一つです。分類ヘッドが付くモデルでは論文自身がズレを報告しています。出発点として使いつつ、検証はしてください。

3. RLでは学習率の失敗が二重に高くつきます。 論文5.3節が観察しているのがこれです — SFTでは学習率が小さすぎても収束が遅くなるだけですが、RLVRでは大きすぎても小さすぎても学習報酬が大きく崩れます。しかも実時間まで余計にかかります。付録D.2の事例研究を見ると、最適学習率(2の-18乗)では、モデルが初期の探索区間(完成長が上限1024トークンに張り付く状態)を100ステップ前後で抜け出し、200トークン前後の簡潔な解法へ移行し、1ステップあたり4~5秒かかります。一方、準最適な学習率(2の-16乗)では探索区間に留まったまま最大長を出し続け、1ステップあたり15~22秒 — 3~5倍です。報酬は0近くまで崩壊します。著者らは逆方向の失敗も一つ書き残しています。Init[B]、α=1にもっと高い学習率(2の-15乗)を与えると、モデルが2トークンほど作って生成を止めてしまい、これもステップが速くなります。ステップが速くなったからといって喜んでよいわけではない、ということです。

これが要らないのはどんなときか。 rankを変える予定がなく、今のレシピが回っているなら、この論文はあなたに何も与えません。モデルとタスクが一つに固定されているなら、n, r → ∞の漸近規則より、すでに回したスイープのほうがましです。そして規則はすべてΘ(·)です — 指数を教えてくれるだけで、定数は教えてくれません。 どちらにせよ、基準点を決めるスイープを一度行うのは、依然としてあなたの仕事です。μAが減らしてくれるのは、そのスイープを何回繰り返すかであって、スイープそのものではありません。

おわりに

まとめるとこうです。「LoRAのrankを変えたら学習率を探し直す必要があるか」に対する2026年2月時点の答えは、「あなたのα規約次第」です。古典的な1/r規約なら変えなくてよく、lora_alphaをrankに合わせて増やす最近のやり方なら、rankが4倍になるたびに半分に下げる必要があります。そして、あまり使われないInit[B] + α = 1という設定では、最適学習率がフルファインチューニングと同じ幅スケーリングを持つため、LoRAでチューニングした値をFFTへ移すことが原理的に可能です。

同時に、この根拠の大きさも正確に把握しておく必要があります。シード42一つ、2倍間隔のグリッド、設定あたりrank5個、漸近理論、そして著者ら自身が明示した「必要条件にすぎない」という注記。著者らは、正確な数値の一致ではなく定性的な傾向で評価すると自ら宣言し、その基準はクリアしました。それ以上をこの論文から読み取ってはいけません。

そして、まだ誰にも分かっていないことが一つ残っています。Schulmanが観察した「LoRAの学習率はFullFTの10倍」は、依然として説明されていません。μAはその比を説明する代わりに、比が1になる座標系へ移動しました。実用的には十分賢い迂回策ですが、Schulmanの未解決の問いはそのまま開いたままです。LoRAは2021年から私たちが毎日使っている道具なのに、その学習率がなぜその値でなければならないのかは、2026年半ばになっても完全には説明されていません。

参考資料