BLOG
技術拆解 009|RLT:Transformer に時間ループを接続し、潜在変数推論と「無限時間深度」の正体
技術拆解:AI技術フレームワークの解析——説明、分析、技術評価、価値判断、実地運用。 作者:永亮
Transformerにはほとんど直視されることのない制約がある:系列がどれほど長くても、各トークンが通過する層数は固定されている。系列が100トークンから10万トークンに増えても、単一トークンの計算深度は微動だにしない——モデルは「広く」なったが、「深く」はなっていない。2026年9月、Yifan Zhangは技術レポートRecurrent Looped Transformer(RLT)を公開し、深度を層数から解放することを主張した:トークンをまたぐ循環的な潜在変数状態を用いて、「有効計算パス」を系列の増大に伴って伸長させ、この性質をinfinite temporal depth——無限時間深度と名付けた。リポジリ作成からわずか3日で、2026年9月時点において約743個のstar、77個のforkを獲得している。本記事は6つの事柄を拆解する:それが何であるか、核心メカニズムを状態とキャッシュの定義まで徹底解剖、技術評価、追う価値があるか、どう実装するか、そして——自ら最小限の循環フィードバックTransformerを書きたい場合、最小スケルトンは何か。
一、これは何か
一言で言えば:RLT は研究論文タイプのプロジェクトであり、核心的な主張は「latent reasoning with infinite temporal depth(無限の時間的深さを持つ潜在推論)」である。つまり、層を重ねて深さを稼ぐのではなく、潜在変数による推論と引き換えに、シーケンスに伴って無限に伸びる有効な計算パスを獲得するというものである。
まず重要な事実を整理しておく。リポジトリ yifanzhang-pro/recurrent-looped-tranformer(リポジトリ名が tranformer となっており、s が1つ抜けた元のスペルである点に注意)、著者は Yifan Zhang、単著のテクニカルレポート、2026 年 9 月に公開、リポジトリの内容は Apache-2.0 ライセンスでオープンソース化されている。2026 年 9 月時点で約 743 スター、77 フォークであり、2026 年 9 月 12 日(3日前)に作成された。GitHub がこのリポジトリに付与した主要言語は HTML である。理由は、リポジトリの本体が現在プロジェクトのホームページであり、公式のコード実装が存在しないためである。レポート内で引用されている実験数値は、ある独立した貢献者による約 79K パラメータの小規模なサードパーティ実装に基づいている。リポジトリには論文の PDF(Recurrent_Looppped_Transformer.pdf、ファイル名の p が3つ連続しているのも元のスペルである)と、Prefill-Decode kernel mismatch に関するメモが添えられており、後者は著者の Pretraining-RL-Science リポジトリに置かれている。
まず「無限の時間的深さ」という言葉の正確な意味を確定させておこう。このプロジェクトの価値はすべてこの数文字に懸かっているためだ。t 個の token を処理した後、再帰パスは累計 t×L_D 個の block を経由する(L_D はデコーダーの層数)が、各 token が実際に実行する block 数は固定である。言い換えれば、これはシーケンスの増加に伴って拡張する時間的な計算パスである。深さが伸びるのは「時間的に」であり、1つの token の内部で無限の計算を獲得するわけではない。著者自身もレポート内でこの区別を繰り返し強調しており、この記事の後述するすべての評価もこの基準に従うものとする。
二、コアメカニズム
2.1 全体構造:encoder はグローバル記憶を管理し、decoder は局所記憶と時間的フィードバックを管理する
RLT は従来の decoder-only の層スタックを、役割が明確に分かれた2つのスタックに切り分ける。encoder は因果的であり、prompt を1回実行して、グローバル KV 記憶(global KV memory)を構築する。シーケンス内のすべての位置の情報がこの記憶に圧縮され、decoder がいつでも取得できるようになっている。decoder は再帰的である。48層の encoder に対して48層の decoder があり、アテンションと FFN の重みがステージ間で共有される。ここで見間違いやすい点がある。decoder の各 block は、自己アテンションに加えて、encoder の記憶に対する cross-attention を1回余分に行う必要があるため、「層数が等しい」ことは「FLOPs が等しい」ことを意味しない。decoder の単層の実際のオーバーヘッドは encoder の単層よりも高く、この非対称性はアーキテクチャに組み込まれているものである。
2.2 アテンションモード:3つの記憶がそれぞれの役割を管理
decoder の各ステップは同時に3つの記憶に直面し、その役割分担は非常に明確である。
グローバルコンテキストは cross-attention に依存している。decoder は現在位置を通じてのみ encoder の記憶を読み取ることができ、各位置で完全な履歴を再スキャンすることはない。局所記憶はスライディングウィンドウアテンション(SWA)に依存している。ウィンドウ W は現在の token を含み、キャッシュには W-1 個の履歴が保持される。ウィンドウ外の履歴は decoder 内には留まらず、必要な場合は encoder の記憶から再取得する必要がある。時間的フィードバックは再帰に依存している。前のステップの最終 decoder 出力が、潜在変数として次の token の計算に入る。3つのメカニズムが重なり合うことで、モデルは長期的なグローバルビューと局所的なコンテキストを備えると同時に、シーケンス全体を貫く暗黙的な時間的状態も保持する。
2.3 状態とキャッシュ:H_t の完全な定義
この設計で最も一字一句読む価値があるのは、デコーダ状態の定義である。完全なデコーダ状態は H_t = (s_t, C_t^D) と書かれる。s_t は再帰出力(前のステップの最終隠れ状態)であり、C_t^D は各層の SWA KV キャッシュである。初期状態は H_0 = (s_*, ∅) である。つまり、再帰出力は特殊な初期値から出発し、キャッシュは空集合から出発する。2つのエンジニアリングの詳細が設計意図を最もよく表している。第一に、prompt と response の境界において、再帰出力も SWA キャッシュもリセットされず、訓練サンプルと生成シーケンスが同じ状態軌跡を共有する。第二に、「無限の深さ」はこの状態定義から生じる。各 token は固定層数で1回前方伝播するだけだが、s_t が前のステップの情報を持ち込むため、再帰パスの総延長は t に伴って線形に累積される。
2.4 1つの token の完全な旅
3つの記憶を繋ぎ合わせて、1つの token がどのように進むかを見てみよう。第 t 番目の token が入場すると、まず前世代の再帰出力と結合される。すなわち、s_{t-1} がフィードバック投影を経て、現在の token の embedding と合成され、decoder の入力となる。この入力はその後、重みを共有する48層の decoder block を通過する。各層ではまず、幅 W のスライディングウィンドウ内で自己アテンションを行い、C_t^D からその層の KV キャッシュを取得し、次に encoder のグローバル記憶に対して cross-attention を1回行い、最後に FFN を通過する。48層を走り終えると、最終隠れ状態は2つに分割される。1つは整理されて s_t となり、s_{t-1} に代わって次の再帰ラウンドに入る。もう1つは出力ヘッドに接続され、現在の token の予測を与える。全過程において「完全な履歴の再スキャン」は一度もない。グローバル情報は encoder の記憶から必要に応じて取得され、局所情報はウィンドウからのみ取得され、それより前の事柄はすべて潜在変数 s の中にある。これが「深さが時間に育つ」具体的な姿である。単一 token の前方伝播は依然として48層だが、各 token は前のステップの48層の肩の上に立っている。
2.5 訓練と推論を貫く1つの実行セマンティクス
RLT レポートにおける最もエンジニアリング寄りの主張は、事前学習、SFT、サンプリング、RL が同一の complete-state transition を用い、状態定義の中にプロンプトの再帰と SWA キャッシュが同時に含まれているという点である。4つのシナリオはそれぞれ以下のようになる:prefill は因果バッチエンコードを行い、プロンプトトークンごとに再帰的に SWA KV を構築する。generation はインクリメンタルエンコードを行い、前の状態からサンプリングし、各トークンは一度しか消費されない。事前学習は full BPTT を用い、すべての有効な next-token 予測を教師とし、勾配が再帰軌跡全体を通過する。SFT は assistant のターゲットのみを教師とするが、状態は全シーケンスに沿って更新され続ける。従来の手法では、学習は teacher forcing に従って展開され、推論は自己回帰的に展開されるため、両者の状態セマンティクスが一致せず、プロンプトの境界で暗黙的なバイアスが生じやすい。RLT のアプローチは、定義のレベルでこの隙間を埋めることである。
2.6 RL の章:アーキテクチャよりもハードコアなのは学習目標の誠実さ
レポートの RL 章はかなり密度が高く、4つの結論はそのまま記憶する価値がある。第一に、current-policy replay は重みの更新後にパラメータ関連キャッシュを再構築しなければならない。状態にキャッシュされた KV は古いパラメータで計算されたものであり、再構築しなければ replay の状態は誤りとなる。第二に、完全な勾配は再帰出力、decoder KV キャッシュ、encoder メモリを通過しなければならず、いかなる detach も勾配の近似であり、正確な誤差逆伝播ではない。第三に、振る舞いの log-prob は真のサンプリング分布を記述しなければならない。正確な importance sampling を計算するには、support coverage を満たす必要がある。ポリシー更新後に古い軌跡に出現したアクションが新しいポリシー下で確率ゼロになる場合、重みは定義されない。第四に、共有実行セマンティクスが排除するのはプロンプト境界の構造的 mismatch であり、数値レベルでの kernel parity を保証するものではなく、自動的に不偏の off-policy 目標を与えるわけでもない。これらの点は、後続の研究者に向けた施工規範のように読める。定義のレベルで既に埋められた落とし穴と、そのまま残されている落とし穴がどれかを示している。
2.7 モデルとハードウェア、モデルとアルゴリズムの協調
レポートにはさらに2つの協調設計原則がリストアップされている。モデル・ハードウェア側:encoder は並列バッチ処理を行い、decoder はシーケンス間 batching を行い、メモリを再利用し、activation checkpointing で VRAM を節約する。モデル・RL アルゴリズム側:これは 2.5 の共有状態遷移のセットそのものである。冷静に見る必要があるのは、著者自身が推論の改善、ハードウェアの加速、RL の拡張を研究目標であると宣言しており、このレポートで既に測定された結果ではないということである。2.7 のこのセクションで記述されているのは設計原則であり、パフォーマンスデータではない。
三、技術評価
まず証拠の形態について:このプロジェクトには README に記録された予備的な合成実験しかなく、数値はすべて約 79K パラメータの小規模実装、3つのランダムシードに由来し、著者は FLOPs が一致していないこと、これは独立した合成概念検証であり、大規模推論や RL 拡張の検証ではないことを明記している。評価はこの枠内でしか行えない。
実験設定:2つの合成タスク、訓練には32ステップ長の操作シーケンスを使用し、評価では128ステップへ外挿——訓練長の4倍、各タスク各長さにつき 2048 個のテストプログラムを使用。第1の parity タスクでは、訓練長内で RLT は 100% に近く、対照の通常の Transformer は 72%;128ステップへ外挿すると、RLT は 60.8%、対照群は 48%、ランダムベースラインは 50%——つまり対照群は4倍外挿長で既にランダム水準を下回っているが、RLT はランダムライン以上を維持している。第2の five-state transitions タスクでは、訓練長内で RLT は同様に 100% に近く、対照群はわずか 24%;しかし128ステップへ外挿すると、RLT は 20.7% に低下し、ランダムベースラインは 20%——このタスクでは、4倍外挿後はすべてランダム推測に戻る。総合的に読むと:循環フィードバックは確かにモデルに訓練長を超える汎化の余裕をもたらし、parity タスクではその余裕が顕著である;しかし、この余裕はタスクに強く依存し、five-state タスクでは4倍外挿を持ちこたえられない。2つのタスク、79K パラメータ、FLOPs 非対等——この数値セットは「メカニズムが実現可能であり、研究を続ける価値がある」ことを証明できるが、「この道が必ず通じる」ことは証明できない。
同じ方向の先頭の研究と比較すると、RLT の違いは状態の設計粒度にある:完全なデコーダ状態(再帰出力に各層の SWA キャッシュを加えたもの)を明示的に定義し、かつ訓練と推論で同一の状態遷移セマンティクスを共有することを堅持している。この規律は latent reasoning の方向では珍しい——多くの手法では訓練形態とデプロイ形態が2セットのコードである。代償も明確である:状態定義が完全であるほど、実装時に手抜きできる箇所がなくなり、2.5節の4つの実装規範がその代償のリストである。
人気には冷水を浴びせる必要がある。単一著者、リポジトリ3日、主要言語 HTML(公式コードがなく、実験はサードパーティの小規模実装)——2026年9月時点で約 743 個の star は、「無限の時間深度」というアイデアの魅力を反映しているのであって、エンジニアリングの成熟度ではない。設計ドキュメントと研究アジェンダとして読めば、価値は高い;利用可能なモデルやフレームワークとして読めば、現時点では何もない。
四、価値判断
真の問題は真である:Transformer の単 token 計算深度は層数に固定されており、長系列においてモデルが「見てきた」総計算量は増加しているが、「各ステップの思考」の深さは増加しておらず、latent reasoning という方向性はまさにこのギャップを埋めようとするものである。RLT が示した回答は、明確な状態定義と共有実行セマンティクスである——特に訓練と推論で一つの状態遷移を共有するという点は、この分野において稀な規律ある設計である。
境界も同様に明確である。第一に、公式実装がなく、コードを見たい人は現在サードパーティの小規模な実験を読むしかない。第二に、実験は 79K パラメータ級の合成タスクであり、FLOPs はマッチしておらず、大規模言語モデリングでの性能に関するデータは全くない。第三に、著者自身が線を引いている:推論改善、ハードウェア加速、RL 拡張は研究目標であり、既に測定された結果ではない——この三つを「RLT がすでに達成した」とするいかなる転述も過剰解釈である。第四に、five-state タスクの 4 倍外挿はランダムレベルに落ち込んでおり、循環フィードバックがもたらす余裕にはタスクの境界があり、普遍的な能力ではない。いつ追う価値があるか:latent reasoning、長系列状態モデリング、訓練推論一致性の研究を行う人にとって、このレポートの状態定義と実装仕様は項目ごとに読む価値がある。いつ追うべきでないか:すぐに使えるモデルを求める人にとって、このリポジトリには現在論文とプロジェクトページしかない。
五、実装に向けて
厳密に言えば、この節には伝統的な意味での「インストール」は存在しない——公式のコードはインストールできない。実装に向けてできることは3つある。第一に、論文を読む:リポジトリ内に PDF が添付されており、状態定義、実行セマンティクス、RL 章節の完全な論証がすべて含まれている。第二に、付随ノートを読む:著者は Pretraining-RL-Science リポジトリに Prefill-Decode kernel mismatch ノートを置いており、プレフィルとデコードの2つの段階における数値とスケジューリングの不一致について述べている——これはまさに RLT が共有実行セマンティクスで埋めようとしている種類のギャップであり、2篇を対照しながら読むことで、設計動機が理解できる。第三に、実験を再現する:README の合成実験は規模が小さく(約 79K パラメータ)、2.4 の実行セマンティクスに従って自分で書き、parity タスクで通常の Transformer と比較すれば、PyTorch に精通した人であれば1〜2週間で初版を提出できる。リポジトリの内容は Apache-2.0 でオープンソース化されており、論文とドキュメントは自由に引用・改変可能である。
六、自分で同様の仕組みを構築する方法
「自分で一式を書く」ことはこのテーマにおいて特に実現可能である。なぜなら RLT の核心は、一つの状態定義と一条の訓練規律に過ぎないからだ。最小骨格は六つのステップ:
- 二つの役割に切り分ける:標準的な Transformer block を一つ用意し、重みを共有する二つのスタックに複製する。encoder スタックは入力全体を因果的にエンコードし、各層の K、V を残してグローバル記憶とする。decoder スタックは token ごとの生成を担う。層数は 48 である必要はなく、4 層対 4 層でメカニズムを検証できる。
- 完全な状態を定義する:decoder の状態を二元組 H_t = (s_t, C_t) と定義する。s_t は前ステップの最終隠状態、C_t は各層のスライディングウィンドウの KV キャッシュ(ウィンドウ W は現在の token を含み、W-1 個の履歴を残す)。初期状態 H_0 = (s_, ∅)、s_ はパラメータとして学習可能。
- 時間フィードバックを接続する:各新 token の入力は、その embedding と前ステップの
s_{t-1}をマージして構成される(小さな投影層を通してから加算すればよい)。その後 decoder スタックに入る:各層でまずウィンドウ内に対して SWA を行い、次に encoder 記憶に対して cross-attention を行い、最後に FFN を通す。 - 境界を守りリセットしない:prompt と response の境界において、s と SWA キャッシュはどちらもそのまま保持する——この一条こそが仕組み全体の魂であり、リセットすれば普通の Transformer に退化してしまう。
- full BPTT 訓練:teacher forcing で展開し、各ステップで次の合法 token を監督する。勾配は再帰軌跡全体を貫通させる。detach で速度を上げることは可能だが、それは勾配の近似に過ぎないことを忘れず、近似の結論に基づいて判断を下すこと。
- RL 時にキャッシュを再構築する:ポリシーが更新されるたび、パラメータに関連するキャッシュをすべて再計算する。行動 log-prob は真のサンプリング分布で計算し、importance sampling の前に support coverage を確認する。
核心ループを擬似コードで圧縮すると以下の通り:
H = (s_star, empty_cache) # 初期状態
for t in シーケンス:
x = embed(token[t]) + W_fb @ H.s # 時間フィードバック:前ステップの最終隠状態
for l in 1..L_D: # decoder 各層は各層の重みを使用(encoder とクロスステージで共有)
x = SWA(x, H.cache[l], window=W) # 局所記憶:W-1 個の履歴のみ残す
x = cross_attention(x, enc_kv) # グローバル記憶:現在位置からのみ読み出す
x = FFN(x)
H.cache[l].push(KV(x))
H.s = final_norm(x)
loss += CE(head(H.s), token[t+1]) # full BPTT、途中で切断しない
# prompt/response 境界:H.s と H.cache はどちらもリセットしない
六つのステップを合計すれば、メカニズム検証レベルの再現は、一〜二名で一ヶ月以内に結果が出る。本当に難しいのは書き上げることではなく、第 4、5 ステップの規律である——境界のリセットなしと勾配の切断なしは、ただの二行のコードに見えるが、それらこそが「無限時間深度」のすべての源である。
結論
RLT は Transformer(トランスフォーマー)の計算深度を層数から切り離す:48層の encoder(エンコーダー)がグローバルな記憶を提供し、48層の重みを共有する decoder(デコーダー)がスライディングウィンドウと時間的フィードバックによって有効な計算パスをシーケンスに伴って線形に伸ばし、訓練と推論を貫く完全な状態定義を用いて prompt(プロンプト)の境界における構造的なバイアスを塞いでいる。現在のところ、単一著者、3日間、約743スターの研究レポートであり、公式コードはなく、実験は79Kパラメータレベルの合成概念実証にすぎず、FLOPsは一致していない——スター数はアイデアを買っているのであって、エンジニアリングではない。しかし、latent reasoning(潜在推論)に関心のある人にとっては、その状態定義と、あの施工規範のような RL(強化学習)の章は、現在この方向において最も一項ずつ読む価値がある設計ドキュメントの一つである。
参照元
- Recurrent Looped Transformer GitHub リポジトリ(README master ブランチ、プロジェクトホームページ、論文 PDF Recurrent_Looppped_Transformer.pdf):https://github.com/yifanzhang-pro/recurrent-looped-tranformer
- GitHub リポジトリメタデータ(star/fork/作成日時/主要言語/ライセンス、api.github.com、2026 年 9 月時点)
- 初期の合成実験データ(READMEの「Preliminary synthetic experiments」セクション、独立貢献者 @AradhyeAgarwal による約 79K パラメータの実装)
- Prefill-Decode kernel mismatch ノート(yifanzhang-pro/Pretraining-RL-Science リポジトリ)