前回の D1 では、一定の規模を超えたときに能力が突然見え始める「創発」を扱いました。D2 ではその続きとして、学習の途中でしばらく伸びないように見えた性能が、後半になってから急に立ち上がる現象を見ます。
見た目には停滞に見えても、内部では別の表現へ移り変わっていることがあります。この章の役割は、その遅れて起きる変化を、過学習や偶然ではなく、観測対象として整理することです。
1. Grokking について
Grokking は、訓練精度が先に高くなり、そのあとかなり遅れてテスト精度が急上昇する現象です。単に「よく学習した」というだけでは説明しにくく、創発と同じく、スケール則の先で見えてくる非直線的な挙動の一つです。
この現象を理解しておくと、学習が止まって見える場面でも、すぐに失敗と判断しなくて済みます。一方で、ただ待てばよいという話でもありません。条件がそろわなければ Grokking は起きないため、どんなときに遅延サージが出やすいかを分けて見る必要があります。

2. Grokking とは何か?
Grokking とは、訓練中に次のような段階をたどる現象です。

2-1. 段階1: 過学習フェーズ
- 訓練データへの適応が先に進む
- 訓練精度は上がる
- しかしテスト精度はほとんど改善しない
この段階では、モデルが訓練データを丸暗記しているように見えます。表面上は学習が進んでいても、一般化はまだ弱い状態です。
2-2. 段階2: スタグネーション(停滞)
- 訓練精度は高いまま
- テスト精度は低いまま
- 外から見ると、変化が止まったように見える
ここが Grokking を誤解しやすいポイントです。見た目には進んでいなくても、内部表現の再編が進んでいる可能性があります。
2-3. 段階3: サージ(急上昇)
- テスト精度が急激に向上する
- 訓練精度とテスト精度が近づく
- モデルが記憶中心から理解中心へ移る
Grokking の本質は、この「遅れてから急に上がる」点にあります。単なるノイズではなく、一般化の形が変わっていると考えられます。
3. どんな実測例があるのか?
3-1. モジュラー演算では何が起きるのか?
Grokking の古典例としてよく挙がるのが、モジュラー演算です。Nanda et al.(2023)は、モジュラー加算を学習する小規模Transformerの訓練過程を「記憶(memorization)」「回路形成(circuit formation)」「クリーンアップ(cleanup)」の3フェーズに分けて分析しました。

| フェーズ | おおよそのエポック範囲 | 何が起きているか |
|---|---|---|
| 記憶 | 〜1,400 | 訓練精度は急速に100%近くまで上がるが、テスト精度は低いまま |
| 回路形成 | 1,400〜9,400 | 訓練・テスト精度はほぼ変化しないが、内部では汎化に使われる回路(フーリエ乗算アルゴリズム)が徐々に形成される |
| クリーンアップ | 9,400〜14,000 | 重み減衰により記憶成分が取り除かれ、テスト精度が急激に100%近くまで上昇する |
同論文では、テスト精度がほぼ100%まで急上昇するのはおおよそ1万エポック前後とされています。重要なのは、テスト精度の上昇が、訓練精度の最大化からかなり遅れて起きていることです。ここが、普通の早期収束と違う点です。
※ 上表のエポック範囲は Nanda et al.(2023)が示した memorization/circuit formation/cleanup の3フェーズに基づく概算であり、論文中の具体的な精度パーセンテージを逐語的に引用したものではありません。
3-2. アルゴリズム・推論タスクではどう見えるのか?
数学的な記号推論やアルゴリズムタスク(例:パリティチェックや方程式の解法)をトランスフォーマーモデルに学習させた場合も、同様の遅延サージ(Grokking)が観測されます。訓練の初期〜中盤にかけては訓練データのみに過学習し、テスト精度は低い状態が続きますが、膨大なステップ数(時間軸)を費やしたのちに、突如として未知のテストデータに対する汎化が始まり、テスト精度が急上昇します。

| 訓練ステップ数 | 訓練精度 | テスト精度 | 状態 |
|---|---|---|---|
| 10k | 99% | 5% | 過学習(丸暗記) |
| 50k | 100% | 8% | 停滞(内部表現の再編) |
| 100k | 100% | 45% | サージ開始 |
| 200k | 100% | 92% | Grokking 完成 |
ここで重要なのは、モデルのパラメータサイズを大きくすることによる能力の向上(前節の「創発」)とは異なり、同一のモデルであっても「訓練ステップ(時間軸)を極端に長く延ばすこと」によって初めて汎化性能が立ち上がるという点です。
モデルのサイズを大きくするのではなく、「訓練ステップ(時間)を極端に延ばす」ことで 初めて汎化が立ち上がる。
4. Grokking はどんな段階をたどるのか?
Grokking を理解するには、訓練の時間軸で見るのが分かりやすいです。
| 時点 | 典型的な様子 | 読み取り方 |
|---|---|---|
| 初期 | 訓練精度だけ上がる | 丸暗記に見えやすい |
| 中盤 | 変化が止まったように見える | 内部で再編が進む可能性 |
| 後期 | テスト精度が急に上がる | 一般化が立ち上がる |
この流れは、D1 の創発と似ていますが、焦点が少し違います。創発が「能力が出現する瞬間」だとすると、Grokking は「出現までの遅れ方」に注目する現象です。
5. なぜ Grokking は起きるのか?
ここからは仮説の領域です。Grokking の完全な説明はまだ確立していませんが、いくつかの見方があります。
5-1. Feature Learning Hypothesis

初期はノイズのように見える活動が、中盤で簡単な特性へ収束し、後期で本質的な特性へ再構成される、という考え方です。見かけの停滞は、内部での整理の時間だと解釈します。
5-2. Loss Landscape Hypothesis

損失空間には複数の局所最適解があり、訓練は浅い解からより一般化しやすい解へ移っていく、という見方です。L2 正則化が、この移動を助ける可能性があります。
5-3. Implicit Regularization

SGD のような最適化が、複雑な解から単純な解へ自然に寄せる、という考え方です。Grokking は、暗黙的正則化が目に見える形で表れたものだと見る立場です。
5-4. どう考えるとよいのか?
これらはどれか一つが正しいというより、異なる角度から同じ現象を見ていると考えたほうが自然です。少なくとも、Grokking を「たまたま遅れた学習」とだけ片付けるのは不十分です。
6. どんな条件で起きやすいのか?
Grokking は、何でも起こる現象ではありません。起こりやすい条件がいくつかあります。特にその条件のことを『ゴルディロックス・ゾーン』と言います。

6-1. 十分な正則化があること
- L2 正則化がある程度効いている
- 正則化が弱すぎると、過学習のままで終わりやすい
6-2. 学習率が極端でないこと
- 大きすぎると、過学習のまま走り切りやすい
- 小さすぎると、サージまで時間がかかる
6-3. タスク構造が比較的単純であること
- モジュラー演算のような構造化されたタスクで見えやすい
- 言語タスクでは、報告はあるが鮮明さは弱いことが多い
6-4. データ量が適切であること
- 多すぎると、そもそも過学習の段階が目立たない
- 少なすぎると、過学習が深刻すぎて一般化に移りにくい
つまり、Grokking は「大きければ起きる」でも「小さければ起きる」でもありません。条件がちょうどよいときに見えやすい現象です。
この現象は「単に長く待てば起きる」わけではない。 4つの条件であるゴルディロックス・ゾーンによる完璧なバランスを保った時のみ観測される。
7. 実務の LLM ではどう見ればよいのか?
研究環境では Grokking が鮮明でも、実務の LLM では同じ形がそのまま出るとは限りません。
7-1. 研究で目立つのはなぜか?
- モジュラー演算のように、構造がはっきりしたタスクで見えやすい
- 言語タスクでは、変化が緩やかで気づきにくい
7-2. 実務で注意したいことは何か?
- ファインチューニングの小規模データでは、Grokking の挙動が混ざることがある
- ただし、モデル全体の事前学習で同じように鮮明に出るとは限らない
- 「急に伸びた」ように見えても、評価設計の影響を受けている可能性がある
実務では、Grokking を現象として知っておくことが重要で、無理に再現しようとする必要はありません。むしろ、学習が停滞して見えるときに、何を確認すべきかの視点を与えてくれます。
8. どういう見方をすると誤解しにくいのか?
Grokking でよくある誤解は、だいたい次の 3 つです。
- ただの遅い学習を、全部 Grokking と呼んでしまう
- 一度サージが起きたからといって、すべてのタスクで起こると考える
- 訓練精度だけを見て、一般化の遅れを見落とす
Grokking を扱うときは、訓練とテストを分けて見ること、そして評価の時間軸を長めに取ることが大切です。
9. 次に進む前に何を確認すべきか?
本番で Grokking を議論する前に、少なくとも次を確認したほうがよいです。
- どのタスクで Grokking を見たいのかを決めたか?
- 訓練精度とテスト精度を別々に追っているか?
- 学習期間を十分長く取っているか?
- 正則化と学習率の条件を確認したか?
- 研究結果と実務結果を混同していないか?
ここで大切なのは、停滞をすぐ失敗と決めつけないことです。変化が遅れて現れるだけの可能性があるからです。
この確認を通しておくと、次の D3 で扱う「どう測るか」が理解しやすくなります。Grokking を見つけるには、そもそもどんな実験設計で、どの指標を追うかが重要だからです。
10. まとめ

D2 の重要な教訓は、学習の価値は訓練の途中経過だけでは判断できない、という点です。見た目には止まっていても、後から一般化が急に立ち上がることがあります。
今回の要点は次の通りです。
- Grokking は、訓練の後半でテスト性能が急上昇する現象である
- モジュラー演算や推論タスクで見えやすい
- 正則化、学習率、データ量、タスク構造が発生条件に関わる
- 研究で鮮明でも、実務 LLM では同じ形で出るとは限らない
- 観測するときは、訓練とテストを分けて長い時間軸で見るべきである
Grokking を理解するとは、遅れた改善を待つことではありません。何が遅れているのか、どの条件で変化が起きるのかを見抜くことです。
11. 今回のブログの考察

D2 は、創発とは別の角度から、スケールの先で現れる非直線的な変化を見せてくれる現象です。創発が「ある瞬間に見える能力」なら、Grokking は「遅れて立ち上がる一般化」と言えます。
この章で見たように、学習途中の停滞は、必ずしも失敗ではありません。条件がそろえば、後から一般化が見えてくることがあります。とはいえ、その見え方を正しく捉えるには、実験設計と測定の仕方が欠かせません。
次の D3 では、この流れを受けて、スケール則をどう実験的に検証し、どんな指標で測るのかを見ていきます。
参考文献
- Nanda, N., et al. (2023). “Progress measures for grokking via mechanistic interpretability.”
- Power, A., et al. (2022). “Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets.”


コメント