ChatGPTのような高度なAIは、どういう仕組みかいまいちわからずに使っています。
しかし、元OpenAI創設メンバーでTeslaのAI責任者を務めたアンドレイ・カルパシー氏が公開した「microgpt.py」は、その魔法の箱の中身を誰でも理解できる形で見せてくれます。
わずか243行のPythonコードだけで、GPTの核心部分が動作する様子を体験できるのです。このコードには、PyTorchやTensorFlowといった複雑なライブラリは一切使われていません。純粋なPythonの標準機能だけで、AIが言葉を学び、新しい文章を生成する仕組みが完全に再現されています。
microgpt.pyとは何か
microgpt.pyは、GPT型の言語モデルを243行の純粋なPythonコードで訓練し推論できることを示す実験的プロジェクトです 。カルパシー氏は「これが必要なアルゴリズムの完全な内容です。それ以外はすべて効率化のためのものです。これ以上簡略化することはできません」と述べています。
通常、AIの開発には数百万行のコードと高価なGPUが必要とされますが、このプログラムは家庭用パソコンで数分あれば実行できます。本番環境のシステムはGPUやTPUで数十億の浮動小数点演算を毎秒実行するテンソル(多次元配列)を使用しますが、microgptは純粋なPythonでスカラー値のValueオブジェクトを操作します 。数学的な内容は同一で、並列処理される多数のスカラーに対応しているだけなのです。
AIの脳を構成する4つの核心要素
microgpt.pyは、AIの本質的な仕組みを4つの主要コンポーネントに分解して見せてくれます。
自動微分エンジン(Valueクラス)
AIが賢くなるには、間違いから学ぶ仕組みが必要です。Valueクラスは、すべての計算の履歴を記録し、予測が外れたときに「どの計算設定が原因だったのか」を逆方向にたどって突き止めます。これは逆伝播(バックプロパゲーション)と呼ばれる深層学習の根幹技術です。足し算や掛け算といった基本的な演算を積み重ねながら、計算グラフと呼ばれる道筋を構築していきます。
トークナイザー(文字を数字に変換する辞書)
コンピューターは文字をそのまま理解できません。そこで、データセットに登場する文字(a、b、c等)をすべて一意の数字IDに変換します。このプロセスをトークン化と呼びます。microgpt.pyでは、アメリカ人の名前リストを使って、各文字に番号を割り当てています。
GPTアーキテクチャ(次の文字を予測するエンジン)
現代のLLMを強力にしているTransformerニューラルネットワークが実装されています 。このシステムは、文章の中で「どの文字が他のどの文字と関係が深いか」を計算するAttention(注目)メカニズムと、文字の意味や位置を数値ベクトルで表現するEmbedding(埋め込み)を組み合わせています。過去の文字の流れから、次に来る文字の確率を計算するのです。
Adamオプティマイザー(自動調整コーチ)
逆伝播で見つけた間違いの原因をもとに、AIの内部パラメーター(設定数値)をどれくらい修正すべきかを賢く計算し、自動的にアップデートします。本番環境では最適化自体が専門分野となり、学習率、重み減衰、ベータパラメーター、ウォームアップスケジュール、減衰スケジュールを正確に調整する必要があります 。
AIが賢くなる学習プロセス
プログラムを実行すると、AIは自律的に以下のステップで学習を進めます。
データの準備
プログラムは自動的にインターネットから約32,000個のアメリカ人の名前リストをダウンロードします。このテキストファイルが学習材料となります。
訓練(Training)
AIに文字の並びを見せて、「次に来る文字は何か」を予測させます。最初は設定がランダムなため、予測はまったく当たりません。画面に表示される「loss」という数値(間違いの大きさを示すスコア)が高く出ます。しかし、間違えるたびに自動微分エンジンとAdamオプティマイザーが設定を微調整します。これを1,000回繰り返すことで、徐々に名前のスペル法則を理解し、lossの数値が下がっていきます 。
推論(Inference)
学習が終わったAIに「新しい名前を作ってみて」と指示を出します。AIは「最初の文字がmなら、次はiが来る確率が高い」という計算を繰り返し、millyやkorraといった、データには存在しないけれど実在しそうな名前を自動生成します。
KVキャッシュの秘密
microgpt.pyでは訓練中にもKVキャッシュ(Key-Valueキャッシュ)を使用しています。これは通常は推論時のみに使われる技術ですが、実は訓練時にも概念的には常に存在しています。本番環境では高度にベクトル化された注目計算の中に隠されているだけです。microgptは一度に1トークンずつ処理するため、KVキャッシュを明示的に構築します。そして推論時と異なり、キャッシュされたキーと値は計算グラフ内の生きたValueノードなので、実際に逆伝播が通過します。
自分のパソコンで体験する方法
このAIは驚くほど簡単に動かすことができます。特別な機材や複雑な設定は不要です。
ステップ1:Pythonの確認
コマンドプロンプト(Windowsの場合)またはターミナル(Macの場合)を開き、「python –version」と入力してPythonがインストールされているか確認します。
ステップ2:コードの保存
GitHubからmicrogpt.pyをダウンロードするか、コードをコピーしてメモ帳に貼り付け、「microgpt.py」という名前で保存します。
ステップ3:実行
コマンドプロンプト等で、保存したファイルがあるフォルダに移動し、「python microgpt.py」と入力して実行します。
ステップ4:観察
学習が進んでloss数値が下がっていく様子や、最終的にAIがオリジナルの名前を出力する瞬間を観察できます。
実行速度を上げる裏技
純粋なPythonで実行すると遅いと感じるかもしれません。その場合は、PyPyというPythonの高速実装を使うことで大幅にスピードアップできます。JITコンパイラとガベージコレクションの改善により、同じコードが数倍速く動作します。
本物のGPTとの違いは何か
microgpt.pyは教育目的に最適化された小型モデルですが、本質的な仕組みは大規模なGPTと同じです。では、何が違うのでしょうか。
パラメーター数の違い
microgptは4,192個のパラメーターを持ちますが、GPT-4クラスのモデルは数千億個のパラメーターを持っています 。全体的には非常に似たTransformerニューラルネットワークですが、はるかに広く(埋め込み次元が10,000以上)、はるかに深い(100層以上)のです。
アーキテクチャの進化
現代のLLMは、学習済み位置埋め込みの代わりにRoPE(回転位置埋め込み)、KVキャッシュサイズを減らすためのGQA(グループ化クエリアテンション)、ReLUの代わりにゲート付き線形活性化、MoE(Mixture of Experts)層などの追加ブロックを組み込んでいます 。
処理速度の違い
microgptは純粋なPythonで一度に1つのスカラーを処理するため、1回の訓練ステップに数秒かかります。同じ数学をGPUで実行すると、数百万のスカラーを並列処理し、桁違いに高速です 。
microgpt.pyで何ができるのか
このプログラムは名前生成以外にも応用できます。データセットを変更するだけで、さまざまなパターンを学習させることができます。
都市名のリストに差し替えれば、実在しそうな架空の都市名を生成します。ポケモンの名前リストを使えば、新しいポケモン風の名前が生まれます。短い詩のデータセットを使えば、詩的な表現を学習します。英単語のリストなら、新しい単語を作り出します。モデルはデータ内のパターンを学習するため、ファイルを入れ替えるだけでそれらを生成するようになります 。
より良い名前を生成するには
生成品質を上げたい場合は、訓練ステップ数を増やす(num_stepsを増やす)、モデルを大きくする(n_embd、n_layer、n_headを増やす)、より大きなデータセットを使うという3つの調整ができます。これらは大規模モデルでも重要な調整ポイントと同じです。
教育界とコミュニティの反応
microgpt.pyの公開後、世界中の開発者や研究者から称賛の声が上がりました。Lightspeed VenturesのベンチャーパートナーであるAnand Iyer氏は、「一度に読み通すことができ、ブラックボックスとして扱う代わりに実際にLLMがどのように動作するかを理解できます」 と述べています。
さらに、このプロジェクトはC言語の古典的名著「The C Programming Language」になぞらえて「言語モデルのK&R」と呼ばれています。つまり、言語モデルの標準的で最小限の表現を定義するものとして認識されているのです。
コミュニティでは、さまざまな言語への移植も進んでいます。C#版、Rust版、JavaScript版などが公開され、それぞれの言語でどのように実装されるかが比較されています。また、インタラクティブなビジュアライザーも開発され、Transformerの各ステップを視覚的に理解できるツールも登場しています。
なぜカルパシー氏はこれを作ったのか
カルパシー氏は、このプロジェクトを「アートプロジェクト」と呼んでいます。AIの教育に情熱を注ぐ彼は、複雑に見える技術を誰でも理解できる形に分解することに長けています。YouTubeの講義、ブログ投稿、nanoGPTやmicrogradといったプロジェクトを通じて、多くの大学講座よりも多くの人々にニューラルネットワークの実際の動作を教えてきました。
microgpt.pyは、AIを神秘的なブラックボックスから、誰でも理解できる数学的プロセスへと変換する試みです。243行という制約の中に、GPTの本質的な全てを詰め込むことで、「AIは魔法ではなく、論理的な計算の積み重ねである」という真実を示しています。
学習者にとっての価値
このプログラムは、学生、エンジニア、研究者という3つのグループにとって特別な価値を持ちます。
学生にとって、microgpt.pyは最高の学習教材です。レポートや自由研究の資料として使えるだけでなく、AIの仕組みを根本から理解する機会を提供します。プログラミングの基礎知識があれば、中学生でも理解できるレベルまで簡略化されています。
エンジニアにとって、大規模なフレームワークのブラックボックスを開けて中身を確認できる貴重な機会です。PyTorchやTensorFlowが裏側で何をしているのかを、243行のコードで完全に理解できます。
研究者にとって、Transformerアーキテクチャの最も純粋な形を見ることができます。最適化や効率化を一切省いた、アルゴリズムの本質だけが残されています。
AIは数学である
microgpt.pyが私たちに教えてくれる最大の教訓は、AIは決して魔法ではないということです。私たちが日常的に使っている高性能なAIも、分解していけば足し算、掛け算、確率計算の巨大な積み重ねに過ぎません。
この243行のコードは、AIの正体を世界で最もシンプルに教えてくれる教材です。ダウンロードして、読んで、実行して、変更を加えてみてください。コードを1行ずつ読み進めることで、GPTの動作原理が純粋なPythonコードベースを通じて理解できます。
カルパシー氏の言葉通り、「これ以上簡略化することはできません」。しかし、だからこそ、これ以上明瞭にAIの本質を示すものもありません。AIに興味を持つすべての人にとって、microgpt.pyは出発点として最適な選択肢なのです。

コメント