Transformerは「考えるのを早すぎるタイミングでやめていた」——1層・6.5万パラメータのLoRAが深い推論を呼び覚ます
はじめに——15.5%が99%になる、たった0.01%の書き換え
結論から書きます。事前学習済みの Qwen3-8B に、24 行からなる参照チェーン——K = apple、B = K、D = B、…、最後に print(D) と並ぶだけの簡単なプログラム——を読ませて答えさせると、正解率は 15.5% でした。ところが、ここに 1 層ぶんの rank-8 LoRA を足すだけで正解率は 99% に跳ね上がります。学習したパラメータは 65,537 個、モデル全体の 0.01% 未満です。
xychart-beta
title "24行チェーンでの正確一致率"
x-axis ["凍結モデル", "1層LoRA適用"]
y-axis "正確一致率 (%)" 0 --> 100
bar [15.5, 99]
ここで強調したいのは、モデルの重みは 1 つも変更していないという点です。凍結したネットワークのまま、追加したのは低ランク行列 A・B とスカラー s だけ。もともと LoRA(Low-Rank Adaptation)は重み行列 W を W + BA と低ランクで更新する微調整手法ですが、ここでは少し違う形で、ある層の残差ストリーム h を h ← s·h + B·A·h に置き換える「表現への介入」として使います。学習するのは A・B・s のみで、トークン間の情報伝達はすべて元からある注意機構と MLP が担います。
なぜこれが驚きなのか。事前学習済みモデルは、参照を追う計算を原理的には実装できることが理論研究で示されています。それなのに実際の推論では、深さをほとんど使っていない。つまり能力が無いのではなく、引き出されていないのです。13 の標準モデル(0.6B〜32B)が確実に追える行数はわずか 1.4〜3.6 行、中央値で 2.2 行。層を 2 倍にしても改善せず、292B の MoE でも 4 行どまりでした。
ローカル LLM を動かしている人、LoRA/PEFT でモデルを調整している人にとって、これは実利的な話です。ヘッドラインの LoRA は A100 1 枚で学習・評価合わせて約 16 分、家庭用 GPU でも現実的な範囲で再現できます。
本記事の構成は次のとおりです。①なぜモデルは途中で考えるのをやめるのか ②何を足すと直るのか ③どこに足すと効くのか ④実タスクでも効くのか ⑤自分で試すには。順に見ていきます。
Transformerはなぜ「途中で考えるのをやめる」のか
参照チェーンという最小の推論タスク
まず、何を測っているのかを明確にします。実験に使われるのは「参照チェーン」と呼ばれるごく短いプログラムです。K = apple、B = K、D = B、print(D) という形で、各行が前の行で定義された変数を参照していきます。行数がそのままチェーンの長さ(=必要な計算の段数)になります。
ここで2つの用語を定義します。ある行の右辺に書かれた変数をポインタ、その変数を定義している行を親行と呼びます。このタスクが優れた実験台になるのは、知識の想起が一切不要で、純粋に合成(composition)だけを測れるからです。暗記では解けず、段数が増えるほど素直に難しくなります。
13モデルすべてが1.4〜3.6行で止まる
Qwen3・Llama・OLMo-3・Gemma-3 系の13モデル(0.6B〜32B)を調べると、確実に追える行数は 1.4〜3.6行(中央値2.2行) でした。決定的なのは、深さを増やしても効かないという証拠です。OLMo-3-32B は OLMo-3-7B の2倍の層(64層 vs 32層)を持つのに、どちらも約2.6行。292B の MoE である DeepSeek-V4-Flash でも4.0行、6行ではほぼ当てずっぽう(42% 対 チャンス33%)です。
| モデル | 層数 | 確実に追える行数 |
|---|---|---|
| Llama-3.2-1B | 16 | 1.4 |
| Qwen3-8B | 36 | 3.1 |
| Gemma-3-12B | 48 | 3.4 |
| OLMo-3-32B | 64 | 2.6 |
| DeepSeek-V4-Flash | 292B MoE | 4.0 |
Qwen3-8B の選択正答率を見ると、3行で83.5%、4行で54%、5行で41.5%と急落します。能力の壁というより、あと1〜2行で計算が尽きるような振る舞いです。
ループを増やしても、同じ短い計算を繰り返すだけ
同じ層を繰り返し通す「ループ型モデル」なら計算量を増やせるはずです。しかし Ouro-1.4B(24層×4ループ)の到達行数は1〜5ループで 0、1.6、2.3、2.2、2.2行 と、2ループ目でわずかに伸びた後はほぼ横ばい。層数を倍にした Ouro-2.6B でも同じパターン(0、1.8、2.4、2.5、2.7行)でした。解いた例を見せる few-shot を与えても出力形式は劇的に改善するのに、到達行数は3.3行で止まります。ボトルネックは深さでも繰り返し回数でもない、別の場所にあります。
止まる場所を特定する——「クエリがポインタを読む」計算の寿命
因果追跡(causal tracing)で、根の名詞を差し替えたりポインタを付け替えたりして、その効果が層ごとにどこまで残るかを測ります。見えてきたのは、各行が自分のチェーン帰属を2〜3行ぶんしか次に渡せないという事実です。足りない分を、答えを出すクエリ(print(D) の行)が自分でポインタを1〜2個余分に解決し、遅い層が値をコピーして埋め合わせています。
ポインタを読み取る「幅」は、効果が90%から10%に落ちるまでの層数で測ると 7.1±1.4層。16〜64層のモデル間でほぼ一定で、深さに比例しません。「読み取り可能行」という指標——各行のポインタ状態から線形読み出しでチェーン帰属を75%精度で当てられる最長プレフィックス——でも、凍結した Qwen3-8B は4行で停止、13モデル全体でも3〜5行でした。
flowchart LR
A["行1"] --> B["行2"] --> C["行3"] --> D["行4"]
D -.->|"計算が尽きる"| E["クエリ<br/>print(D)"]
E -->|"残りを自分で解決"| F["答え"]
たった1層のLoRAが何を変えるのか
介入の正体——残差ストリームに足す rank-8 の写像
LoRA(Low-Rank Adaptation)は、もともと重み行列 W を W + BA と低ランクの更新で近似する手法です。ここでは少し違う形で使います。層の入力で残差ストリーム h を
h ← s·h + B·A·h
に置き換えます。A は 8×n、B は n×8、s はスカラーで、バイアスはありません。学習するのは A・B・s の3つだけです。これは重みの微調整ではなく、表現そのものへの介入(ReFT の DiReFT 形式に相当)と位置づけられます。トークンごとに独立に作用し、トークン間の通信はすべて凍結された注意機構と MLP が担います。
学習は AdamW、学習率 1e-3、勾配クリップ 1、1,200 ステップ、バッチ 16、チェーン長 20 行まで。損失は答えの交差エントロピーに WikiText-103 上の KL 項を加えたものです。学んだスカラー s は 1.0006、1.004 などいずれも 1% 以内に収まり、全体を大きく作り変えたのではなく、ごく薄い方向づけを加えただけだと分かります。学習パラメータ数は Qwen3-8B で 65,537(モデル全体の 0.01% 未満)、Ouro-1.4B で 32,769、Huginn で 84,481 です。
数字が示す効果——24行で99%、50行まで到達
効果は劇的です。Qwen3-8B では、この小さな介入を1層に入れるだけで正確一致率が跳ね上がります。
| チェーン長 | 凍結時 | 1層 LoRA |
|---|---|---|
| 16 行 | 15.5% | 98.5% |
| 20 行 | 14.5% | 98.0% |
| 24 行 | 15.5% | 99.0% |
24 行の結果は200問中198問正解(95% Wilson 区間 96.4〜99.7%)で、別サンプル・別シードでも 94.7〜97.5% と安定しています。より長く学習した LoRA なら 40 行で 98%、48 行で 88%(凍結時は 4% と 9%)に達し、到達行数は 50 行に届きます。行をインターリーブ(複数チェーンを混ぜる)すると 24 行で 76.5%、3 チェーンにすると 16 行で 58.0% と難易度は上がりますが、いずれも凍結より大幅に高い水準です。
広がりも確認されています。Llama-3.2-3B、Qwen3-4B、Llama-3.1-8B、OLMo-3-7B、Qwen3-8B、Gemma-3-12B、Qwen3-14B、OLMo-3-32B の8モデルで 24 行以上。小さい側では Qwen3-1.7B が 22 行、Qwen3-0.6B が 13 行、Llama-3.2-1B が 6 行です。
ループ型モデルでは「ループが効くようになる」
ここが最も実利的なポイントです。同じ層を繰り返し通すループ型モデルでは、凍結時に効かなかったループが、LoRA を入れると計算を伸ばすようになります。Ouro-1.4B は標準 LoRA で1・2・3ループ後に 1.9・7.1・17 行、4ループで 24 行の全長を解きます。長めに学習した版では 4ループ 60 行、6ループ約 146 行、8ループで 160 行以上(160 行の正答率 87%)に達し、これは最長学習チェーンの4倍の長さです。
ただし万能ではありません。学習したループ数を大きく超えると到達が落ちます(12ループでは低下)。これは推論モデルで知られる「考えすぎ(overthinking)」に対応する現象です。Huginn も同様で、8再帰で 31 行、16再帰で 58 行に達した後、32・64再帰では 30・13 行に低下します。両ファミリーとも学習時の再帰回数の約2倍でピークを打つという共通点があります。
さらに興味深いのは、1ループ目にだけ LoRA を入れても、後続の未改変ループが計算を続けるという事実です(2ループ 9.5 行、3ループ 21.5 行、4〜8ループで 24〜26 行)。拡張された計算が、介入した層ではなく凍結層に宿っていることを示す強い証拠です。
flowchart LR
L["LoRA<br/>(1ループ目のみ)"] --> R1["ループ1"]
R1 --> R2["ループ2<br/>9.5行"]
R2 --> R3["ループ3<br/>21.5行"]
R3 --> R4["ループ4以上<br/>24〜26行"]
標準モデルの「中間層を再実行する」という使い方
標準モデルでも、計算を繰り返す使い方ができます。Qwen3-8B の層 14〜22 をもう一度通し、各再入時に LoRA を適用すると、64 行の正確一致率が1パスで 34%、1回再入で 66%、2回再入で 92% に達します(凍結は 10%)。リレーが進むのに必要な「時間」を、モデルの一部を繰り返し走らせることで与えているわけです。パラメータを増やさずに実効的な計算量を伸ばす手段として有用です。
flowchart LR
A["層14〜22"] --> B["層23〜36"]
B --> C["層14〜22<br/>(再入 + LoRA)"]
C --> D["層23〜36"]
D --> E["出力"]
同じ場所なら別の介入でも効く
最も重要な設計原則は「形よりも場所」です。層 14 では、4種類の異なる介入がすべてチェーンを伸ばします。24 行・2チェーン・200問での比較は次の通りです。
| 介入手法 | パラメータ数 | 正確一致率 |
|---|---|---|
| 残差ストリーム LoRA | 66K | 96.5% |
| 全7射影への射影 LoRA | 606K | 90.0% |
| FLAS 系低ランクフロー 3ステップ | 66K | 94.0% |
| FLAS フローブロック 1ステップ | 168M | 95.5% |
対照的に、同じ4つを層 26 に置くとすべて 50% 前後(2択のチャンスレベル)に落ちます。パラメータ数や手法の種類は支配要因ではありません。「まだ有効な中間層計算が後ろに残っているか」が効果を決めています。
「リレー」の仕組み——中間層で何が起きているのか
前節で見た「1層のLoRAがチェーンを24行まで伸ばす」という結果は、魔法ではありません。中間層で実際に起きているのは、各行が自分のチェーン帰属を、ずっと先の行まで手渡しで運ぶという、ごく素直な計算です。ここでは因果追跡・注意の遮断・線形プローブという3種類の観測から、その「リレー」の実体を順に確かめていきます。
各行がチェーン帰属を次へ次へと手渡す
リレーが走る区間は驚くほど短い。Qwen3-8B では層16〜22、ループ型の Ouro-1.4B では各ループの層7〜15、Huginn では再帰コアの最後の2層だけです。この短い区間で、各行は「自分がどのチェーンに属するか」という情報を次の行へ受け渡します。
数値で見ると、LoRA ありの Qwen3-8B は層16〜22の出力で「読み取り可能行」(後段の線形読み出しでチェーン帰属を75%精度で当てられる最長の行数)が 5、6、6、8、9、13、16 と段階的に伸びていきます。凍結版は層17で4行に達したところで止まります。
因果的な裏づけもあります。行2のポインタを付け替えて元の状態を復元すると、その効果はより後ろの行へ、そして最後にクエリ行へと順に回復します(クエリでは層25以降で半分以上が戻る)。つまり拡張された計算は、答えを出す層に届く前に、まずプログラム内部で運ばれているのです。
flowchart LR
A["行1"] --> B["行2"] --> C["行3"] --> D["…"] --> Q["print(D)"]
subgraph F["凍結: 層17で4行に停止"]
A2["矢印が途中で途切れる"]
end
注意が届く距離が少しずつ伸びる
リレーの実体は注意の到達距離です。ある行のポインタから「同じチェーンの j 行前」への注意の強さから、「別チェーンの対応行」への注意を引いた差を測ると、リレーがどこまで進んだかが分かります。
LoRA なしでは、親行(ポインタが指す1つ前の行)への注意だけがチェーンを識別できます。LoRA ありになると、Qwen3-8B は層16〜18で2行前、層19〜22で3、4、6、7行前へと距離を伸ばします。Ouro は4ループを通じて1、2、4、5行前、Huginn は8再帰で1、1、2、2、3、4、5、5行前です。
重要なのは、これがポインタ・ダブリング(距離が倍々に伸びる理論的な構成)ではないという点です。観測される距離は1〜2ずつ増え、注意は複数の行に重なって分配されます。Qwen の層ごとの前進は2、1、0、2、1、4、3行で、リレーは1層あたり最大でも注意が届く距離しか進みません。
親行への注意を切るとリレーが止まる
リレーが本当に「親行を読む」計算なのかは、その注意を遮断すれば分かります。Qwen3-8B の層14〜22で、各行から親行への注意を切ると、6・8・12行の正答率が 53%・48%・55%(チャンス 50%)まで落ちます。一方、同じ切断をリレーの後ろにあたる層23〜29で行っても 100%・100%・98% のままです。Ouro でも親行への注意を切るとリレーが停止し、2行以上前への注意を切ると3ループの到達が 17.8行から 9.4行へ低下します。
ヘッド単位でも同じ結論が出ます。Qwen3-8B で親行を読む10ヘッドを除くと16行の正答率が 89%→53% に落ちるのに対し、同層からランダムに10ヘッドを除いても83%が残ります。より遠くを読む8ヘッドを除くと65%(ランダム8ヘッドなら90%)です。
ここで見落とせないのは、そのヘッドは元から存在していたという点です。凍結時に親行しか読んでいなかったヘッドが、LoRA によって長い読みを引き受けます。Ouro では層12のヘッド6などが、凍結時0.02以下だった遠距離注意を0.78〜1.06まで伸ばします。
名前が先に届き、その名前で行を探す
さらに興味深いのは、情報の届く順序です。各行のポインタ状態から「何行前の変数名が復元できるか」を線形プローブで測ると、Qwen3-8B では LoRA ありで3〜7行前の名前が層17〜23で距離順に読めます(精度0.41から0.14、チャンスは0.03)。Ouro では親行への注意を切ると、4行前の名前の復号が0.29から0.18に落ち、1ループ目の水準(0.13)に近づきます。
| モデル | 復元できる距離 | 精度の推移 | チャンス |
|---|---|---|---|
| Qwen3-8B(LoRA) | 3〜7行前 | 0.41 → 0.14 | 0.03 |
| Qwen3-8B(凍結) | 2行まで | 0.19 以下 | 0.03 |
| Ouro(親行カット) | 4行前 | 0.29 → 0.18 | 0.02 |
解釈はこうです。親行への注意が変数名をチェーンに沿って運び、その名前を使って各行が自分のチェーンのより上流の行を見つける。名前が先に届き、チェーン帰属は後から確定し、確定すると名前は薄れていきます。
そして、この能力は LoRA より前に学習されています。同じ手順の LoRA を OLMo-3 の事前学習チェックポイントに当てると、到達行数は 84B トークン時点で10.2行、336B トークン時点で23.7行に伸びます(凍結は常に2行未満)。ゼロから訓練した小さなループ型 Transformer も同じ関係を学び、165層ステップ中108でリレーの前進が注意距離と一致しました。モデルは合成の手順そのものを、事前学習の過程ですでに獲得しているのです。
どこに付けると効くのか——配置の限界
ここまでの話を「1層のLoRAを入れればチェーンが伸びる」とだけ受け取ると、実務では大きく外します。実際に効くかどうかを決めるのは、rankでもパラメータ数でも学習ステップ数でもなく、LoRAをどの層に入れるかです。しかも、その許容範囲は思ったよりずっと狭い。この節では「崖」と呼ばれる急激な限界、それを事前に予測する方法、そしてループ型モデルに固有の事情を順に見ていきます。
1層ずれると効果が消える「崖」
rank・学習データ・最適化の設定を一切変えず、Qwen3-8B のLoRAを層20から層21へ移すだけで、到達行数は 20.5行から5.2行へと落ちます。学習シードを変えても21.76行→6.49行と、同じ崖が再現します。
| モデル | 配置の変化 | 到達行数の変化 |
|---|---|---|
| Qwen3-8B(36層) | 層20 → 層21 | 20.5 → 5.2 行 |
| OLMo-3-7B(32層) | 層12 → 層15 | 21.5 → 6.6 行 |
| Llama-3.1-8B(32層) | 層13 → 層15 | 16.6 → 2.9 行 |
理由は単純です。リレーを始められるのは、そのあとに有効な中間層計算が残っている場合だけです。早期に始まったリレーは残りの層をフルに使ってチェーンを運べますが、遅すぎる開始はリレーそのものを起こせません。注意パターンにもそれが表れます。層20のLoRAは遠くの行への注意を伸ばしますが、層21では注意が親行の付近に留まり、リレーが始まりません。一方、一度始まった計算は遅い層でも継続できます。始められるかどうかは配置で決まり、続けられるかどうかは残りの計算量で決まる、と整理すると分かりやすいでしょう。
凍結モデルの測定から配置を予測する
では、効く層をどうやって当てるのか。鍵になるのがカットオフ層という指標です。凍結モデルに3行・3チェーンのプログラムを解かせ、ポインタの元トークンを復元しても効果が半分未満しか戻らない最初の層、と定義します。Qwen3-8B では 20.5層で、これは先ほどの崖の位置(層20と21の境界)と一致します。
ここで評価したいのは、この指標が事前に当たるかどうかです。4つのモデルをホールドアウトし、基準を固定してから測定する事前登録の形で検証されました。結果は4モデル中3モデルで成功(Llama-3.2-1B、Qwen3-4B、Gemma-3-12B)、外したのはOLMo-3-32Bで5層のずれでした。平均絶対誤差は2.25層で、「深さの45%」という単純なルール(3.45層)や「値コピー層−11.5」(3.37層)より精度が高い水準です。
ただし、これを過信してはいけません。9モデル全体で見ると誤差は2.22層で、事後的に作った「深さの48%」ルールの2.27層とほぼ同等です。カットオフ層は「だいたいこのあたり」を示す出発点にすぎず、最終的にはその周辺を1層ずつ局所スイープして崖の位置を確定する必要があります。
ループ型モデルでは「次のループ」が中間層を供給する
ループ型モデルでは、配置の考え方が少し変わります。同じ層を繰り返し通す構造では、次のループの中間層が、前のループで置いた介入の「後ろ」に来るからです。
Ouro-1.4B の層20にLoRAを入れると、1ループ目では何も起きませんが、2・3・4ループで 4.2行、12.3行、24行以上へと伸びます。層6に入れた場合は7.1行、17行、24行以上で、進み方が半ループから1ループぶん遅れるだけです。
決定的なのは「最後のループにだけLoRAを入れる」という対照実験です。層6なら4ループで21.6行に達するのに対し、層20は 2.6行(凍結時は2.5行)でほぼ無効になります。さらにOuro-2.6Bでは、層24の後ろにまだ24層も残っているのに、最終ループ限定では4.7行(凍結2.6行)にとどまり、中間域の層12なら9.6行に達します。
flowchart TD
A["LoRAを置く層を決める"] --> B{"介入のあとに<br/>有効な中間層計算が残っているか?"}
B -->|"残っている"| C["リレーが始まる"]
B -->|"残っていない"| D["チャンスレベルに留まる"]
C --> E["後続の凍結層が計算を運ぶ"]
E --> F["到達行数が伸びる"]
ここから導かれる結論は一言です。重要なのは「後ろに何層残っているか」ではなく「有効な中間層計算が介入の後ろに残っているか」。ループ型を扱うときは、層数ではなくループの切れ目を基準に配置を考えてください。
実タスクでも効くのか——多段ホップ質問応答
参照チェーンの話は分かりやすい半面、「結局それは人工的なパズルで、実用的な質問応答には関係ないのでは」という疑問が残ります。ここでは、同じ1層LoRAが多段ホップ質問応答(multi-hop QA)——複数の事実を組み合わせないと答えられない質問——でも効くかどうかを確かめた結果を紹介します。結論を先に言えば、効きます。しかも、効く層の位置は参照チェーンで見えた規則とほぼ同じです。
統制された設定——架空の事実による多段ホップ
まず、外部知識の記憶を完全に排除した設定で検証します。変数の代入を、架空の人物・場所・作品・組織に関する型付きの事実に置き換え、それらの関係を合成して答えさせる質問を作ります。妨害用のチェーンも同じ関係を共有するので、「知っていたから当たった」という言い訳が通りません。純粋に関係の合成だけを測る課題です。
Qwen3-8B の層14に入れたLoRA(2〜5ホップで訓練)は、500問の正確一致率を 41.2% から 97.4% へ押し上げます(+56.2ポイント、95%区間 51.8〜60.6)。ホップ数別に見ると、凍結時は2ホップで81%、5ホップで26%まで落ちますが、LoRA適用後はどのホップ数でも99〜100%です。さらに、訓練に含めていない6ホップの質問でも 23% → 88% に達します。覚えたのではなく、合成の手順そのものが使えるようになったと考えられます。
ループ型モデルでも同じです。Ouro-1.4B を1〜4ホップで訓練すると、4ループで確実に答えられる範囲が2ホップから6ホップへ広がり、6〜8ループでは8ホップを91〜92%で答えます。これは学習時のホップ数の2倍にあたります。
MuSiQue——実ベンチマークでも早期層が効く
次に、実際の多段ホップQAデータセットである MuSiQue(単一ホップの質問を合成して作られたベンチマーク、Trivedi ら 2022)で検証します。ゴールド段落つきの900問、同一プロンプト、ペア付き95%ブートストラップ区間という条件で、層ごとにLoRAを入れ替えて比較しました。
| モデル | 凍結時の精度 | 最良層の利得 | 遅い層の利得 |
|---|---|---|---|
| Qwen3-8B | 52.9% | 層6 で +11.4 | 層30 で −1.6 |
| OLMo-3-7B | 54.4% | 層4 で +9.4 | 層24 で −3.8 |
| Llama-3.1-8B | 46.8% | 層4 で +17.9 | 層24 で +0.6 |
最も早いテスト層のLoRAだけで、Qwen3-8B が +11.4、OLMo-3-7B が +9.4、Llama-3.1-8B が +17.9 ポイント改善します。Qwen3-8B では層6が層30を13.0ポイント上回る(区間 10.1〜16.0)。一方、遅い層はほぼ無効です(層26で +0.3、層30で −1.6)。
これはパラメータ数の問題ではありません。Qwen3-8B を9層ずつ4分割した射影LoRAの利得は前から順に +9.0、+9.4、+4.9、−3.1 で、前半と後半の差は5.1ポイント(区間 2.7〜7.5)です。同じだけパラメータを使っても、前に入れれば効き、後ろに入れれば効かないという配置の効果が、実ベンチマークでもそのまま出ています。
flowchart LR
A["多段ホップ QA"] --> B["早期層の LoRA"]
A --> C["中〜後半層の LoRA"]
B --> D["リレーが走る<br/>利得 +9〜+18 ポイント"]
C --> E["リレーが始まらない<br/>利得 ≈ 0〜マイナス"]
制御実験も押さえておきます。単一ホップの SQuAD で同じ手順のLoRAを訓練しても、MuSiQue は改善しません(−2.3ポイント)。答え方の形式を覚えただけではない、という確認です。ただし正直に書くと、Llama-3.1-8B は参照チェーン上の限界(層13〜15)を越えた層16でも +10.1 を保ちます。ベンチマークでは有効域が多少広がることもあります。
効率の観点——6.5万パラメータで全層適応の大半を回収する
最後にコストの話です。Qwen3-8B の層14のLoRAは 65,537パラメータで、全層の射影にLoRAを入れた場合(2,180万パラメータ)の利得の約4分の3を回収します。同じ層に置いた4,097パラメータのステアリングベクトルでも +7.8 と、LoRAとの差は1.5ポイントしかありません。同じ層のフロー系介入も +9.4 や +9.3 と同水準です。
Ouro-1.4B でも傾向は同じで、層6のLoRAは4ループで 48.3% → 60.0% に達し、層20の +7.0 を8.7ポイント上回ります。「最後のループにだけ入れる」条件でも層6は +6.3、層20は −1.3 です。ここから得られる実務的な含意は明快です。適応すべきは「全部の層」ではなく「正しい数層」。ローカル環境で学習コストを抑えたいなら、まず中間層の数点を試すところから始めるのが合理的です。
この研究が変える「モデルの評価」の常識
ここまでの結果は、個々のテクニックの話にとどまらず、モデルの能力をどう測るかという前提そのものに疑問を投げかけます。
「デフォルトの答え」は能力の下限にすぎない
この研究の中心的な主張は明快です。間違った直接回答や、ループ回数を増やしても伸びない挙動は、重みが合成を実行できない証拠にはならない、というものです。凍結したQwen3-8Bが24行の参照チェーンで15.5%しか正解できないのは、計算できないからではありません。層16〜22という特定の区間で「リレー」が続かず、計算を最後まで運べていないだけです。同じ重みのまま、層14の残差ストリームにrank-8のLoRA(学習パラメータ65,537個、全体の0.01%未満)を足すと正解率は99%になります。
つまりベンチマークで観測されるスコアは、潜在能力ではなくデフォルトの挙動を測っているにすぎません。13モデルすべてが1.4〜3.6行(中央値2.2行)で止まるという結果も、能力の上限ではなく「何も手を加えなければそこで止まる」という運用上の性質です。
だからこそ、あるタスクで「このモデルは無理だ」と結論する前に、デフォルトの挙動と、介入のもとで引き出せる計算を分けて測る必要があります。ローカルLLMの評価なら、1層のLoRAやステアリングベクトル(4,097パラメータで+7.8ポイント)を試すだけで天井が動かないかを確認する価値があります。測定コストはA100 1枚で約16分、家庭用GPUでも圏内です。
適応設計への含意——「どこを変えるか」が「何を変えるか」より重要
二つ目の含意は適応設計の原則です。配置が、その変更のあとに続けられる有用な計算を決める。同じrank、同じデータ、同じ最適化でも、Qwen3-8BのLoRAを層20から層21へ1層ずらすだけで到達行数が20.5行から5.2行へ落ちます。一方、層14では残差ストリームLoRA(66K)も射影LoRA(606K)もフロー系の介入(168M)も90〜96%に到達します。手法の種類やパラメータ数よりも、置く場所が支配要因です。
flowchart TD
A["適応を入れる層を選ぶ"] --> B{"その層の後ろに<br/>有効な中間層計算が残っているか"}
B -- ある --> C["リレーが始まり<br/>後続層が計算を運ぶ"]
B -- ない --> D["リレーが始まらない<br/>利得はほぼゼロ"]
C --> E["到達行数が伸びる"]
D --> F["デフォルトと変わらない"]
推論側にも同じ原則が当てはまります。Qwen3-8Bの層14〜22を再入させると、64行の正解率は1パス34%、1回の再入で66%、2回で92%に達します。計算を運ぶ層を繰り返すことが、パラメータを増やさずに実効的な計算量を伸ばす手段になるわけです。
実践の指針は3点です。①まず中間層の候補を数点スイープして崖の位置を探す ②あとは前後1〜2層を細かく見る ③常に「後ろに有効な層が残っているか」を意識する。配置の予測は完璧ではなく、ホールドアウトした4モデル中3モデルで当たり、外した例では5層ずれました。カットオフ層の見積もりは出発点として使い、最終的には局所スイープで確定させるのが現実的です。
自分で試すには——コード・計算資源・再現の勘所
ここまでの話を「読んで面白かった」で終わらせず、自分の手元で確かめたい人のために、公開されている道具立てと現実的な進め方を整理します。
公開されているもの
研究の成果物は広く公開されています。対話的に触れるデモ付きのプロジェクトページ、Apache License 2.0 で配布されているGitHubリポジトリ、そして英語と中国語の解説動画の2本です。リポジトリには REPRODUCE.md が含まれており、論文のどの主張がどのスクリプトに対応するかが明記されています。再現実験でいちばん時間を食うのは「どの数値をどのコマンドで出したのか」を探す作業なので、この対応表があるだけで検証のハードルは大きく下がります。
計算資源の目安
いちばんの心配どころは「自分のGPUで回るのか」でしょう。ヘッドラインとなるQwen3-8Bの層14へのLoRA(rank-8、学習パラメータ65,537個)は、A100を1枚使って学習と評価を合わせて約16分です。A100がなくても、Qwen3-0.6B〜4BやLlama-3.2-1B〜3Bといった小さいモデルなら家庭用GPUでも十分に現実的な範囲です。ただし到達できる行数はモデルサイズで変わります。Qwen3-0.6Bなら13行、Llama-3.2-1Bなら6行、Qwen3-1.7Bなら22行、Qwen3-4B以上なら24行以上が目安です。
実行の要点
ヘッドラインの実験は、標準モデル用のスクリプト e19_reentry.py にモデル名 Qwen/Qwen3-8B-Base、層の範囲(バンド)14:23、rank 8、2チェーン、学習時のチェーン長20行、1,200ステップ、テキストKL項の重み1.0を渡して実行します。コードの内部では、1層への介入は「map」という名前で扱われます。
環境構築では注意点があります。標準モデル用とループ型モデル用(Ouro・Huginn)ではPythonのバージョンと依存関係が異なり、それぞれ3.12系と3.11系の仮想環境を分けて用意します。モデルのダウンロードキャッシュが大きくなるので、HF_HOME を容量のある場所に設定しておくと安全です。
テキスト品質の確認
「多段推論は良くなったが、文章が壊れていないか」は必ず気になる点です。学習時には、凍結モデルの予測から離れすぎないようにKL項で制約をかけています。実際、WikiText-103でのperplexityはQwen3-8Bで10.14から10.148へ、Ouro-1.4B(4ループ)で13.294から13.302へとほとんど動きません。ただしこれは測定された範囲での統制であって、あらゆる挙動を保証するものではありません。自分の用途に使うなら、対象タスク以外の出力も必ず目で確認してください。
最短の検証ループ
最初から長いチェーンや大きなモデルで挑む必要はありません。まず8〜12行程度の短いチェーンで1層のLoRAを学習し、到達行数が伸びるかを確かめます。伸びなければ層を変える。この往復がもっとも短い検証サイクルです。
flowchart LR
A["環境構築<br/>標準/ループ型で分ける"] --> B["短いチェーンで<br/>1層LoRAを学習"]
B --> C{"到達行数が伸びたか"}
C -- いいえ --> D["層を変えて再試行"]
D --> C
C -- はい --> E["層を数点スイープして<br/>崖の位置を特定"]
E --> F["本番タスクのLoRAを訓練"]
F --> G["必要なら再入で<br/>計算量を追加"]
まず中間層の候補を数点スイープして到達が急落する「崖」の位置を掴み、そのあと前後1〜2層を細かく見る。この順番なら、少ない試行回数で有効な配置にたどり着けます。
限界と、まだ分かっていないこと
ここまでの結果は「1層のLoRAで推論の届く範囲が大きく変わる」という強い主張ですが、そのまま一般論に拡張するのは危険です。著者自身が明示している限界と、未解決の問いを整理します。
証拠の届く範囲は限られている
機構の分析——リレーがどの層で走るか、親行への注意が必須か、名前が先に届くか——は、すべて合成的で文脈内のタスクで行われています。参照チェーンや架空の事実による多段ホップは、外部知識の記憶を排除できる代わりに、現実の推論よりはるかに統制された設定です。実ベンチマークのMuSiQueはどの層に入れると効くかという配置の証拠は与えますが、同じリレー機構がそこで動いていることの直接証拠ではありません。しかも主要な設定はゴールド段落つきで、検索段階を含む現実的なパイプラインとは条件が異なります。
層単位の追跡もQwen3-8BとOuro-1.4Bに集中しています。ループ型の検証はOuroとHuginnの2ファミリーのみで、Ouro-2.6BはOuro-1.4Bの派生です。ここで見つかった「層16〜22でリレーが走る」といった具体的な区間が、他のアーキテクチャでどこまで同じ形をとるかは確定していません。
| 限界 | 内容 |
|---|---|
| タスクの性質 | 機構の分析は合成的・文脈内タスクに限定。MuSiQueは配置の証拠であり機構の直接証拠ではない |
| 対象モデル | 詳細追跡はQwen3-8BとOuro-1.4Bに集中。ループ型は2ファミリーのみ |
| 適応のコスト | LoRAはタスク形式ごとに訓練が必要 |
| 配置予測の精度 | 平均絶対誤差 2.2 層程度で、事前情報として控えめ |
| 長時間の挙動 | 「1ループ目のみで十分」は約25行までしか確認されていない |
| 機構の特定 | 学んだルーティング方向と最小必要ランクは未特定 |
統制は「保証」ではない
テキスト品質について、WikiText-103のperplexityがほとんど動かないことは確認されていますが、これは測定した範囲での統制にすぎず、あらゆる入力で文章が壊れない保証ではありません。配置予測の精度も平均絶対誤差2.2層程度で、事後的に作った「深さの48%」という単純なルールとほぼ同等です。予測は出発点と捉え、その周辺を局所的にスイープする前提で使うべきものです。
また、最長チェーンでのループ型の結果は、レベル順(深さごとにグループ化した語順)かつ全ループにLoRAを適用するという条件つきです。インターリーブ順や一部のループだけの適用でどこまで同じ到達が出るかは確認されていません。
因果テストが示せないこと
親行への注意を切るとリレーが止まる、という結果は因果の強い証拠です。ただし因果テストは「その計算が必要である」ことを制約するだけで、モデルがどんなアルゴリズムを実行しているかを一意に特定するものではありません。
未解決の問い
最も大きな問いは「性能に反映されない潜在的な能力をどう測るか」です。デフォルトの答えが15.5%だからといって、そのモデルが合成を実行できない証拠にはならない——この主張を一般化するには、介入のもとでアクセス可能な計算を測る標準的な方法が必要になります。もう一つは、言語推論やエージェント運用といった別のタスク族で、同じ「形よりも位置」という配置原則が成り立つかどうかです。MuSiQueではLlama-3.1-8Bが、参照チェーンで見えた限界(層13〜15)を越えた層16でも利得を保っており、有効な層の範囲がタスクによって多少広がる可能性を示しています。
影響面での但し書き
公開モデル、合成タスク、公開データセットのみを使用しており、想定される有害用途は挙げられていません。ただし介入は特定のタスク族で評価されたもので、配備時の信頼性や広範なモデル挙動への影響は別途評価が必要です。多段推論が良くなったからといって、他の能力まで同じように改善する(あるいは劣化しない)とは限りません。自分の用途に当てるなら、対象タスク以外の出力も必ず確認してください。
よくある質問
LoRAを1層にしか入れないのに、なぜそんなに効くのですか?
モデルの重みを1つも変えていないからです。ここで使われるLoRAは、層の入力における残差ストリーム(各層を貫く共通のベクトル表現)を h ← s·h + B·A·h に置き換えるだけで、学習するのは低ランク行列A・Bとスカラーsのみ。長い計算を実際に実行するのは、凍結されたままの注意機構とMLPです。
LoRAの役割はリレーの開始点を作ることに限られます。Qwen3-8Bなら層16〜22という中間層で、各行が自分のチェーン帰属を先へ手渡す流れが起動し、以降は元からある層が計算を運びます。だからこそ「まだ有効な中間層が後ろに残っている位置」に置く必要があり、層20から層21へ移すだけで到達行数が20.5行から5.2行に落ちます。
rank-8で足りるのも同じ理由です。学習されたスカラーsは1.0006や1.004など1%以内に収まり、モデルを作り変えているわけではありません。層14では残差ストリームLoRA(66K)も全射影LoRA(606K)もFLASフローブロック(168M)も同程度に効き、層26ではすべてチャンスレベルに落ちます。支配要因はパラメータ数ではなく配置です。
なぜ層を増やしても(あるいはループを増やしても)伸びないのですか?
事前学習済みモデルが、参照を追う計算に深さをほとんど使っていないからです。OLMo-3-32BはOLMo-3-7Bの2倍の層(64層対32層)を持つのに、確実に追えるのはどちらも約2.6行。ループ型のOuro-1.4Bも5ループまで回して2.2行で頭打ちになります。
凍結モデルの中で起きているのは、各行がチェーン帰属を2〜3行ぶんしか次に渡せず、答えを出すクエリが1〜2個のポインタを自分で解決し、遅い層が値をコピーする、という短い計算です。層やループを足しても、この同じ短い計算が繰り返されるだけになります。
家庭用GPUでも再現できますか?
ヘッドラインのQwen3-8B・層14のLoRAは、学習と評価を合わせてA100 1枚で約16分です。小さいモデル(Qwen3-0.6B〜4B、Llama-3.2-1B〜3B)なら家庭用GPUでも十分に現実的な範囲です。
ただし到達できる行数はモデルサイズで変わります。Qwen3-0.6Bで13行、Llama-3.2-1Bで6行、Qwen3-14BやOLMo-3-32Bなら24行以上です。まず8〜12行程度の短いチェーンで層を数点スイープし、効果が急落する「崖」の位置を特定するのが最短の検証手順になります。
この手法はマルチホップQA以外にも使えますか?
論文では、架空の事実による多段ホップ(41.2%→97.4%)とMuSiQue(最大+17.9ポイント)で効果が確認されています。学習していない6ホップや8ホップにも汎化する点が重要です。
一方で、単一ホップのSQuADで訓練したLoRAはMuSiQueを改善しません(−2.3ポイント)。多段の合成が必要なタスクでこそ意味がある介入だと考えられます。自然言語のオープンエンドな推論やエージェント運用での有効性は、今後の検証課題として残っています。
テキスト生成の品質は劣化しませんか?
WikiText-103でのperplexityは、Qwen3-8Bで10.14から10.148へ、Ouro-1.4B(4ループ)で13.294から13.302へと、ほとんど変化しません。学習時にKL項で凍結モデルの予測から離れすぎないよう制約しているためです。
ただし著者らはこれを「測定された統制」と位置づけており、あらゆる入力で文章が壊れない保証ではありません。自分の用途に当てる場合は、対象タスク以外の出力も必ず確認することをおすすめします。
まとめ
事前学習済みのTransformerは、文脈中の参照を追う計算に深さをほとんど使っていません。Qwen3・Llama・OLMo-3・Gemma-3系の13モデル(0.6B〜32B)で確実に追える参照チェーンは1.4〜3.6行(中央値2.2行)にとどまり、OLMo-3-32BはOLMo-3-7Bの2倍の層を持ちながら到達行数はどちらも約2.6行、ループ型のOuro-1.4Bも5ループまで回して2.2行で頭打ちになります。つまり「能力が無い」のではなく、デフォルトの挙動では引き出されていないだけです。
そこに1層・rank-8のLoRA(Qwen3-8Bで65,537パラメータ、全体の0.01%未満)を早期層へ足すと、24行チェーンの正確一致率は15.5%から99%へ跳ね上がり、長めに学習した版では50行、Ouro-1.4Bでは8ループで160行以上(160行の正答率87%)まで届きます。
| 観点 | 凍結モデル | 1層LoRA適用後 |
|---|---|---|
| Qwen3-8B 24行チェーン | 15.5% | 99.0%(200問中198正解) |
| 到達できる最長行数 | 3.1行 | 50行 |
| 架空の多段ホップ(2〜5ホップ) | 41.2% | 97.4% |
| MuSiQue(層6適用) | 52.9% | +11.4ポイント |
| 学習パラメータ数 | — | 65,537(A100 1枚で約16分) |
仕組みは「リレー」として説明できます。LoRAが中間層(Qwen3-8Bなら層16〜22)でチェーン帰属の伝達を起動し、凍結されたままの注意ヘッドがより上流の行を読めるようになります。親行への注意を切るとリレーは止まり、この伝達を担うヘッドは元から存在していたものが遠くを読む役割を引き受けます。
flowchart LR
A["1層LoRA<br/>(早期層に配置)"] --> B["リレー起動<br/>層16〜22で帰属伝達"]
B --> C["凍結ヘッドが<br/>より上流の行を読む"]
C --> D["到達行数が<br/>3行 → 50行へ"]
E["誤った配置<br/>(層20→21)"] --> F["リレー不発<br/>20.5行 → 5.2行"]
効果を決めるのは介入の形ではなく位置です。rankやデータ、最適化を固定したままLoRAを層20から層21へ移すだけで、到達行数は20.5行から5.2行へ落ちます。層14では残差ストリームLoRA(66K)も全射影LoRA(606K)も168Mパラメータのフローブロックも同程度に効く一方、層26ではすべてチャンスレベルに沈みます。凍結モデルの測定からこの限界(カットオフ層)はおおむね予測でき、ホールドアウトした4モデル中3モデルで基準を満たし、平均絶対誤差は約2.2層でした。ただし予測はあくまで出発点で、最終的にはその周辺を局所的にスイープする必要があります。
最大の含意は評価への問いかけです。デフォルトの答えは、モデルがアクセスできる計算の下限を述べているにすぎません。間違った直接回答やループ回数に対する弱いスケーリングは、重みが合成を実行できない証拠にはなりません。ローカルLLMで「このタスクは無理だ」と結論する前に、正しい中間層へ1層ぶんの介入を加えて天井が動かないかを確かめる価値があります。
参考資料
- Transformers Stop Thinking Too Early, and a Tiny LoRA Fixes It (arXiv:2609.36585) — https://arxiv.org/abs/2609.36585
- 同 全文 HTML — https://arxiv.org/html/2609.36585v1
- プロジェクトページ(対話的デモ)— https://lunamos.github.io/stop-thinking-too-early/
- GitHub リポジトリ(Apache 2.0)— https://github.com/Lunamos/stop-thinking-too-early
- 解説動画(英語)— https://youtu.be/zauTNrrZQW8
- 解説動画(中国語, Bilibili)— https://www.bilibili.com/video/BV1Ymad68Eof
- Racing Thoughts: Explaining Contextualization Errors in LLMs (arXiv:2410.02102) — https://arxiv.org/abs/2410.02102
- How Do LLMs Perform Two-Hop Reasoning in Context? (arXiv:2502.13913) — https://arxiv.org/abs/2502.13913
- Back Attention (arXiv:2502.10835) — https://arxiv.org/abs/2502.10835
- Lessons from Studying Two-Hop Latent Reasoning (arXiv:2411.16353) — https://arxiv.org/abs/2411.16353
- Internal Chain-of-Thought (arXiv:2505.14530) — https://arxiv.org/abs/2505.14530
- MuSiQue: Multihop Questions via Single-Hop Question Composition (Trivedi et al., TACL 2022)
- LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., ICLR 2022)
- ReFT: Representation Finetuning for Language Models (Wu et al., NeurIPS 2024)
- Beyond steering vector: Flow-based activation steering (Jin et al., arXiv:2605.05892) — https://arxiv.org/abs/2605.05892