GPT-2からKimi K3まで7年で何が変わったのか〜話題の解説記事を初心者向けに紐解く
GPT-2 が公開されたのは2019年で、パラメータ数は1.24億でした。2026年7月に公開された Kimi K3 は2.8兆です。GPT-2 が 22,580個ぶん入る計算です。7年でこれだけ大きくなったわけですが、変わったのは大きさだけなのでしょうか。
この問いを、実装コードを追いながら解説した記事が X で公開され、大きな反響を集めていました。ali 氏(@waterloo_intern)による「From GPT2 to Kimi3, Explained」という記事です。読み応えのある内容でしたが、コードと数式が中心で、ある程度の前提知識を求められます。
本記事では、この記事で扱われている流れを、初心者にも追える形で噛み砕いて紐解きます。あわせて、当ブログで実際に測ってきた数値を並べ、書かれている理屈が手元の機材でどう表れるのかも見ていきます。
2026年7月時点の内容です。
元の記事について
元の記事は、各世代のモデルが「前の世代の何に困って、何を足したのか」という筋で組み立てられています。この見方が分かりやすかったため、本記事でも同じ流れをたどります。
出発点は何だった? GPT-2 の素朴なつくり
GPT-2 は、文章を左から右へ順番に予測していくだけの構造でした。単語を数値の並びに置き換え、12個の処理ブロックを通し、最後に「次に来そうな単語」を出す。それだけです。
| パラメータ数 | 1.24億 |
| 処理ブロック | 12個 |
| 語彙 | 約5万語 |
ここで、生成の仕組みに無駄がありました。1単語を出すたびに、それまでの文章すべてを最初から計算し直していたのです。100文字目を出すには99文字ぶんの計算をやり直す、という具合です。
計算し直しをやめたら何が起きた? KVキャッシュの登場
解決策は単純でした。一度計算した結果を覚えておいて、使い回す。これが KVキャッシュ です。計算量は劇的に減りました。
ところが、別の問題が生まれます。覚えておく量が、文章が長くなるほど増えていくのです。そしてこの「覚えておいたもの」を毎回読み出す速さが、新しい足かせになりました。計算は速くなったのに、メモリからの読み出しが追いつかない、という状態です。
この足かせは、手元の機材でも見えた
ここは実際に測ったことがあります。VRAM 12GB のグラフィックボードで、文脈の長さを変えながら生成速度を測った結果です。
| 文脈の長さ | qwen3:14b | gemma4-12b |
|---|---|---|
| 2048 | 36.11 tok/s | 30.54 tok/s |
| 8192 | 28.64 tok/s | 30.51 tok/s |
| 16384 | 13.83 tok/s | 30.50 tok/s |
| 32768 | 9.00 tok/s | 30.57 tok/s |
[kimono_bar title="文脈の長さと生成速度(tok/s・大きいほど速い)" unit="tok/s" highlight="4″ note="Intel Arc B580 12GB / Vulkan / 各5回。2026年7月時点の実測。"]
qwen3:14b(文脈2048) | 36.11
qwen3:14b(文脈8192) | 28.64
qwen3:14b(文脈16384) | 13.83
qwen3:14b(文脈32768) | 9.00
[/kimono_bar]
片方のモデルは、文脈を伸ばすほど速度が落ち、最後は4分の1になりました。覚えておく量が VRAM に収まりきらず、CPU側へあふれたためです。もう片方は、同じ12GBの範囲でも最後まで速度が変わりませんでした。覚え方の効率がモデルによって違うことが、そのまま体感の差になっています。
ここから先の技術は、この「覚えておく量」との戦いだと考えると、流れが追いやすくなります。詳しい測定は、別記事「12GBに収まったのに遅い? 文脈の長さが速度を左右」に書いています。
覚える量を固定できないか? Linear Attention の発想
次に出てきたのが、覚えておく量を増やさないという方向です。
従来の方式では、過去の情報を1つずつ棚に並べていました。文章が長くなれば棚も伸びます。これに対し Linear Attention は、決まった大きさの1枚の板に、情報を重ね書きしていくやり方を採りました。板の大きさは変わらないので、どれだけ長い文章でも覚える量は一定です。
計算の順序を入れ替えられるようにすることで、これが可能になりました。ただし代償もあります。重ね書きは、元の方式に比べて表現が粗くなります。速さと正確さを引き換えにした形です。
重ね書きすると何が起きる? 情報がぶつかる問題
板の大きさが決まっているということは、書き込み続ければいずれ埋まります。埋まった板にさらに重ね書きすると、前に書いた内容と混ざって、どちらも読めなくなります。
元の記事では、この問題を指摘した論文の言葉が引かれています。要約すると「有限の記憶に無限に足し続ければ、いつか限界に達する。どれを残しどれを消すか、モデル自身が選べるようにすべきだ」という趣旨でした。
そこで登場したのが DeltaNet です。考え方は身近なものでした。同じ場所に書き足すのではなく、古い内容を消してから新しい内容を書く。黒板の同じ欄を書き換えるようなやり方です。これで、記憶が混ざる問題が和らぎました。
1つずつ書き換えると遅くない? 並列化の工夫
ところが、この「消してから書く」やり方には弱点がありました。1つ書き換えるたびに板の状態が変わるため、順番に処理するしかありません。GPUは大量の計算を同時にこなすのが得意なので、順番待ちが発生すると本領を発揮できません。
解決策は、文章を適当な長さのかたまりに区切ることでした。かたまりの中では従来どおり一気に計算し、かたまりとかたまりの間だけ板の受け渡しをする。こうすれば、順番待ちの回数を大幅に減らせます。
元の記事の筆者は、この部分について「理解するのに7時間かかった」と正直に書いています。実際、ここが一番の難所のようです。
忘れることはできる? 減衰という考え方
書き換えができるようになっても、まだ足りないものがありました。まとめて忘れるという機能です。
DeltaNet は「この項目を差し替える」ことはできますが、話題が完全に切り替わったときに「これまでの内容を一旦流す」ことができません。個別の書き換えしかできないのです。
そこで、板全体を少しずつ薄くしていく仕組みが加わりました。古い情報が自然に薄れ、新しい情報が書き込まれる余地が生まれます。さらに Kimi Linear では、この薄れ方を項目ごとに変えられるようにしました。大事な情報は残し、どうでもいい情報は早く忘れる、という制御です。
ここまでの流れを整理すると、次のとおりです。
| 段階 | 何に困って | 何を足したか |
|---|---|---|
| GPT-2 | 毎回すべて計算し直す | — |
| KVキャッシュ | 計算の無駄 | 結果を覚えて使い回す |
| Linear Attention | 覚える量が増え続ける | 決まった大きさの板に重ね書き |
| DeltaNet | 重ね書きで情報が混ざる | 消してから書く |
| 並列化 | 順番待ちで遅い | かたまりに区切る |
| Gated DeltaNet | まとめて忘れられない | 全体を少しずつ薄くする |
| Kimi Linear | 忘れ方が一律すぎる | 項目ごとに薄れ方を変える |
どの段階も、直前の世代で困ったことを埋めるために足されています。大きくしただけではない、というのが元の記事の主張であり、この表がその根拠にあたります。
Kimi K3 は何を積んだ? 全部入りの構成
そして Kimi K3 です。ここまでの工夫を組み合わせたうえで、さらに手が加えられています。
面白いのは、1種類の方式に絞っていない点です。4層ひとまとまりのうち3層は「決まった大きさの板」で記憶し、残る1層は従来型の方式で文脈全体を見に行く。この組み合わせを23回繰り返す構造になっています。
板に書ききれなかった情報は、従来型の層が拾う。役割を分けているわけです。加えて、12層ごとに「もっと前の層が出した内容」を見に戻る仕組みも入っています。
専門家を選ぶ仕組みと、手元で測った消費電力
もうひとつ、Kimi K3 で目を引くのが専門家の数です。898人の専門家を抱え、そのうち毎回18人だけを起こして働かせます(2人は常に働き、残り896人から16人を選ぶ)。全員を起こさないので、規模のわりに軽く動きます。
この「必要な担当だけ動く」構造が実際にどう効くのかは、手元で測ったことがあります。同じグラフィックボードで、方式の違うモデルの消費電力を比べた結果です。
| モデルの型 | 速度 | 消費電力 |
|---|---|---|
| 毎回ぜんぶ動く型(大) | 24.9 tok/s | 248W |
| 毎回ぜんぶ動く型(中) | 77 tok/s | 260W |
| 必要な担当だけ動く型(大) | 96 tok/s | 162W |
| 必要な担当だけ動く型(中) | 160 tok/s | 189W |
必要な担当だけを動かす型は、速いうえに消費電力も低いという結果でした。全員を起こさないぶん、メモリから読み出す量が減るためです。Kimi K3 が898人もの専門家を抱えられるのは、この仕組みがあってこそだと考えられます。
[kimono_product id="16559″]
詳細はGPUを使ったローカルLLMの省エネ手法に書きました。結局、何が変わったのか
元の記事の結論は明快でした。変わったのは大きさだけではない、というものです。
限られた容量に情報を詰め込む以上、いつかは容量が尽きます。そのとき何を捨てるかを決める仕組みが要る。7年間の変遷は、この「捨て方」を洗練させてきた歴史だった、と読めます。足し算だけでは壊れるから書き換えを覚え、書き換えだけでは足りないから忘れ方を覚え、忘れ方が粗いから項目ごとの制御を覚えた、という流れです。
手元で測ってきた数字と重ねると、この話は他人事ではありませんでした。文脈を伸ばすと速度が落ちるのも、必要な担当だけ動く型が省エネなのも、どちらも同じ「容量との戦い」から出てきた現象です。研究の最前線で起きていることと、家のパソコンで体感することが、同じ理屈でつながっている——そこが今回いちばん面白かった点でした。
本記事は元の記事を参考に、初心者向けに噛み砕いたものです。数式や実装の詳細に興味を持たれた方は、ぜひ元の記事をご覧ください。技術的な主張については、必要に応じて論文や公式資料での確認をおすすめします。
検証に使用した機材
消費電力の比較に使ったグラフィックボードです。
[kimono_product id="16559″]