Grok の動作は、巨大な言語モデルが入力を受け取り、完成した回答を一度に返すという単純な構図では説明できない。最下層では、入力された文字列をトークンへ分割し、数値ベクトルへ変換したうえで、文脈に続く次のトークンの確率分布を計算する。その上には、生成、検証、訂正、検索、コード実行といった行動を、課題の状態に応じて選ぶ学習済みの方策がある。さらに、その選択に従って外部の検索器やコード実行環境を動かし、得られた結果を再びモデルへ渡す実行システムが接続される。Grok は、基盤モデル、推論方策、実行システムという三つの層が連動することで、一回の文章生成を超えた処理を実現している。
この三層を分けることは、製品機能を分類するためだけに必要なのではない。既稿では、基盤モデル、チャットサービス、API、開発エージェントが、それぞれ異なる技術的役割を持つことを整理した[1]。また、生成 AI の競争軸が、モデル単体の性能から、外部の道具、業務データ、操作権限、実行環境を組み合わせて仕事を完了する能力へ移りつつあることも論じた[2]。Grok の内部構造と後続世代の機能を順にたどると、この変化は抽象的な市場動向ではなく、次トークンを予測する数理モデルの上に、行動選択と外部実行の仕組みが積み重なった結果として捉えられる。
1. Grok のアルゴリズムは一つではない
Grok に関する説明には、3140 億パラメータの MoE、長時間考える推論モデル、Web や X の検索、コード実行、複数エージェントの協調が並ぶ。しかし、これらは同じ場所で動く機能ではない。MoE はニューラルネットワーク内部の行列計算であり、検索はモデル外部の情報取得である。強化学習はモデルの振る舞いを形成する学習方法であり、複数エージェントは複数の推論過程を上位の制御系で協調させる方式である。
| 階層 | 中心となる計算 | Grok で確認できる例 |
|---|---|---|
| 基盤モデル | トークン列から次のトークンの確率分布を計算する。 | Grok-1 の Transformer、注意機構、RoPE、MoE が該当する。 |
| 推論方策 | 生成、検証、訂正、検索、実行などの行動を、課題の状態に応じて選ぶ。 | Grok 3 以降で強調された強化学習と推論時演算が該当する。 |
| 実行システム | 外部の検索器、コード実行環境、文書、複数エージェントを接続し、観測と行動を反復する。 | Grok 4 以降の道具利用、Agent Tools API、Multi Agent が該当する。 |
三層のうち、ニューラルネットワークの構造を詳細に検証できる基準点は Grok-1 である。後続の Grok については、学習方法や外部機能の一部が公開されている一方、層数、パラメータ数、Expert の数などの内部構造は開示されていない。この情報の非対称性を保ったまま、Grok がどのような計算システムへ拡張されたのかを順に追う。
最下層の基盤モデルは、現在までのトークン列を条件として、次に現れるトークンの確率を計算する。入力列を \(x_1,x_2,\ldots,x_t\) とすると、モデルが求めるのは次の条件付き確率である。
\[
p_\theta(x_{t+1}\mid x_1,x_2,\ldots,x_t)
\]
\(\theta\) は、埋め込み、注意機構、Expert、ルーター、出力層などの全パラメータを表す。文章全体の確率は、各位置で次のトークンを予測する確率の積へ分解できる。
\[
p_\theta(x_1,x_2,\ldots,x_T)
=
\prod_{t=1}^{T}
p_\theta(x_t\mid x_1,x_2,\ldots,x_{t-1})
\]
| 記号 | 意味 |
|---|---|
| \(x_t\) | トークン列の位置 \(t\) にあるトークンを表す。 |
| \(t\) | トークン列の中で現在対象としている位置を表す。 |
| \(T\) | 文章全体に含まれるトークン数を表す。 |
| \(\theta\) | モデルが学習した全パラメータをまとめて表す。 |
| \(p_\theta(x_t\mid x_1,\ldots,x_{t-1})\) | それ以前のトークンが与えられたとき、位置 \(t\) に \(x_t\) が現れる条件付き確率を表す。 |
| \(\mid\) | 右側の情報を条件として左側の確率を求めることを表す。 |
| \(\prod_{t=1}^{T}\) | 位置 1 から \(T\) までの条件付き確率を順に掛け合わせることを表す。 |
この式が示すのは、Grok が最終回答を一括して計算しているわけではないということである。次のトークンを選び、それを文脈へ追加し、さらに次の確率分布を求める処理を繰り返す。検索命令やコード実行命令も、モデルの側から見れば、生成可能な行動表現の一つである。
第二層では、この自己回帰生成が問題解決の方策として調整される。モデルは文章を続けるだけでなく、検討を続ける、誤りを訂正する、検索する、コードを実行する、結果を読んで再試行するといった行動を選ぶようになる。第三層は、選ばれた検索や実行を現実に動かし、その結果を再びモデルの文脈へ戻す。現在の Grok の能力は、三層のうち一つだけを見ても説明できない。
2. Grok-1 は文字列を次トークン確率へ変換する
xAI は 2024 年 3 月、3140 億パラメータを持つ Grok-1 の重みと構造を公開した。公式説明では、Grok-1 は 1 トークンにつき全重みの約 25% が活性化する MoE 型の基盤モデルであり、特定用途の対話調整を受けていない事前学習済みモデルとされる[3]。公開リポジトリには、8 個の Expert、1 トークン当たり 2 個の Expert、64 層、6144 次元の内部表現、48 個のクエリーヘッド、8 個のキー・値ヘッド、13 万 1072 語彙、8192 トークンの最大文脈長が記載されている[4]。ルーター、Expert、注意機構の具体的な処理は参照実装から追跡できる[5]。
| 仕様 | Grok-1 の公開値 | 計算上の意味 |
|---|---|---|
| 総パラメータ数 | 3140 億 | 全 Expert と共有部分を含むモデル全体の容量を表す。 |
| Transformer 層 | 64 層 | 注意機構と MoE による表現変換を 64 回積み重ねる。 |
| 内部表現 | 6144 次元 | 各トークンを 6144 個の実数からなるベクトルとして処理する。 |
| Expert | 8 個のうち 2 個を利用 | トークンごと、層ごとに少数のフィードフォワードネットワークを選ぶ。 |
| 注意ヘッド | クエリー 48、キー・値 8 | 複数のクエリーヘッドがキーと値を共有し、KV キャッシュを抑える。 |
| 語彙 | 13 万 1072 トークン | 入力と出力で扱う記号単位の集合を定める。 |
| 最大文脈長 | 8192 トークン | 一回の計算で直接参照できるトークン列の上限を定める。 |
2.1 トークン化が文字列を離散的な記号列へ変える
ニューラルネットワークは、文字列をそのまま行列へ掛けることができない。最初に、文章を有限個の記号へ分割し、それぞれを整数 ID へ変換する。Grok-1 は SentencePiece を使用する。SentencePiece は、空白で単語を分けられることを前提にせず、文字列から部分語の語彙を学習する方式である[6]。
入力文字列を \(s\)、トークン化を行う関数を \(T\) とすると、結果は次の整数列になる。
\[
T(s)=(x_1,x_2,\ldots,x_n)
\]
各 \(x_i\) は 1 個の単語とは限らない。頻出語は一つにまとまり、珍しい固有名詞、複合語、プログラムの識別子は複数の断片へ分かれることがある。トークン化の違いは、意味の表現だけでなく、同じ文章が何トークンを消費するかを変える。最大文脈長がトークン数で定義される以上、分割の効率は実際に読める文章量へ直結する。
整数 ID は、埋め込み行列 \(W_E\) の行を参照するために使われる。Grok-1 では、各トークンが 6144 次元のベクトルへ写像される。
\[
h_i^{(0)}=W_E[x_i]
\]
| 記号 | 意味 |
|---|---|
| \(s\) | モデルへ入力される元の文字列を表す。 |
| \(T\) | 文字列をトークン ID の列へ変換するトークン化関数を表す。 |
| \(x_i\) | 位置 \(i\) にあるトークンの整数 ID を表す。 |
| \(n\) | トークン化後の列に含まれるトークン数を表す。 |
| \(W_E\) | 各トークン ID に対応するベクトルを保持する埋め込み行列を表す。 |
| \(W_E[x_i]\) | 埋め込み行列からトークン ID \(x_i\) に対応する行を取り出す操作を表す。 |
| \(h_i^{(0)}\) | Transformer の第 1 層へ入る前の、位置 \(i\) の初期ベクトルを表す。 |
このベクトルの各次元に、「名詞」「数学」「日本語」といった固定ラベルが一対一で付いているわけではない。意味、文法、位置、ほかの語との関係は、多数の次元に分散して表現される。言葉は、計算可能な高次元空間へ移された時点で、辞書項目ではなく、文脈によって変形される数値状態になる。
2.2 自己注意機構が過去のトークンとの関係を計算する
埋め込みだけでは、各トークンは独立したベクトルにすぎない。Transformer の自己注意機構は、各位置が、それ以前のどの位置から情報を受け取るかを計算する。Transformer の基本構造では、入力行列 \(H\) からクエリー、キー、値を作る[7]。
\[
Q=HW_Q,\qquad K=HW_K,\qquad V=HW_V
\]
注意機構の出力は、簡略化すると次式で表せる。
\[
\operatorname{Attention}(Q,K,V)
=
\operatorname{Softmax}
\left(
\frac{QK^\top}{\sqrt{d_k}}+M
\right)V
\]
\(QK^\top\) は、各クエリーと各キーの対応度を並べた行列である。値が大きい位置ほど、そのトークンの値ベクトル \(V\) を強く取り込む。分母の \(\sqrt{d_k}\) は、次元数が大きいと内積が過度に大きくなることを抑える。\(M\) は因果マスクであり、現在位置より後ろを参照できないようにする。
\[
M_{ij}
=
\begin{cases}
0 & j\leq i\\
-\infty & j>i
\end{cases}
\]
| 記号 | 意味 |
|---|---|
| \(H\) | 各トークンの現在の内部表現を行方向に並べた入力行列を表す。 |
| \(W_Q,W_K,W_V\) | 入力表現からクエリー、キー、値を作るために学習される射影行列を表す。 |
| \(Q\) | 各位置がどの情報を探すかを表すクエリーの行列である。 |
| \(K\) | 各位置がどのような情報を持つかを照合するキーの行列である。 |
| \(V\) | 注意重みに応じて実際に取り込まれる値ベクトルの行列である。 |
| \(QK^\top\) | 各クエリーと各キーの内積を計算し、位置同士の対応度を並べた行列を作る。\(^\top\) は行列の転置を表す。 |
| \(d_k\) | 一つのキーベクトルの次元数を表す。 |
| \(M\) | 未来の位置を参照できないようにする因果マスクの行列を表す。 |
| \(i,j\) | \(i\) は情報を受け取る位置、\(j\) は参照候補となる位置を表す。 |
| Softmax | 各参照候補のスコアを、合計が 1 になる非負の注意重みへ変換する。 |
未来側の位置には実質的な負の無限大が加わり、Softmax 後の重みが 0 になる。これにより、学習時にも生成時にも、位置 \(i\) の予測は位置 \(i\) 以前の情報だけに基づく。
注意重みは、文中の重要語を一枚の図で説明する単純な重要度ではない。複数のヘッドが異なる関係を処理し、その出力が 64 層にわたって変換されるため、単一の重みだけから回答理由を再構成することはできない。注意機構の役割は、最終判断を直接示すことよりも、各トークンの状態へ文脈情報を運ぶことにある。
2.3 Grouped-Query Attention が KV キャッシュを抑える
Grok-1 は、48 個のクエリーヘッドに対して、キーと値のヘッドを 8 個だけ持つ。これは Grouped-Query Attention、略して GQA と呼ばれる構成に対応する。GQA は、複数のクエリーヘッドが同じキー・値ヘッドを共有し、通常の複数ヘッド注意と単一キー・値型の注意の中間を作る[8]。
Grok-1 では、クエリーヘッド 48 個をキー・値ヘッド 8 個へ対応させるため、1 組のキーと値を 6 個のクエリーヘッドが共有する。
\[
\frac{48}{8}=6
\]
生成時には、過去のトークンについて計算済みのキーと値を KV キャッシュへ保存する。毎回すべての過去トークンを最初から計算し直す必要はなくなるが、文脈が長くなるほど保存量は増える。キー・値ヘッドを 48 個から 8 個へ減らせば、キーと値に関するキャッシュ量は概念上 6 分の 1 になる。クエリー側の計算や注意行列まで一律に 6 分の 1 になるわけではないが、長文生成のメモリー負担を下げる効果がある。
ここから見えるのは、モデルの大きさと実行可能性の間にある別の制約である。パラメータを増やすだけでは、長い文脈を高速に処理できるとは限らない。生成済み情報を何個のキーと値として保持するかも、推論速度と同時利用数を左右する。
2.4 RoPE が語順と距離を注意計算へ組み込む
自己注意機構は、入力を集合として受け取るだけでは、語順を区別できない。Grok-1 は Rotary Position Embedding、略して RoPE を使い、位置に応じてクエリーとキーの成分を回転させる。RoPE は、絶対位置を別のベクトルとして足すのではなく、注意機構の内積へ相対的な位置差を反映する[9]。
2 次元の成分対を位置 \(m\) に応じて回転する行列を \(R(m,\theta)\) とすると、次のように表せる。
\[
R(m,\theta)
=
\begin{pmatrix}
\cos(m\theta) & -\sin(m\theta)\\
\sin(m\theta) & \cos(m\theta)
\end{pmatrix}
\]
位置 \(m\) のクエリーと位置 \(n\) のキーは、次のように変換される。
\[
q_m’=R(m,\theta)q_m,\qquad
k_n’=R(n,\theta)k_n
\]
| 記号 | 意味 |
|---|---|
| \(m,n\) | クエリーとキーが置かれているトークン位置を表す。 |
| \(\theta\) | ベクトルの成分対ごとに定められる回転の基本角度を表す。第 1 章でモデル全体のパラメータを表した \(\theta\) とは、この式の中での役割が異なる。 |
| \(R(m,\theta)\) | 位置 \(m\) に応じた角度だけ 2 次元の成分対を回転させる行列を表す。 |
| \(q_m,k_n\) | 位置情報を組み込む前の、位置 \(m\) のクエリーと位置 \(n\) のキーを表す。 |
| \(q_m’,k_n’\) | 位置に応じた回転を適用した後のクエリーとキーを表す。 |
| \(n-m\) | 二つのトークンの相対的な位置差を表し、回転後の内積へ反映される。 |
回転後の内積には \(n-m\) という位置差が現れる。二つの位置の間隔が変わると回転角の差も変わるため、同じ語の組であっても、隣接している場合と遠く離れている場合では注意計算の内積が変わる。モデルは、ある語が文の何番目にあるかだけでなく、参照対象からどれだけ離れているかを注意計算へ織り込める。言語の意味が語の有無だけでなく、順序、係り受け、距離に依存する以上、位置表現は補助情報ではなく、文脈理解を成立させる一部である。
3. MoE はモデル容量と毎回の演算量を切り離す
注意機構が、ほかのトークンからどの情報を受け取るかを決めるのに対し、フィードフォワードネットワーク、略して FFN は、受け取った情報を各トークンごとに変換する。通常の密な Transformer では、すべてのトークンが同じ FFN を通る。Grok-1 は、この部分を複数の Expert に置き換え、入力ごとに一部だけを使う。
3.1 ルーターが 8 個の Expert から 2 個を選ぶ
スパース MoE の基本は、複数の Expert と、入力をどの Expert へ送るかを決める学習可能なゲートにある。大規模なニューラルネットワークでこの方式を体系化した研究は、全パラメータを毎回使わず、条件付き計算によってモデル容量を増やす構造を示した[10]。
Grok-1 の Expert は、独立したゲート付き FFN である。Expert \(i\) の変換を簡略化すると、次のように書ける。
\[
E_i(x)
=
\left[
(xW_{u,i})
\odot
\phi(xW_{g,i})
\right]W_{d,i}
\]
\(W_{u,i}\) は内部表現を拡張し、\(W_{g,i}\) は情報を通す割合を決めるゲートを作り、\(W_{d,i}\) は元の次元へ戻す。\(\phi\) は非線形な活性化関数、\(\odot\) は要素ごとの積を表す。8 個の Expert は同じ形を持つが、学習される重みは別々である。
ルーターは、トークンの内部表現 \(x\) から 8 個のスコアを計算する。
\[
z=xW_r
\]
Softmax によって各 Expert の重みを得る。
\[
p_i(x)
=
\frac{\exp(z_i)}
{\sum_{j=1}^{8}\exp(z_j)}
\]
上位 2 個の集合を \(S(x)\) とすると、MoE の出力は次の重み付き和になる。
\[
S(x)=\operatorname{Top2}\{p_1(x),p_2(x),\ldots,p_8(x)\}
\]
\[
\operatorname{MoE}(x)
=
\sum_{i\in S(x)}
\widetilde{p}_i(x)E_i(x)
\]
| 記号 | 意味 |
|---|---|
| \(x\) | 現在のトークンがその Transformer 層で持つ内部表現を表す。 |
| \(i,j\) | 8 個の Expert を区別する番号を表す。 |
| \(E_i(x)\) | Expert \(i\) が入力 \(x\) に対して計算する FFN の出力を表す。 |
| \(W_{u,i},W_{g,i},W_{d,i}\) | Expert \(i\) が持つ、拡張、ゲート、縮小のための学習済み行列を表す。 |
| \(\phi\) | 入力を直線的な変換だけでは表せない形へ変える活性化関数を表す。 |
| \(\odot\) | 同じ位置の要素同士を掛け合わせる要素積を表す。 |
| \(W_r\) | 入力 \(x\) から各 Expert のルーティングスコアを作る行列を表す。 |
| \(z_i\) | Softmax を適用する前の Expert \(i\) のルーティングスコアを表す。 |
| \(p_i(x)\) | 8 個の Expert 全体の中で、Expert \(i\) へ与えられたルーティング重みを表す。 |
| \(S(x)\) | 入力 \(x\) に対して選ばれた上位 2 個の Expert の集合を表す。 |
| \(\widetilde{p}_i(x)\) | 選ばれた 2 個の Expert の出力を合成するときに使う重みを表す。 |
| \(\sum_{i\in S(x)}\) | 選択された Expert の出力だけを重み付きで足し合わせることを表す。 |
\(\widetilde{p}_i(x)\) は、選ばれた 2 個の Expert の寄与を表す重みである。ルーティングは質問全体に一度だけ行われるのではない。トークンごと、Transformer 層ごとに内部表現が変わるため、同じ単語でも文脈と層によって異なる Expert が選ばれ得る。
Expert という名称は、数学担当、法律担当、日本語担当のような人間向けの専門分野を想像させる。しかし、役割は通常、学習中に自発的に形成される。特定の言語、数値、コード構文、文法的な位置、意味特徴などへ反応が偏ることはあり得るが、一つの Expert が独立した完全な言語モデルとして一分野を担当するわけではない。注意機構、埋め込み、正規化、出力層は共有され、Expert は各層の FFN 変換だけを担う。
3.2 25% の活性化は、モデル全体が 4 分の 1 になることを意味しない
8 個の Expert のうち 2 個だけを計算するため、Expert 部分の選択率は次の値になる。
\[
\frac{2}{8}=0.25
\]
この 25% が MoE の利点を端的に示す。8 個すべての FFN を保持しながら、各トークンで実行するのは 2 個だけである。密なモデルでは、保存するパラメータを増やすと毎回の演算量も増えやすい。MoE では、全体が保持する容量と、一回の入力で通る計算経路を分けられる。
ただし、Grok-1 全体の演算量、メモリー、速度が厳密に 25% になるわけではない。埋め込み、注意機構、正規化、ルーター、出力層は、Expert の選択にかかわらず動く。また、別のトークンは別の Expert を選ぶため、8 個の Expert すべての重みを利用可能な場所へ保持しなければならない。
3140 億パラメータを 16 ビット、すなわち 1 パラメータ当たり 2 バイトで保持すると、重みだけで概算 628 GB になる。
\[
314\times10^9\times2
=
628\times10^9\ \text{bytes}
\]
8 ビットに量子化しても概算 314 GB である。MoE は保存容量を 4 分の 1 にする小型化技術ではない。大量の重みを保持したまま、その瞬間に行う行列演算を限定する技術である。
| 資源 | MoE による変化 | 残る制約 |
|---|---|---|
| 総パラメータ容量 | 多数の Expert を追加して大きくできる。 | 全 Expert の重みを保存し、利用可能にしておく必要がある。 |
| トークン当たりの演算 | 選択された Expert だけを計算するため抑えられる。 | 共有される注意機構や出力層の計算は残る。 |
| メモリー帯域 | 未選択の Expert の重みを毎回読む必要は減る。 | 選択された重みを高速に供給できなければ演算器が待つ。 |
| GPU 間通信 | Expert を複数装置へ分散できる。 | トークンと計算結果を担当装置へ往復させる必要がある。 |
3.3 ルーティングは意味の選択であると同時に資源配分である
一台の GPU に全 Expert を載せられない場合、Expert を複数装置へ分散する。GShard は、条件付き計算を多数の装置へ分割し、巨大な MoE を学習する構造を示した[11]。実際の処理では、各装置が持つトークンをルーティング先ごとに並べ替え、担当 Expert のある装置へ送り、計算結果を元の位置へ戻す全対全通信が必要になる。
- トークンごとに上位 Expert を選ぶ。
- 同じ Expert を使うトークンをまとめる。
- 担当 GPU へトークン表現を転送する。
- 各 Expert が FFN を計算する。
- 結果を元の GPU へ返す。
- 元のトークン順へ並べ直し、残差接続へ加える。
この通信があるため、理論上の行列演算量が 4 分の 1 でも、実時間が同じ比率で短くなるとは限らない。特定の Expert にトークンが集中すれば、その Expert を担当する GPU が処理を終えるまで全体が待つ。Switch Transformer は、ルーティングの単純化とともに、Expert の利用率の偏り、容量制限、低精度学習の不安定性を主要課題として扱った[12]。ST-MoE は、ルーターの安定性、正則化、下流課題への転移まで含めて、スパースモデルを安定して学習する条件を整理している[13]。
言語モデルの予測損失だけを最小化すると、一部の Expert がわずかに選ばれやすくなり、その Expert だけが多く学習し、さらに選ばれやすくなる循環が生じ得る。そこで、主損失へ負荷分散の補助損失を加える。
\[
L
=
L_{\mathrm{LM}}
+
\lambda L_{\mathrm{balance}}
\]
\(L_{\mathrm{LM}}\) は次トークン予測の損失、\(L_{\mathrm{balance}}\) は Expert の利用偏りを抑える損失、\(\lambda\) は両者の重みである。均等化を強くしすぎれば、入力に適した Expert を選ぶ意味が薄れる。弱すぎれば、通信と計算が一部へ集中する。ルーターは、意味的に適切な変換を選ぶ分類器であると同時に、分散計算機の負荷を配る資源割当器でもある。
各 Expert に一度に受け入れられるトークン数の上限を設ける方式では、容量を超えたトークンを次点の Expert へ回すか、計算を省略する必要が生じる。MegaBlocks は、容量超過を避けるための埋め合わせ計算やトークン破棄に代えて、動的なトークン数をブロックスパース演算で効率よく処理する方法を示した[14]。DeepSpeed-MoE は、Expert 並列、テンソル並列、データ並列を組み合わせ、大規模 MoE の学習と推論を実際の装置配置へ落とし込む問題を扱う[15]。
Grok-1 の公開リポジトリは、公開された MoE 実装が高速化を目的とした本番コードではなく、専用カーネルを使わずにモデルの正しさを検証する参照実装であると明記している[4]。公開コードからネットワークの論理は追えるが、xAI の本番環境における Expert 配置、通信方式、専用カーネル、量子化、バッチ処理を再現できるわけではない。MoE は数式だけで完結せず、分散システムの設計によって実効性能が決まる。
4. 次トークン生成は、強化学習によって課題達成の方策として調整される
4.1 事前学習は能力の素材を作る
Grok-1 の公開重みは、2023 年 10 月に終了した事前学習段階の基盤モデルである。事前学習では、正解となる次トークンの確率を高める。正解列を \(x_1^*,x_2^*,\ldots,x_T^*\) とすると、損失は次の負の対数尤度で表せる。
\[
L_{\mathrm{LM}}
=
-\sum_{t=1}^{T}
\log
p_\theta(x_t^*\mid x_1^*,x_2^*,\ldots,x_{t-1}^*)
\]
| 記号 | 意味 |
|---|---|
| \(L_{\mathrm{LM}}\) | 次トークン予測がどれだけ外れたかを表す言語モデルの損失であり、小さいほど正解列へ高い確率を与えている。 |
| \(x_t^*\) | 学習データで位置 \(t\) に実際に現れた正解トークンを表す。上付きの \(^*\) は正解データであることを示す。 |
| \(p_\theta(x_t^*\mid x_1^*,\ldots,x_{t-1}^*)\) | 正解の過去列を条件として、モデルが正解トークン \(x_t^*\) に与えた確率を表す。 |
| \(\log\) | 確率の積を加算可能な量へ変え、低い確率へ大きな罰を与える対数を表す。 |
| \(-\sum_{t=1}^{T}\) | 各位置の対数確率を負にして合計し、正解確率が低いほど損失が大きくなる形へ変える。 |
大量の文章とコードについてこの予測を繰り返すと、文法、事実の関連、典型的な論理展開、プログラム構造がモデルの重みへ分散して取り込まれる。しかし、この目的関数が直接評価するのは、学習データの続きを高い確率で予測できるかである。質問へ簡潔に答える、誤りを認める、外部検索を選ぶ、危険な操作を避けるといった行動規則は、次トークン予測だけでは定まらない。
対話モデルを作る際には、望ましい指示と応答の組による教師あり調整や、人間の選好を利用した調整が加わる。InstructGPT の研究は、事前学習、教師あり指示調整、選好モデル、強化学習を分け、モデル規模だけでは人間の意図に沿う応答が成立しないことを示した[16]。これは Grok の具体的な学習手順を証明する資料ではなく、基盤モデルから対話・行動方策へ移る際に必要となる一般的な構造を説明する。
4.2 強化学習は生成列を課題達成の行動として評価する
強化学習では、現在の文脈を状態 \(s_t\)、次に生成するトークンや道具呼び出しを行動 \(a_t\) とみなす。モデルが出す条件付き確率分布を、状態に応じて次の行動を選ぶ方策として扱う。
\[
\pi_\theta(a_t\mid s_t)
\]
一連の状態と行動を軌跡 \(\tau\) とすると、学習の目的は、その軌跡から得られる報酬の期待値を高めることになる。
\[
\tau=(s_0,a_0,s_1,a_1,\ldots,s_T)
\]
\[
J(\theta)
=
\mathbb{E}_{\tau\sim\pi_\theta}
[R(\tau)]
\]
| 記号 | 意味 |
|---|---|
| \(s_t\) | 時点 \(t\) までの入力、生成履歴、道具結果などを含む現在の状態を表す。 |
| \(a_t\) | 時点 \(t\) にモデルが選ぶ次のトークンまたは道具呼び出しを表す。 |
| \(\pi_\theta(a_t\mid s_t)\) | 状態 \(s_t\) で行動 \(a_t\) を選ぶ確率を与える方策を表す。 |
| \(\tau\) | 課題開始から終了までに通った状態と行動の系列である軌跡を表す。 |
| \(R(\tau)\) | 軌跡 \(\tau\) が課題をどの程度うまく達成したかを数値化した報酬を表す。 |
| \(\mathbb{E}_{\tau\sim\pi_\theta}\) | 現在の方策から生じ得る多数の軌跡について、報酬の平均を取ることを表す。 |
| \(J(\theta)\) | 方策全体の良さを表す目的関数であり、強化学習ではこの値を大きくするようにパラメータを調整する。 |
数学問題なら最終解が正しいか、コード課題ならテストへ通るか、形式指定なら制約を満たしたかを報酬へできる。途中の文章が自然であることより、最終的に課題を解けたかを直接評価できる点が、次トークン予測の損失だけで学ぶ場合との違いである。
xAI は Grok 3 について、大規模な強化学習により、数秒から数分にわたって推論し、誤りを訂正し、別の方法を探索すると説明した[17]。ここで「考える」と呼ばれているものは、ニューラルネットワークの外に人間型の思考器官が追加されたという意味ではない。検討、計算、訂正、後戻りを含む長い生成系列が、課題を解く行動として選ばれやすくなったと捉えられる。
ただし、xAI は Grok 3 や後続モデルで使った具体的な方策更新式、報酬関数、検証器の構造を公開していない。正答報酬、過程評価、モデルによる採点、複数候補の比較がどの割合で使われたかは確定できない。公式に確認できるのは、強化学習が推論、訂正、探索能力の形成に使われたという範囲である。
4.3 推論時演算が難しい問題へ追加の計算を割り当てる
従来の拡大則では、学習時のデータ、パラメータ、演算量を増やすことが中心だった。推論モデルでは、利用時に一問へ割り当てる演算量も性能変数になる。性能を概念的に表すと、次の関係になる。
\[
P=f(C_{\mathrm{train}},C_{\mathrm{test}})
\]
| 記号 | 意味 |
|---|---|
| \(P\) | 対象課題で観測されるモデルの性能を表す。 |
| \(C_{\mathrm{train}}\) | モデルを作る学習段階で投入した演算量を表す。 |
| \(C_{\mathrm{test}}\) | 学習済みモデルが一つの問題を解く推論段階で使う演算量を表す。 |
| \(f\) | 学習時演算量と推論時演算量が性能へどう影響するかをまとめた関係を表し、特定の一次式を意味するものではない。 |
\(C_{\mathrm{train}}\) は学習時演算量、\(C_{\mathrm{test}}\) は問題を解く際の演算量である。推論時に複数候補を生成し、検証し、誤った方針から戻ることができれば、同じ重みでも難しい問題へ多くの計算を配分できる。推論時演算の拡大が、モデルのパラメータ拡大より効率的になる条件を分析した研究もある[18]。
追加計算の実装には、長い一系列の推論、複数候補の標本抽出、探索木、自己評価、外部検証器など複数の方式がある。Grok について公開された説明だけでは、内部でどの方式をどのように組み合わせているかは分からない。それでも、モデル性能を総パラメータ数だけで測れなくなったことは明確である。同じモデルでも、一問へ許す時間、生成トークン数、道具呼び出し回数によって到達可能な答えが変わる。
5. 道具利用はモデル外部を計算過程へ組み込む
強化学習によって長く推論できても、モデルの重みに存在しない最新情報を知ることや、生成したコードが実際に動くかを確定することはできない。Grok 4 は、Web と X の検索、コード実行を利用するよう学習されたモデルとして発表された[19]。ここで計算の範囲が、固定されたニューラルネットワークから外部環境へ広がる。
5.1 道具呼び出しは生成可能な行動の一つである
道具呼び出しを、道具名と引数を含む一つの構造化された行動単位として抽象化する。通常の語彙トークンの集合を \(\mathcal{V}\)、検索やコード実行などの道具呼び出しを \(\mathcal{T}\) とすると、モデルが選べる行動集合は次のように表せる。
\[
\mathcal{A}
=
\mathcal{V}\cup\mathcal{T}
\]
モデルは状態 \(s_t\) に応じて、文章を続けるか、道具を呼ぶかを選ぶ。
\[
a_t\sim\pi_\theta(a_t\mid s_t)
\]
道具を呼ぶ場合、外部システムが処理を実行し、観測結果 \(o_t\) を返す。
\[
o_t=\operatorname{Tool}(a_t)
\]
その結果を含めて次の状態を作る。
\[
s_{t+1}=F(s_t,a_t,o_t)
\]
| 記号 | 意味 |
|---|---|
| \(\mathcal{A}\) | モデルが選択できる行動全体の集合を表す。 |
| \(\mathcal{V}\) | 通常の文章や構造化出力を作るための語彙トークンの集合を表す。 |
| \(\mathcal{T}\) | 検索、コード実行など、外部システムへ渡す道具呼び出しの集合を表す。 |
| \(\cup\) | 二つの集合を合わせ、どちらかに含まれる行動を選択可能にする和集合を表す。 |
| \(a_t\sim\pi_\theta(a_t\mid s_t)\) | 状態 \(s_t\) に対する方策の確率分布から、次の行動 \(a_t\) を選ぶことを表す。 |
| \(o_t\) | 検索結果、実行結果、エラーなど、行動後に外部環境から返る観測を表す。 |
| \(\operatorname{Tool}(a_t)\) | 選ばれた行動を対応する外部道具で実行する処理を表す。 |
| \(F\) | 現在の状態、選択した行動、得られた観測を組み合わせて次の状態を作る更新処理を表す。 |
Toolformer は、言語モデルが、どの道具を、どの位置で、どの引数によって呼ぶかを学習する枠組みを示した[20]。ReAct は、言語的な推論と外部環境への行動を交互に進め、観測を次の推論へ戻す構造を示している[21]。WebGPT は、検索語の生成、検索結果の閲覧、根拠の選択、回答作成を一つの方策として学習する先行例である[22]。これらは Grok の内部実装を直接示すものではないが、公式に説明された道具利用を数理的に理解する座標になる。
xAI の現行 API では、Web 検索、X 検索、コード実行、文書検索など、xAI 側が実行する組み込み道具と、利用者側が処理する関数呼び出しが区別されている。組み込み道具の場合、モデルが行動を選び、サーバー側が実行し、結果をモデルへ戻して最終回答まで処理を続ける[23]。
5.2 Web と X の検索は、重みの外から現在の情報を取得する
モデルの重みは、学習終了後に固定される。学習後に発生した出来事は、重みを再学習しない限り直接には入らない。Web 検索を使う場合、Grok は検索語を生成し、ページを取得し、抽出された情報を現在の文脈へ追加する。xAI の Web Search は、実時間の Web 検索とページ閲覧を行い、取得した情報から回答を作る組み込み道具として提供されている[24]。
X Search は、キーワード検索だけでなく、意味検索、利用者検索、スレッド取得を扱う。日付範囲や対象アカウントを指定し、X 上の投稿をモデルの文脈へ取り込める[25]。Grok が「現在の X を知っている」ように見える場合でも、すべてが重みへ記憶されているわけではない。検索行動によって取得した情報を、その場で読んでいる場合がある。
検索を接続しても、真偽が自動的に保証されるわけではない。回答品質は、検索語、検索順位、対象期間、情報源の信頼性、ページの読解、複数情報の統合に依存する。モデルは正しい情報源を見つけても、主張の適用範囲を広げすぎたり、日付の異なる情報を混ぜたり、引用が支えていない結論へ進んだりする。検索は知識取得経路を追加するが、評価と推論の誤りを消す機能ではない。
5.3 コード実行は生成した仮説を外部で検証する
コード実行では、モデルが生成した処理を隔離環境で動かし、標準出力、計算結果、図表、エラーを観測として受け取る。xAI の Code Execution Tool は Python コードを隔離された環境で実行し、その結果を後続の生成へ利用する[26]。
たとえばソフトウェア修正では、次の反復が必要になる。
- 対象のコードと課題を読む。
- 原因の仮説を立てる。
- 修正を加える。
- ビルドやテストを実行する。
- 失敗結果を読み、原因を更新する。
- 成功条件を満たすまで再修正する。
文章生成だけでは、コードが構文解析できるか、依存関係の中で動くか、既存テストを壊さないかは確定できない。実行環境は、モデルの出力を現実の制約へ当てる判定器になる。一方で、実行時間、メモリー、利用可能なパッケージ、ネットワーク、ファイル権限が制限されれば、検証できる範囲も変わる。コード実行能力は、モデルのプログラミング知識と、外部環境の構成の両方から生まれる。
6. エージェント化は一回の回答を長期的な作業へ変える
6.1 エージェントは状態、行動、観測を反復する
一回の検索や一回の計算なら、単純な道具呼び出しで完了する。複雑な課題では、何を確認済みか、どの仮説が失敗したか、どのファイルを変更したか、残る作業は何かを保持しなければならない。エージェントとは、こうした状態を維持しながら、モデルの行動と環境からの観測を反復する制御系である。
状態を次のように表す。
\[
s_t=
(\text{依頼},\text{履歴},\text{取得情報},\text{作業結果},\text{未解決事項})
\]
モデルが行動を選び、環境が結果を返し、状態を更新する。
\[
a_t\sim\pi_\theta(a_t\mid s_t),\qquad
s_{t+1}=F(s_t,a_t,o_t)
\]
| 状態の要素 | エージェント内での役割 |
|---|---|
| 依頼 | 最終的に達成すべき課題と、守るべき制約を保持する。 |
| 履歴 | これまでに選んだ行動と、その判断に至った文脈を保持する。 |
| 取得情報 | 検索や文書参照によって外部から得た情報を保持する。 |
| 作業結果 | コード変更、計算、テスト、エラーなど、環境へ作用した結果を保持する。 |
| 未解決事項 | 次に調査、修正、検証する必要がある項目を保持する。 |
| \(t\) | 観測と行動を何回繰り返したかを示す処理段階の番号を表す。 |
xAI は Grok 4.1 Fast について、長期的な複数ターンの道具利用を重視した強化学習を行い、Web、X、コード実行、文書検索などを利用する Agent Tools API を提供したと説明している[27]。この段階で、モデルの出力は一回の回答から、複数の外部操作を含む作業過程へ広がる。
長期作業の性能は、モデルの知識や推論力だけでは決まらない。会話履歴が文脈上限へ近づいたときに何を残すか、失敗した操作を何回まで再試行するか、同じ検索を繰り返さないか、どの状態を終了とみなすかが必要になる。権限と隔離も重要である。高い操作能力を与えるほど、誤ったファイル変更や不要な外部操作の影響範囲も広がる。
| 構成要素 | 役割 | 失敗した場合の現象 |
|---|---|---|
| 状態保持 | 確認済み事項、失敗、変更、残作業を次の判断へ渡す。 | 同じ操作を繰り返し、過去の結果と矛盾する。 |
| 行動選択 | 検索、閲覧、編集、実行、回答のどれへ進むかを決める。 | 不要な道具を呼び、必要な検証を飛ばす。 |
| 終了判定 | 課題の成功条件を満たした時点で処理を止める。 | 未完了のまま回答するか、完了後も作業を続ける。 |
| 権限制御 | 読み取り、変更、外部通信の範囲を制限する。 | 誤操作の影響が必要以上に広がる。 |
| 文脈管理 | 長い履歴から次の判断に必要な情報を保持する。 | 重要な制約を忘れるか、履歴が大きくなり費用が増える。 |
6.2 ソフトウェア工学では一つの応答より作業軌跡が重要になる
実際のソフトウェア課題は、短い関数を生成するだけでは終わらない。SWE-bench は、実在する GitHub リポジトリと課題記述を用い、モデルがリポジトリを読み、必要な変更を加え、テストで解決を判定する評価枠組みを提示した[28]。対象ファイルの特定、関連コードの読解、複数ファイルの整合、既存テストへの影響まで含むため、一回の文章生成よりエージェントの作業に近い。
作業全体を、状態、行動、観測の系列として表す。
\[
\tau
=
(s_0,a_0,o_0,s_1,a_1,o_1,\ldots,s_T)
\]
| 記号 | 意味 |
|---|---|
| \(\tau\) | 課題開始から終了までに生じた状態、行動、観測を時系列に並べた作業軌跡を表す。 |
| \(s_0\) | 依頼と初期条件だけを含む作業開始時の状態を表す。 |
| \(a_t\) | 各段階でエージェントが選んだ検索、閲覧、編集、実行、回答などの行動を表す。 |
| \(o_t\) | 行動の結果として環境から返った検索結果、テスト結果、エラーなどの観測を表す。 |
| \(s_T\) | 課題の成功、失敗、打ち切りの判断に使われる最終状態を表す。 |
最終的にテストへ通ったかだけでなく、正しいファイルを変更したか、不要な差分を作らなかったか、失敗後に回復できたか、過剰なトークンや道具呼び出しを使っていないかも評価対象になり得る。評価単位は、完成した回答文から、環境内で実行された作業軌跡へ移る。
xAI は Grok 4.5 について、コード、科学、工学、数学のデータを選別し、数万基の NVIDIA GB300 上で学習したと発表した。データについては重複除去、品質評価、分野別選択を行い、強化学習では複数段階のソフトウェア工学を中心とする数十万件の課題を、自動評価とモデルによる評価で扱ったとしている。エージェントの実行は数時間に及び得る[29]。
ここで重要なのは、モデルが長文を出せることより、長い作業の途中で環境を観測し、方針を更新し、最終的な成功へ到達することにある。Grok 4.5 の公式説明が示す技術的な変化は、回答品質だけでなく、作業単位を学習対象へした点にある。
6.3 非同期学習が実行時間の異なる課題を並行処理する
ソフトウェア課題の所要時間は均一ではない。数分で終わる課題もあれば、調査、修正、テストを繰り返して数時間かかる課題もある。すべての軌跡が終了してから一回の学習更新を行う同期方式では、バッチの待ち時間が最も遅い軌跡で決まる。
\[
T_{\mathrm{batch}}
=
\max_i T_i
\]
| 記号 | 意味 |
|---|---|
| \(T_i\) | バッチに含まれる課題 \(i\) の軌跡が完了するまでの時間を表す。 |
| \(i\) | 同時に処理している複数の課題を区別する番号を表す。 |
| \(\max_i T_i\) | すべての課題の中で最も長くかかった完了時間を選ぶことを表す。 |
| \(T_{\mathrm{batch}}\) | 同期方式でバッチ全体が次の学習更新へ進めるまでの待ち時間を表す。 |
完了した軌跡から順に評価と学習へ回す非同期方式なら、遅い課題がほかの計算を止めにくい。IMPALA は、環境で行動を生成する多数の作業者と、方策を更新する学習側を分離し、非同期に軌跡を集める分散強化学習の代表的な構造を示した[30]。xAI が IMPALA を採用したことを示す情報はないが、Grok 4.5 の「実行が数時間続く間も数万基の GPU で学習を継続する」という説明を理解する一般モデルになる。
非同期化には別の問題も生じる。作業者が軌跡を生成している間に学習側の方策が更新されると、その軌跡は少し古い方策から作られたものになる。古い方策によるデータを現在の更新へどう利用するか、評価結果をどの時点のモデルへ対応付けるかが必要になる。Grok 4.5 の公式発表はこの内部手法を開示していないため、確認できるのは、高度に非同期な学習基盤と長時間のエージェント実行を組み合わせたという範囲である。
この段階では、AI の規模はパラメータ数や学習トークン数だけでは表せない。いくつの実行環境で、どれだけ長い作業を並行して生成し、評価し、学習へ戻せるかも、能力形成の規模になる。ニューラルネットワークの学習は、コード実行環境、評価器、作業者、GPU 群を束ねる分散システムへ広がっている。
7. MoE と複数エージェントは異なる階層の並列化である
MoE の Expert と複数エージェントは、どちらも複数の専門的な計算を使うように見える。しかし、分岐する単位も、計算の時間幅も、統合方法も異なる。
| 観点 | MoE | 複数エージェント |
|---|---|---|
| 動作する階層 | 一つの Transformer 層の内部で動く。 | 複数のモデル実行をまとめる上位システムで動く。 |
| 入力単位 | 各トークンの内部表現を扱う。 | 調査課題、検証課題、部分作業を扱う。 |
| 処理時間 | 一回の順伝播の一部として短時間で実行する。 | 複数回の検索や推論を含み、長時間に及ぶことがある。 |
| 構成要素 | 独立した FFN とルーターからなる。 | 独自の文脈、道具、行動履歴を持つ実行単位からなる。 |
| 目的 | 総容量を増やしながらトークン当たりの演算を限定する。 | 課題を分割し、複数の調査や検証を並行して進める。 |
| 統合 | 選択された Expert のベクトル出力を重み付きで加算する。 | 指導役が各エージェントの結果を比較し、文章や判断へ統合する。 |
MoE では、トークン表現 \(x\) が上位 2 個の Expert へ送られ、ベクトル出力を合成する。
\[
x
\longrightarrow
\{E_2(x),E_7(x)\}
\longrightarrow
y
\]
複数エージェントでは、課題 \(q\) を複数の部分課題 \(q_i\) へ分け、各エージェントが検索、分析、照合などを行う。
\[
r_i=\operatorname{Agent}_i(q_i)
\]
\[
y=\operatorname{Synthesize}(r_1,r_2,\ldots,r_m)
\]
| 記号 | 意味 |
|---|---|
| \(x\) | MoE 層へ入る一つのトークンの内部表現を表す。 |
| \(E_2(x),E_7(x)\) | 例としてルーターに選ばれた 2 個の Expert が計算したベクトル出力を表す。 |
| \(y\) | MoE では Expert 出力を合成したベクトルを表し、複数エージェントでは各結果を統合した最終出力を表す。 |
| \(q\) | 複数エージェントへ渡す元の課題全体を表す。 |
| \(q_i\) | 元の課題から分割され、エージェント \(i\) が担当する部分課題を表す。 |
| \(\operatorname{Agent}_i(q_i)\) | エージェント \(i\) が部分課題 \(q_i\) を調査または処理する実行を表す。 |
| \(r_i\) | エージェント \(i\) が返した調査結果、分析結果、検証結果を表す。 |
| \(m\) | 並行して利用するエージェントまたは部分結果の総数を表す。 |
| \(\operatorname{Synthesize}\) | 複数の結果を比較し、重複や矛盾を処理して最終出力へまとめる統合処理を表す。 |
xAI の Realtime Multi-agent Research は、複数のエージェントが Web 検索、データ分析、情報の照合を並行し、指導役が結果を統合する仕組みとして提供されている。利用するモデル名は grok-4.20-multi-agent とされ、各エージェントが使ったトークンと道具呼び出しも費用へ計上される[31]。
複数エージェントは、最初の仮説へ引きずられる危険を減らし、異なる情報源を同時に調べる可能性を持つ。一方で、同じ調査の重複、誤った情報の相互強化、結果間の矛盾、統合費用が増える。エージェント数を増やせば自動的に正確になるわけではない。課題分割、役割設計、独立性、相互検証、統合基準が必要になる。
MoE と複数エージェントを区別すると、Grok の「複数性」が一つの技術ではないことが分かる。MoE はニューラルネットワーク内部の条件付き行列計算であり、複数エージェントは外部の作業分担と統合である。最新の Grok が複数エージェント機能を提供している事実から、基盤モデル内部が MoE であるとは導けない。逆に、Grok-1 が MoE であることから、複数の独立した推論主体が内部で相談しているとも言えない。
8. Grok-1 の内部は見えるが、最新 Grok の内部は見えない
Grok 系列を説明する際の最大の制約は、世代によって公開情報の種類が異なることである。Grok-1 については、重み、設定、参照実装が公開されているため、層数、内部次元、Expert の数、Top-2 ルーティング、注意ヘッド、トークン化、RoPE を第三者が確認できる[3][4][5]。
Grok 3 以降では、別の情報が公開されている。Grok 3 は大規模な強化学習と推論時の訂正・探索、Grok 4 は検索とコード実行、Grok 4.1 Fast は長期的な道具利用、Grok 4.5 は選別データ、数十万件の課題、数時間のエージェント実行、非同期強化学習を前面に出している。確認できるのは、モデルが何を実行できるように訓練され、どの外部機能へ接続されたかである[17][19][27][29]。
| 世代 | 公式に確認できる中心情報 | 確認できない中心情報 |
|---|---|---|
| Grok-1 | 3140 億パラメータ、8 個の Expert、Top-2、64 層、6144 次元、注意ヘッド構成、語彙、文脈長、参照実装を確認できる。 | 完全な学習データ構成、最適化条件、本番の分散実装は公開されていない。 |
| Grok 3 | 大規模強化学習、数秒から数分の推論、訂正、代替方針の探索が説明されている。 | パラメータ数、層数、MoE 構成、具体的な強化学習アルゴリズムは公開されていない。 |
| Grok 4 | Web、X、コード実行を含む道具利用と実時間検索が説明されている。 | 道具選択方策の詳細、内部探索、ネットワーク構造は公開されていない。 |
| Grok 4.1 Fast | 長期的な複数ターン、Agent Tools API、長い文脈を使う実行方式が説明されている。 | 基盤モデルの層構造、Expert 構成、学習配合は公開されていない。 |
| Grok 4.5 | 数万基の GB300、データ選別、数十万件の課題、数時間の実行、非同期強化学習が説明されている。 | 総パラメータ数、活性パラメータ数、Expert の数、Top-k、層数、報酬関数、方策更新式は公開されていない。 |
この違いを無視すると、Grok-1 の公開仕様を、製品名が同じという理由だけで Grok 4.5 へ延長する誤りが生じる。Grok 4.5 が 1.5 兆パラメータ、V9 アーキテクチャ、特定の数の Expert を持つという説明は、2026 年 7 月 12 日時点の公式資料から確認できない。Grok-1 から後続世代まで MoE が継承された可能性はあるが、可能性と確認済みの仕様は別である[29]。
同様に、Grok 4.5 の長時間エージェント学習を、MoE のルーター安定化に強化学習を使った証拠と読むこともできない。公式説明で強化学習の対象となっているのは、複数段階のソフトウェア工学や技術課題を解く行動である。ニューラルネットワーク内部の Expert の負荷分散にどの損失を使ったかは公表されていない[29]。
公開された事実、既知の数理から説明できる構造、外部からの推測を分けると、Grok の進化を過大にも過小にも評価せずに済む。Grok-1 は内部モデルの骨格を見せる。後続モデルは、推論、道具、作業軌跡という外部挙動の拡張を見せる。この二種類の公開情報を接続することはできるが、欠けた内部仕様を埋めることはできない。
9. Grok の進化は、モデルの巨大化から計算過程の拡張へ進んだ
Grok-1 の中核は、Transformer の FFN を 8 個の Expert へ分け、各トークンで 2 個の Expert だけを使う条件付き計算にある。文字列はトークンへ分割され、6144 次元のベクトルとなり、RoPE を組み込んだ注意機構によって過去の文脈を取り込み、MoE によって変換され、次トークンの確率分布へ変わる。
この基盤モデルだけでも、文章、知識、コード、推論のパターンを生成できる。しかし、最新情報を取得し、計算結果を確認し、リポジトリを修正し、失敗から回復し、数時間の作業を完了するには別の層が要る。強化学習は、生成を課題達成の行動系列へ向ける。道具利用は、検索と実行をモデルの外から計算過程へ加える。エージェント制御は、状態を保持しながら観測と行動を反復する。複数エージェントは、複数の長い推論過程を上位で分担・統合する。
Grok の計算範囲は、次の順で広がったと整理できる。
- 一つのトークンから次のトークン確率を計算する。
- MoE により、総容量を増やしながら毎回の内部計算経路を限定する。
- 強化学習により、生成、検証、訂正を課題達成の方策として形成する。
- 検索とコード実行により、外部の情報と判定を計算へ取り込む。
- 状態管理により、複数の行動を長期的な作業として継続する。
- 非同期学習により、実行時間の異なる大量の作業軌跡を能力形成へ使う。
- 複数エージェントにより、複数の調査・検証過程を並列化して統合する。
この変化に伴い、性能の評価単位も変わる。次トークン予測では損失や困惑度、一問の推論では正答率、道具利用では検索・実行の成功率、長期エージェントでは課題完遂率、変更の妥当性、再試行、所要時間、トークン数が問われる。Grok 4.5 が示す「トークン効率」は、MoE の活性パラメータ率とは別の尺度である。前者は課題を完了するまでの出力トークン数、後者はモデル内部で選ばれる重みの割合を指す。計算システムが多層化するほど、「効率」という一語で異なる資源を混同できなくなる[29]。
最終的に問うべきなのは、モデルがいくつのパラメータを持つかだけではない。どの数理モデルが、どの学習済み方策によって、どの外部環境へ作用し、どの時間幅の作業を、どの費用と失敗条件のもとで完了できるかである。Grok-1 の公開実装は、その最下層にある数理モデルを見せた。Grok 3 以降の公式発表は、推論に追加の演算を使う方策を示した。Grok 4 以降の道具とエージェントは、モデルの外部を処理対象へ組み込んだ。Grok 4.5 の学習基盤は、数時間の作業軌跡を大量に生成・評価するところまで能力形成を広げた。
この構造は、Grok が自律的に目的を決められることを意味しない。何を課題とし、どの結果を成功と評価し、どこまで操作を許し、どの時点で人間が確認するかは、実行系の外側で設計される。既稿で整理したように、AI に任せる前に人間が残すべきものは、問いの切り方、判断軸、優先順位、委任範囲である[32]。Grok の計算能力が長期化し、外部へ作用するほど、この設計は利用上の付随条件ではなく、計算システムを成立させる境界条件になる。
Grok は、巨大な MoE モデルだけを指す名称ではない。内部で次トークン確率を作る基盤モデル、その生成を問題解決へ向ける推論方策、検索・実行・状態管理を担う外部システムが積み重なった計算系である。Grok-1 から Grok 4.5 までの公開情報を一本の変化として結ぶものは、パラメータ数の増加ではなく、計算する対象がトークンから行動へ、行動から環境との長期的な相互作用へ拡張されたことである。
参考文献
- id774, 最新 AI は何が変わったのか 2026(2026-07-03). https://blog.id774.net/entry/2026/07/03/4937/
- id774, 生成 AI の競争軸は、モデルから業務実装へ移る(2026-06-25). https://blog.id774.net/entry/2026/06/25/4922/
- xAI, Open Release of Grok-1(2024-03-17). https://x.ai/news/grok-os
- xAI, xai-org/grok-1: Grok open release(2026-07-12 確認). https://github.com/xai-org/grok-1
- xAI, model.py, Grok-1 open release(2026-07-12 確認). https://github.com/xai-org/grok-1/blob/main/model.py
- Taku Kudo and John Richardson, SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing(2018-08-19). https://arxiv.org/abs/1808.06226
- Ashish Vaswani et al., Attention Is All You Need(2017-06-12). https://arxiv.org/abs/1706.03762
- Joshua Ainslie et al., GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints(2023-05-22). https://arxiv.org/abs/2305.13245
- Jianlin Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding(2021-04-20). https://arxiv.org/abs/2104.09864
- Noam Shazeer et al., Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer(2017-01-23). https://arxiv.org/abs/1701.06538
- Dmitry Lepikhin et al., GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding(2020-06-30). https://arxiv.org/abs/2006.16668
- William Fedus, Barret Zoph and Noam Shazeer, Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity(2021-01-11). https://arxiv.org/abs/2101.03961
- Barret Zoph et al., ST-MoE: Designing Stable and Transferable Sparse Expert Models(2022-02-17). https://arxiv.org/abs/2202.08906
- Trevor Gale et al., MegaBlocks: Efficient Sparse Training with Mixture-of-Experts(2022-11-29). https://arxiv.org/abs/2211.15841
- Samyam Rajbhandari et al., DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale(2022-01-14). https://arxiv.org/abs/2201.05596
- Long Ouyang et al., Training language models to follow instructions with human feedback(2022-03-04). https://arxiv.org/abs/2203.02155
- xAI, Grok 3 Beta — The Age of Reasoning Agents(2025-02-19). https://x.ai/news/grok-3
- Charlie Snell et al., Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters(2024-08-06). https://arxiv.org/abs/2408.03314
- xAI, Grok 4(2025-07-09). https://x.ai/news/grok-4
- Timo Schick et al., Toolformer: Language Models Can Teach Themselves to Use Tools(2023-02-09). https://arxiv.org/abs/2302.04761
- Shunyu Yao et al., ReAct: Synergizing Reasoning and Acting in Language Models(2022-10-06). https://arxiv.org/abs/2210.03629
- Reiichiro Nakano et al., WebGPT: Browser-assisted question-answering with human feedback(2021-12-17). https://arxiv.org/abs/2112.09332
- xAI, Tools Overview(最終更新 2026-05-26). https://docs.x.ai/developers/tools/overview
- xAI, Web Search(最終更新 2026-05-27). https://docs.x.ai/developers/tools/web-search
- xAI, X Search(最終更新 2026-05-21). https://docs.x.ai/developers/tools/x-search
- xAI, Code Execution Tool(最終更新 2026-02-05). https://docs.x.ai/developers/tools/code-execution
- xAI, Grok 4.1 Fast and Agent Tools API(2025-11-19). https://x.ai/news/grok-4-1-fast
- Carlos E. Jimenez et al., SWE-bench: Can Language Models Resolve Real-World GitHub Issues?(2023-10-10). https://arxiv.org/abs/2310.06770
- xAI, Introducing Grok 4.5(2026-07-08). https://x.ai/news/grok-4-5
- Lasse Espeholt et al., IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures(2018-02-05). https://arxiv.org/abs/1802.01561
- xAI, Multi Agent(最終更新 2026-07-02). https://docs.x.ai/developers/model-capabilities/text/multi-agent
- id774, AI に任せる前に、人間が残すべき判断(2026-06-21). https://blog.id774.net/entry/2026/06/21/4912/