Loops Are Not What You Need:未来のTransformer論考
本文の状態
日本語全文を表示中
詳細モードで約21分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
zartbot
GPT-6 Astra の憶測に対し、Loop と Recursive の二種類を定義し、前者は層循環、後者はコンテキスト管理の再帰構造と論じる。
AI深層分析を開く2026年9月9日 19:40
AI深層分析
キーポイント
Loop Transformer の本質的限界
著者は既存の Loop Transformer が残差流への注入により Q、K、V を同時に変化させてしまうため、記憶の内容と検索(アドレス)を分離できない根本的な欠陥を持つと論じる。
Transformer 内部の記憶注入点分析
標準的な Pre-LN Transformer Block において、残差流、バイアス、メトリクス行列など、計算グラフ上に複数の記憶注入ポイントが存在することを特定し、その特性を詳細に解析する。
次世代 LLM と RSI の方向性
CoT を導入した第 2 世代モデルの次に到来すべきは、Q、K、V の記憶注入を分離し、テスト時に動的に制御可能な再帰的(Recursive)アーキテクチャであり、これが自己改善(RSI)への鍵になるとする。
CoT の本質と Attention の課題
Chain of Thought は K,V を介して次のトークン予測に影響を与えるが、同一の softmax に記憶列を追加すると確率質量が不可控に希釈される。
ブロック単位で可変な文脈と圧縮機構
WAL や LSM データベースのようなメカニズムを模した、ブロック単位の Composable Context と Compaction によるメモリ管理が期待される。
重要な引用
Loop Transformer 并不是一个正确的方法
它是内容空间的注入,而寻址和内容在这里是纠缠的
这也是我们在新的算法上希望分离 Q, K, V 的最关键的原因
「我々が期待する一種の方式は、ブロックベースの Composable Context メカニズムである。」
編集コメントを表示
編集コメント
この分析は、単なるモデルの拡張ではなく、記憶と検索の分離という根本的な設計思想の転換を提案しており、今後の LLM 研究の重要な分岐点となる可能性がある。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
2026年9月9日 08:28 浙江
未来の Transformer を語る:ループは不要だ
TL;DR
GPT-6 Astra に関する憶測は尽きませんが、今回は「Loop Transformer」について少し真面目に議論してみましょう。定義上、これは「Loop(ループ)」と「Recursive(再帰)」の 2 つに分類できると思います。
前者が広く知られているタイプで、モデルの層である Transformer block をそのまま一つのブロックとしてまとめ、それを数回循環させる方式です。一方、後者はコンテキストをより細かく管理するための再帰構造であり、本稿ではこれらについて詳しく解説します。
Loop Transformer として最も広まっているのは、Sebastian の『OpenAI Astra and Looped Transformers』[1] で紹介されたバージョンでしょう。これを簡略化した擬似コードで示すと以下のようになります。
初期化時は一度だけ作成する。
self.block = TransformerBlock(...)
順方向計算時に同一の重みパラメータを繰り返し使用する。
for _ in range(num_loops):
h = self.block(h)
この方式を便宜上「Loop Transformer」と呼ぶことにしましょう。しかし、これが正解だと私は考えていませんし、私が目指す形でもありません。もちろん、Weight Tying(重みの共有)という手法には一定の利点があります。例えば計算資源が限られた大規模モデル開発において、十分な VRAM を持たない B 型モデルを 1T パラメータ以内で抑えつつ、モデルのスケーリングを図りたい場合などに役立ちます。
なお、Jakub も Twitter で「そうではないかもしれない」と示唆しています。
本稿では、Jakub の発言のうち「Chain of Thought (CoT) における処理」に関する後半部分を掘り下げます。私が個人的に注目しているのは、再帰的(Recursive)なアーキテクチャの採用です。これには、コンポザブルな文脈(composable context)との連携も含まれ、最終的には「再帰的自己改善 (RSI)」の実現を目指します。
英語版はこちらで確認できます:https://zartbot.github.io/blog/model_arch/inception/index.html
- Transformer: 私たちが変更できるのはどこか?
LLM のメモリに関する議論の多くは「モデルに記憶モジュールを追加する」という発想に基づいています。しかし、このアプローチ自体が問題を誤って設定しているように思えます。より本質的な問いは、「標準的な Transformer の計算グラフにおいて、実際にどこに書き込みが可能なのか?」という点です。CoT(Chain of Thought)そのものが一種の記憶注入ではないでしょうか。
1.1 Transformer のメモリ注入ポイント分析
標準的な Pre-LN 方式の第 l 層の Transformer Block を考えてみましょう。
注意力部分において、第 h 番目のヘッドが位置 t で位置 i を参照する際、スコアは以下のように計算されます。ここで重要な変形があります。このスコアを残差流上の双一次形式として書き換えるのです。
同時に、出力側も同様に書き換えられます。
これはそのヘッドの「度量」であり、モデルがどの要素同士が相似であると判断するかを決める QK 回路です。一方、もう一つの項は「読み出し制御量」として機能し、読み取った情報をバスにどのように書き込むかを決定する OV 回路となります。
ある一つのヘッドの本質とは、この低秩行列の対 Q_h と V_h のことです。それぞれのランクは d に制限されます。Attention メカニズムに対するあらゆる修正は、本質的にこの行列ペアをいかに一時的に変更するかという議論に帰着します。
したがって、Transformer Block 上で注入可能な領域は明確になります。残差流、正規化のゲインとバイアス、度量 Q_h、制御量 V_h、求和範囲、ヘッド集合、出力ゲート、そして後続する FFN です。これらをまとめた図を以下に示します。
まず思い浮かぶのは、入力となる残差流そのものを変更する方法です。Loop Transformer のようにループを設ける手法や、DeepMind の Recirculation による注入、HyperConnection を用いてネットワークを広げるアプローチなど、方法は多岐にわたります。しかし注意すべきは、この方法では Attention 内の複数の位置が同時に書き換えられ、結果として Q、K、V がすべて変化してしまう点です。
なぜ Loop Transformer は正解ではないのでしょうか?
Loop を経た後の入力を x' とすると、スコアに対する摂動は以下のようになります。同時に、Value にも同様の摂動が生じます。これらは同時に発生し、その比率を私たちが自由に決定することはできません。つまり、「この記憶によってモデルの注目先を変えたいが、読み取る内容自体は変えたくない」という制御を残差流上で行うことは不可能なのです。
これが本質的な限界です。これは「コンテンツ空間」への注入であり、ここではアドレス指定(どこを見るか)とコンテンツ(何を読むか)が絡み合っています。このため、新しいアルゴリズムでは Q、K、V を分離することが最も重要な課題となります。
Loop Transformer のような手法の他にも、Attention-Bias の変更や、動的にヘッドを追加・削除する微細な構造調整などがあります。それでは、計算効率が高く、Q、K、V のメモリ注入を分離できる方法は存在しないのでしょうか?あるいはテスト時の修正も可能でしょうか?Query をテスト時に書き換えたり、Softmax における求和処理で KV に何らかの変更を加えたりすることはできないのでしょうか?
では、別の視点から考えてみましょう。ChatGPT に代表されるモデルを第 1 世代の LLM とし、OpenAI o1 や DeepSeek-R1 のように RL(強化学習)によってより長い CoT(Chain of Thought)を生成するモデルを第 2 世代と定義します。その先にある、RSI(Robotic System Intelligence:ロボットシステム知能)へとつながる第 3 世代の LLM とは一体何なのでしょうか?
1.2 RSI に必要な Attention の仕組み
まず、CoT が計算プロセスに具体的に何を追加しているのかを見てみましょう。デコード段階のみを単純に捉えるなら、自己回帰生成において n 番目のトークンを生成する際にモデルが計算する Attention Score は以下のようになります。
think block の処理を完了し、トークンを 1 つずつ出力デコードする段階では、n 番目のトークンは現在のトークンの K(Key)と V(Value)のみに関連付けられます。つまり、CoT の本質は、K と V を介して次のトークン予測に影響を与えることにあると言えます。
この K や V の選択を制御する一般的な手法には、SWA(Sliding Window Attention:スライディングウィンドウアテンション)や各種の Sparse Attention(スパースアテンション)アルゴリズムがあります。前者は固定されたウィンドウで情報を切り捨てる方式であり、後者は TopK による選択で不要な情報をカットする方式です。
前回の『Loop Transformer について』という記事でも触れた通り、10T の大規模モデルを構築する場合、アクティブなパラメータ総数を 100B〜150B に抑えつつ、メモリ帯域にボトルネックとなる MoE(Mixture of Experts)や FFN(Feed-Forward Network)層の通過回数を極限まで減らしたいと考えます。直感的には、MoE は非常にスパースであるべきで、例えば 1024 または 2048 の専門家の中から 8 つだけを選択するような構成が理想です。TopK を小さく設定すれば、推論時の EP(Expert Parameter)間の通信オーバーヘッドを大幅に削減できます。しかし一方で、訓練時にはこれらのパラメータすべてが学習した知識を記録し、「デッドエキスパート」の発生を極力抑えることを期待します。
そこで自然な結論として、TopK ルーティングを行う前に、より多く正確な情報を提供してルーティングを補助する仕組みが必要になります。具体的には、Hyper Connection 的なメカニズムを用いて TopK ルーターへの入力幅を広げるアプローチです。さらに Attention については、より高い「解像度」を得るために計算リソースを投入する必要があります。
したがって、今後は Attention のアルゴリズム設計に注力すべきです。言い換えれば、Attention のさらなるスケーリング方向をアルゴリズムの観点からどう見出すかが課題となります。まずは標準的な Attention が抱える欠陥について議論しましょう。
CoT をそのまま記憶列として同一の Softmax 計算に組み込むと、n+1 番目のトークン列が加わることになります。これにより、文脈から得られる確率質量が希釈されてしまいます。その希釈度は記憶キーのノルム(ベクトルの長さ)によって決まり、完全に制御不能です。
「何も取得できない」空のスロットを表現する Attention Sink などの仕組みも存在しますが、CoT が潜在的に及ぼす擾乱影響や、特に RL Post-Training(強化学習後方学習)段階での影響メカニズムについては、まだ不明な点が多いのが現状です。
もう一つの欠陥は、計算の並列性や効率性を損なう問題です。Linear Attention や Sparse Attention のようなアルゴリズムがいくつか提案され、一定の緩和効果はありますが、根本的な課題はまだ残っています。
これらの手法について詳しく分析した記事がありますので、ご参照ください。
中文版:https://zartbot.github.io/blog/model_arch/linear_vs_sparse/index.html
英文版:https://zartbot.github.io/blog/model_arch/linear_vs_sparse/index_en.html
上記の分析で示唆された通り、私が目指しているのは「ブロック単位で構成可能な文脈(Composable Context)」に基づくメカニズムです。直感的に考えれば、KV(Key-Value)ペアの保存において、ストレージやデータベースで一般的に用いられている WAL(Write-Ahead Logging)や LSM(Log-Structured Merge-tree)の仕組みを応用できないでしょうか?
つまり、文脈の構成をブロック単位で組み立てられるようにし、実際に保存する際には LSM におけるマージやコンパクションのような処理を行い、圧縮されたメモリブロックは LLM のデコーディングによって復元できるような仕組みです。
さらに、計算の並列性と効率性を損なわないためには、Attention 演算を多分支路を持つ明示的なゲート制御(Gating)で実現したいと考えています。具体的には以下のような構造です:
これにより「再帰型 Attention」が構成され、その再帰プロセスの中で Composable Context を活用できます。詳細は次章で展開します。
- 再帰:思考の思考
2.1 なぜ再帰が必要なのか
第一章でも述べた通り、単純なループ Transformer に循環注入を行うと QKV(Query, Key, Value)すべてが変化してしまいます。そのため、Q と KV を分離して処理する仕組みが必要です。
再帰的な処理においては、以下の二つの問いに答える必要があります。
- Q に対して書き換えは可能か?
- KV に対してどのように Composable な構造を構築するか?
また、DeepSeek の Harness フレームワークは論文『A Programming Paradigm for Spatiotemporal Composability』[2] で「時空間の可組合性」について論じていますが、私はこれらの能力が外部フレームワークに依存するのではなく、モデル内部に直接内蔵されるべきだと考えます。つまり、モデル自身が Composable Context の能力を持ち、思考連鎖(Chain of Thought)を基盤として、組み合わせや分治法、再帰処理などを自律的に行えるようになるべきです。
もう一つの理由は効率性です。5T〜10T 規模の超巨大パラメータを持つモデルにおいては、高速な推論能力を維持することが不可欠です。FFN(Feed-Forward Network)や MoE(Mixture of Experts)を経るたびに、膨大なメモリアクセスと通信オーバーヘッドが発生し、層が深くなるほどその影響は増大します。
さらにトポロジカルデータ分析の知見によれば、現在の Transformer モデルは深度を十分に活用できていません。知能の「創発(Emergence)」は通常、モデルの深い層で起こります。したがって、私は Attention ブロック内で再帰的な処理を行うことで、モデル全体の深さを浅く保つ(例:60〜80 層)代わりに、Attention 演算に計算リソースを集中投下することで、より深いモデルと同等の効果を得られると考えます。
アルゴリズムの観点から、再帰は Chain of Thought (CoT) に比べて追加的な能力を備えています。まず、スタック構造を持つことで計算グラフの形状が変化し、「思考」自体を再度思考の対象とすることができます。一方、従来の CoT は本質的に並列構造であり、コンテキスト長が伸びるほど処理が煩雑になります。特に、過去の推論過程で生じた誤った結論は削除することができません。KV (Key-Value) をスタックとみなせば、CoT には実質的に「プッシュ」操作しか存在しないことになります。
Linear Attention の状態行列を用いて削除を実現することも可能ですが、Linear Attention はコンテキストの組み合わせ可能性や交換性に欠陥を抱えています。そこで、Sparse Attention を基盤としつつ、Indexer の前に学習可能なマスク(推論時に生成されるもの)を追加して再帰のパラメータとするというアプローチは有効でしょうか?これにより、完全なスタック構造を構築することが可能になります。
さらに、再帰構造である以上、戻り値は KV の単純な追加・削除ではなく、トークン形式で保持されなければなりません。これによって、CoT における思考プロセスそのものを構造化することになります。
まとめると、再帰と Loop Transformer の違い、そしてなぜ再帰が必要なのかという問いに対する答えは、LLM に完全なスタック構造を付与することにあります。これにより、従来は「Append Only(追加のみ)」だったコンテキストが、スタックのようにプッシュ・ポップできるようになり、ポップ時には永続的な戻り値を残すことが可能になります。
2.2 思考の再帰:なぜ「要約の要約」ではダメなのか
再帰の考え方をベースに、データベースにおける LSM (Log-Structured Merge-tree) の概念を援用することで、コンテキスト全体を階層構造として構成できます。
- レベル:オブジェクト / 動作 / 寿命
- L0:トークン / 1 回のフォワードパス、非公開計算 / ステップ単位
- L1:推論の断片 / CoT、非公開計算をトークンとして公開 / リクエスト内
- L2:ブロック / 要約作成、保持すべき情報の選別 / リクエスト内(元のブロック KV は回収)
- L3:複数の要約 / マクロステップの合成、跨ブロックでの再利用価値の判断 / リクエスト内、永続化可能
- L4:複数のマクロステップ / パラメータ付きルールの帰納 / 跨リクエスト、ルールライブラリへ格納
では、連続した CoT をどのように異なるブロックに分割し、あるいはモデルが Decoding(生成)する際にいかにして自主的にブロックを生成するか。その核心は L3 にあります。
一階の思考の出力は「この問題の答え」であり、二階の思考の出力は「同種の問題に対する解法」です。前者はリクエストが終われば消滅しますが、後者はルールライブラリに蓄積されます。
ここで注意すべき点は、L3 を単なる「要約の要約」にしてはいけないということです。多くの「階層化メモリ」設計がここでつまずいています。生成される要約は、LLM がそれらを通じて元の思考プロセスを完全に復元できるものでなければなりません。例えば数学的証明の CoT がある場合、L3 の要約では証明条件、重要なステップ、結論を厳密に記録し、CoT そのものが破棄されたとしても、要約から元の詳細な証明過程を推論できるようにする必要があります。
もう一つの課題は、まとめられた L3 ブロックをどのように Transformer に注入するかです。第一章で述べた通り、残差結合にループを導入すべきではありません。残差への注入はスコアと値の両方を書き換え、アドレス指定と内容が絡み合い、その比率も制御できないからです。
他の注入点を検討しつつ、モデルの効率性を維持する必要があります。つまり、このアルゴリズムは以下の条件を満たさなければなりません。
- 単一バージョン:キャッシュは 1 つだけ保持し、ループなしモデルに対して増加分ゼロとする。
- 訓練と推論の一貫性:トレーニング時と Prefill 時の読み取りバージョンをペアリングし、Decoding 時とも整合させる。
- Prefill の並列化:トークン間の対角依存性を導入しない。
最終的な結論として、再帰プロセスにおいては、最初のラウンドで計算された値を凍結し、その後の各ラウンドでは Q と残差項のみを再計算して、同じ KV を繰り返し参照するアプローチが有効です。もちろん、新しい L3 Block の内容を KV に追加することは可能ですが、異なる反復過程において KV を読み込み、Attention スコアを計算するための、Query に関連したマスクを構築する必要があります。
このようにして、Recursive Transformer の構築方針はほぼ確定しました。
2.3 MEMENTO から INCEPTION へ
本稿執筆中に、『MEMENTO: Teaching LLMs to Manage Their Own Context』[3] という論文を見つけました。この論文のタイトルはクリストファー・ノーラン監督の 2000 年作映画『メメント』に由来しており、主人公が前向性健忘症を患い、外部の記憶アイテムを管理することで記憶欠損を補う物語です。これは、自身の過去の思考を圧縮した要約に基づいて推論を行うモデルの比喩として非常に適切です。
ここで言う MEMENTO は、通常の文章的な要約とは異なります。それは推論ブロックにおける最小限の記録であり、結論、中間値、そして重要な方向性の判断を、可能な限り少ないトークン数で保持するものです。一度 MEMENTO が生成されると、直前の Think Block は、連続した生成呼び出し内部でマスク処理されます。
以下に具体的な例を示します。
しかし、この実装を見ると、ブロックが完了した際に compact_kv_cache がアクティブなエントリを連続するスロットへコピーし、末尾の KV ページを解放するという物理的な逐出(eviction)を行っています。論文はこの選択理由を非常に率直に記述しています。「標準的な FlashAttention や paged-attention カーネルは修正不要で動作し続けるため、それらは追放されたトークンを単に見ないだけである」というものです。つまり、MEMENTO は LLM の計算における KV Stack に pop 機能を搭載しましたが、その pop は破壊的(データが失われる)なものであるのです。
再帰型 Transformer を考えるとき、クリストファー・ノーラン監督の映画『インセプション』を連想します。Chain of Thought(思考連鎖)を用いて「考える」プロセスは、別の次元へと入り込むことに似ています。その際、元の次元の内容が失われるわけではなく、そのままそこに留まり待機しているのです。各層で扱われる時間スケールは異なるため、L3 ブロック内で要約を構築する必要がある根本的な理由となります。
これは私が以前から「Nerve(神経)」の構造という視点からアルゴリズムを構築しようとしていたこととも通じる部分です。重要な課題は同じく、「より深い思考空間」から上位層へとどのように戻るか、その出口をどう設計するかという点にあります。
『メモリーズ』から『インセプション(再帰型 Transformer)』へと視点を移すと、本質的な違いが見えてきます。『メモリーズ』の手法は主に KV(Key-Value)ペアの書き込みを制御することに焦点を当てていましたが、『インセプション』では KV の読み出しを制御することが主眼となります。
したがって、『メモリーズ』のアプローチを応用し、コンテキストをブロックに分割して要約・圧縮します。そして、その結果として残された「ブロック構造」と「ブロック要約」の上に再帰的な選択処理を重ねるのです。Sparse Attention Indexer(スパースアテンションインデクサ)の手前に、学習可能で再帰的なマスクを導入することで、どのブロックを Indexer のスタックにプッシュするかを制御し、「Composable Context(合成可能なコンテキスト)」を構築します。
長時間アクセスされていない元の「Think Block」については、ストレージから削除しても構いません。必要なのは要約されたブロックのみです。もし本当に詳細な情報が必要になった場合、モデル自身に再帰的に Prefill させたり、要約ブロックに基づいて推論を行ったりすることで、完全な情報を復元すればよいのです。
ただし、こうした操作を実現するためには、KV Block が交換可能であるという属性が不可欠となります。
3. まとめ
本稿では、Transformer に記憶を注入できるポイントから議論を始めました。Loop Transformer や Recirculation(循環処理)といった既存のアプローチが抱える欠陥を分析した上で、『メモリーズ』の研究を参考にし、「Nerve」の構造概念をさらに発展させることで、再帰型 Transformer のアーキテクチャを提案します。
このアプローチでは、再帰的な構造とスタック機構を採用し、Block ベースのマスク処理やブロック要約を活用することで、アクティブなコンテキストの長さを削減しています。この手法は本質的に Sparse Attention と相性が良く、Indexer の手前に学習可能な再帰マスクを構築するだけで実現可能です。
ただし、ブロックの合成性や交換性をさらに高めるためには、Attention 計算の詳細や関連する Prefill オペレータとの連携最適化について、引き続き研究を進める必要があります。
ブロックの分割方法については、詳細な訓練データの前処理が必要か、あるいは Mid-training 段階で SFT や RL を実施し、モデルに <|Lk: block_start|>、<|Lk: block_end|>、<|Lk: summary_start|>、<|Lk: summary_end|> といったトークンを認識させ、次の CoT レイヤーへ移行したり、前のレイヤーに戻って推論を継続する方法を学習させる必要があります。
RLHF を基盤とした ChatGPT を第 1 世代の LLM とし、RL によって引き出された長い CoT を持つ OpenAI o1 や DeepSeek-R1 を第 2 世代と定義するならば、CoT に基づく再帰的思考構造を構築し、Transformer アーキテクチャと協調させる改良版は第 3 世代の LLM と呼べるでしょう。これらの能力がモデル内部に内面化されれば、過去に存在した多くの複雑なスキルやハッチの問題も自然に解決されるはずです。もしかすると、RSI(Robotic System Integration)への道筋にもわずかな光明が見えてくるかもしれません。
参考資料
[1] OpenAI Astra and Looped Transformers: https://sebastianraschka.com/blog/2026/openai-astra-looped-transformers.html
[2] A Programming Paradigm for Spatiotemporal Composability: https://arxiv.org/abs/2608.25512
[3] MEMENTO: Teaching LLMs to Manage Their Own Context: https://arxiv.org/pdf/2604.09852
微信で開く
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み