HRMとは?階層型推論モデルの仕組み、LLMとの違い、検証結果とローカル実行

code projected over woman
Photo by ThisIsEngineering on Pexels.com

HRM(Hierarchical Reasoning Model)は、高次と低次の二つの再帰モジュールを異なる頻度で動かし、内部状態を段階的に更新する推論モデルです。

2025年に公開された研究では、数独、迷路、ARC-AGIのように、規則に沿って探索を繰り返す課題で評価されました。一般的な大規模言語モデル(LLM)を置き換える万能モデルではなく、構造化された問題を少ない学習例で解くための研究として読むと位置づけをつかみやすくなります。

この記事では、HRMの仕組み、LLMとの違い、論文値と第三者検証の読み分け、公式リポジトリで試す際の注意点を順に説明します。

最初に押さえたい結論

  • HRMは、高次のHモジュールと低次のLモジュールを組み合わせた再帰型のアーキテクチャです。
  • Lが細かな計算を複数回進め、その結果を受けてHが更新されます。この入れ子の反復によって、固定段数の処理より深い計算を目指します。
  • 学習では1ステップ近似勾配を使い、時間方向へ全状態を展開するBPTTを避けます。
  • 論文は約2,700万パラメータと約1,000件の学習例による成果を報告しています。ただし、ARC Prizeの再検証では、階層構造だけでなく外側の反復、データ拡張、課題固有の埋め込みが結果に強く影響したと分析されています。
  • ローカルで試せますが、汎用チャット用途の完成品ではありません。まず公式の数独用データと学習済みチェックポイントで再現性を確認するのが現実的です。

HRMの基本構造

再帰型モデルとは、同じ計算部品を繰り返し使い、前の状態を次の計算へ渡すモデルです。層を一度だけ順番に通る構造と比べ、反復回数を増やすことで計算の深さを確保できます。

HRMの原論文は、脳の階層的な情報処理と異なる時間スケールから着想を得たと説明しています。ただし、HとLが特定の脳領域や脳波をそのまま再現するわけではありません。論文でも、両モジュールは概念上の抽象化だと明記されています。

HモジュールとLモジュール

HRMは、役割と更新頻度の異なる二つのモジュールを結合します。

  • Hモジュール:更新頻度が低く、問題全体に関わる抽象的な状態を保持します。
  • Lモジュール:更新頻度が高く、入力とHの状態を参照しながら細かな計算を繰り返します。

一つの高次サイクルの中でLが複数回更新され、その終端状態を受けてHが一度更新されます。Hが変わるとLの計算条件も変わるため、Lは同じ場所へ早く収束して止まるのではなく、新しい条件で次の計算段階へ進めます。論文はこの挙動を「階層的収束」と呼んでいます。

1ステップ近似勾配

BPTT(Backpropagation Through Time)は、再帰モデルの各時点の状態を保存し、時間をさかのぼって誤差を伝える学習方法です。反復が長くなるほど保存する状態が増えるため、メモリ負荷が大きくなります。

HRMは、各モジュールの最後の状態に対する勾配を使い、それ以前の状態を定数として扱う1ステップ近似を採用します。論文によれば、これにより逆伝播時のメモリ量を反復回数に依存しない形へ抑え、BPTTを使わずに学習できます。これは厳密な全履歴の勾配ではなく、固定点に近い状態を前提にした近似である点も押さえておく必要があります。

ACTと外側の反復

ACT(Adaptive Computational Time)は、問題ごとに計算を続けるか終了するかを決める仕組みです。HRMは一回の内部計算を終えるたびに予測結果と停止判定を出し、必要ならその状態を次の計算区間へ渡します。

この外側の反復は、HとLが一回の計算区間内で行う反復とは別です。両者を分けて理解すると、「二層構造があるから成績が上がったのか」「同じモデルで予測を繰り返した効果なのか」を検証しやすくなります。

HRMと一般的なLLMの違い

次の表は、論文で評価されたHRMと、文章を扱う一般的なLLMの性格を単純化して比べたものです。個々のLLMには推論用の追加機構があるため、すべての製品へ一律に当てはまる比較ではありません。

HRMと一般的なLLMの比較
比較項目 HRM 一般的なLLM
主な計算 HとLの内部状態を再帰的に更新する Transformerで次のトークンを順に予測する
論文での主な評価対象 数独、迷路、ARC-AGIなどの構造化課題 文章理解、知識利用、コード、対話など
中間過程 潜在状態の中で計算し、途中の文章を必要としない Chain-of-Thoughtでは途中の推論をトークンとして生成する
学習の前提 論文の実験では事前学習なしで課題別に学習する 一般に大規模な事前学習を経て用途別に調整する
読み方の注意 評価課題の形式と学習方法に強く依存する モデル、推論設定、評価条件によって結果が変わる

したがって、「HRMがLLMを上回った」という表現だけでは条件が足りません。どのデータセットを使い、課題ごとの学習を行ったか、比較先がどの設定だったかまで確認する必要があります。モデル比較の評価軸は、関連記事のベンチマークに振り回されないLLMの選び方と評価手順でも整理しています。

論文値とARC Prizeの検証結果

HRMの性能は、著者による報告と第三者検証を分けて読む必要があります。数字が異なる主な理由は、評価対象が公開評価セットか半秘匿セットかという条件の違いです。

HRMの主な報告値と検証値
情報源 対象 結果 解釈
原論文 ARC-AGIの公開評価 40.3% 約2,700万パラメータ、約1,000件の学習例を使った著者報告
ARC Prize ARC-AGI-1半秘匿評価 32% 公開評価とは難易度をそろえていない別の保持データによる検証
ARC Prize ARC-AGI-2半秘匿評価 2% ARC Prizeは、ARC-AGI-2で意味のある進歩を示す値とは評価していない

ARC PrizeによるHRMの検証記事は、ARC-AGI-1の結果について、モデル規模を考えれば注目に値し、論文値をおおむね再現できたと評価しています。一方、アブレーション(構成要素を外して影響を測る実験)から、次の制約も示しました。

  • 同程度のパラメータ数を持つTransformerと比べ、HとLの階層構造だけが生む差は小さかった。
  • 予測結果を再入力して改善する外側の反復が、性能へ大きく寄与した。
  • 学習時のデータ拡張が重要で、課題をまたぐ転移学習の寄与は限定的だった。
  • 課題IDの埋め込みに依存するため、学習時に見ていない形式へそのまま広げられるとは限らない。

この検証から導けるのは「HRMに価値がない」ではありません。評価結果を階層構造だけの効果と断定せず、反復方法、データ拡張、課題固有の学習まで含む一つのパイプラインとして評価すべきだということです。

ローカルで試す前の確認事項

HRMの公式GitHubリポジトリはApache-2.0で公開され、数独、迷路、ARC用のデータ作成、学習、評価コードと学習済みチェックポイントへの案内を掲載しています。

公式READMEはPyTorchとCUDAに加え、GPU世代に合うFlashAttentionの導入を前提としています。掲載時点ではCUDA 12.6の手順が示されていますが、ドライバ、PyTorch、CUDA拡張の組み合わせは環境によって変わります。READMEの最新版と各依存関係の対応表を実行直前に確認してください。

最初は学習済みモデルを評価する

初回から学習を始めると、環境構築の問題とモデルの問題を切り分けにくくなります。公式リポジトリが案内する学習済みチェックポイントを取得し、評価コードが最後まで動くことを先に確認すると、失敗箇所を絞れます。

git clone https://github.com/sapientinc/HRM.git
cd HRM
git submodule update --init --recursive
pip install -r requirements.txt

PyTorch、CUDA、FlashAttentionは、上の依存ファイルだけでなく公式READMEの前提手順も確認します。SSH鍵を設定していない環境でも取得できるよう、ここではHTTPSのURLを使っています。

数独の小規模例で学習経路を確認する

公式READMEには、1,000件の数独データを拡張して学習する単一GPU向けの例があります。RTX 4070搭載ノートPCで約10時間という記載は目安であり、GPUの電力設定、メモリ、ソフトウェアの版によって変動します。

python dataset/build_sudoku_dataset.py \
  --output-dir data/sudoku-extreme-1k-aug-1000 \
  --subsample-size 1000 --num-aug 1000

OMP_NUM_THREADS=8 python pretrain.py \
  data_path=data/sudoku-extreme-1k-aug-1000 \
  epochs=20000 eval_interval=2000 \
  global_batch_size=384 \
  lr=7e-5 puzzle_emb_lr=7e-5 \
  weight_decay=1.0 puzzle_emb_weight_decay=1.0

長時間の学習前に、データ作成、短い試験実行、チェックポイント保存、評価という四つの経路を小さな設定で確認します。小標本学習では結果が揺れ、数独では学習後半に数値不安定が起こり得るとREADMEに記載されているため、単一の最高値だけで判断せず、複数回の結果と早期停止の条件を記録します。

導入判断に使える評価手順

  1. 問題を固定する
    入力形式、正解形式、許容時間を決めます。自由文の業務課題を、数独と同じ条件で解けるとは仮定しません。
  2. 比較対象を用意する
    既存のアルゴリズム、同規模のTransformer、現在使っているLLMなど、実務で置き換え候補になる方法と比べます。
  3. 公式結果を再現する
    学習済みチェックポイントと数独の小規模例で、環境と評価コードが正しく動くことを確認します。
  4. 構成要素を分けて測る
    反復回数、停止判定、データ拡張を変え、精度、処理時間、GPUメモリを同時に記録します。
  5. 未知データで判断する
    学習に使った課題と同じ形式の保持データを用意し、過学習や課題IDへの依存を確認します。

HRMを試す価値が高いのは、入力と正解を明確に表せて、反復的な探索が必要な課題です。自由な文章生成や広い知識を問う対話では、HRMの原論文が示す証拠だけで優位性を判断できません。研究の魅力と、採用判断に必要な証拠の範囲を分けることが、安全な評価につながります。

よくある疑問

HRMはLLMの代わりになりますか

原論文が示したのは、数独、迷路、ARC-AGIなどの構造化課題における結果です。自然言語を幅広く扱う汎用LLMの代替を示したものではありません。用途と評価データをそろえて比較する必要があります。

「脳に学ぶ」とは脳を再現したという意味ですか

違います。高次と低次で更新頻度を分ける着想を脳の階層性と時間スケールから得ていますが、HとLは概念上のモジュールです。特定の脳領域を忠実に再現したモデルではありません。

40.3%と32%のどちらが正しいのですか

評価データが異なるため、どちらか一方が直ちに誤りという関係ではありません。40.3%は論文の公開評価、32%はARC Prizeの半秘匿評価です。比較するときはデータセット、実行条件、指標を一緒に示します。

一台のGPUでも試せますか

公式READMEには、単一GPUで数独の小規模例を学習する手順があります。ただし、必要なソフトウェアと実行時間はGPU世代や設定に左右されます。まず学習済みチェックポイントの評価から始めると安全です。

HRMをどう評価するか

HRMは、内部状態で反復計算を進める小型モデルが、構造化された推論課題でどこまで性能を伸ばせるかを示した研究です。HとLによる階層的収束、BPTTを避ける近似勾配、ACTによる停止判定は、それぞれ検討に値する設計です。

ただし、ARC Prizeの検証は、結果の源泉を階層構造だけへ帰せないことも示しました。ローカルで試す場合は、公開された数字を再掲するだけでなく、外側の反復、データ拡張、課題ID、未知データでの成績を切り分けて測る必要があります。

参照した一次情報と検証情報

この記事に関連する株式会社greedenの取り組み

HRMのような新手法は、論文値をそのまま採用せず、自社データで精度と運用負荷を確かめる必要があります。株式会社greedenは、生成AIを用いた施策について、課題整理から導入後の定着まで伴走します。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)