LLMs-from-scratchでChatGPTの仕組みをゼロから理解する|PyTorchでGPTを実装する93000スターの教科書リポジトリ
ChatGPTを「使うだけ」で終わっていませんか?
ChatGPTやClaude、Geminiといった生成AIが当たり前になった今、エンジニアとして差をつけるには「使う側」から「作る側」に踏み出せるかどうかが鍵になってきています。
「プロンプトを工夫するのは得意になったけど、LLMの内部で何が起きているのかはよくわからない」「トランスフォーマーやアテンション機構という言葉は知っているけど、実装レベルで理解できていない」——そう感じているPythonエンジニアは多いはずです。
そんな課題を解決してくれるのが、今回紹介する rasbt/LLMs-from-scratch です。GitHubで93,700スター超えを誇るこのリポジトリは、Manning出版の書籍「Build a Large Language Model (From Scratch)」の公式コードリポジトリ。著者はApple AI/MLにも在籍していた機械学習研究者のSebastian Raschka氏です。
Build a Large Language Model (From Scratch)(Amazon)
ChatGPTと同等のGPTモデルをPyTorchでゼロから実装しながら、LLMの仕組みを体系的に理解できる——これが「LLMs-from-scratch」の最大の強みです。
LLMs-from-scratchで何が作れるか?
このリポジトリを最後まで進めると、GPT-2相当のモデルが実際に動く状態になります。具体的には以下のことができるようになります。
- PythonとPyTorchだけで動くGPTモデルを自前で実装できる
- OpenAIが公開しているGPT-2の事前学習済み重みをロードして自分のモデルで使える
- テキスト分類タスク向けにファインチューニングできる
- ChatGPTのような「指示に従う」動作をするモデルへ発展させるInstructionファインチューニングができる
単なるサンプルコードを動かすだけでなく、なぜその実装になっているのかを理解できる構成になっているのが特徴です。全コードはJupyter Notebookで動作確認済みで、Linux / Windows / macOS 全対応(GitHub Actionsでテスト済み)なので、手元の環境で迷わず試せます。
全7章の構成をざっくり把握しよう
リポジトリは書籍の章立てに対応した7章構成です。
| 章 | タイトル | 学べる内容 |
|---|---|---|
| Ch1 | 大規模言語モデルの理解 | LLMとは何か、GPT/BERTの概要 |
| Ch2 | テキストデータの処理 | BPEトークナイザー、データローダーの実装 |
| Ch3 | アテンションメカニズムのコーディング | Self-Attention、Multi-Head Attention、Causal Attention |
| Ch4 | GPTモデルをゼロから実装 | gpt.pyの完成、モデルアーキテクチャ全体像 |
| Ch5 | 事前学習(Pretraining) | 損失計算、テキスト生成、GPT-2重みのロード |
| Ch6 | テキスト分類のためのファインチューニング | スパムフィルターなど分類タスクへの適用 |
| Ch7 | 指示に従うファインチューニング | Instruction Finetuning、ChatGPT的な挙動の実現 |
Ch1〜2で基礎固め、Ch3〜4でモデルの核心部分を実装、Ch5以降で実用的なトレーニングと応用へと進む流れです。1章ずつJupyter Notebookで手を動かしながら読み進められるため、読むだけで終わりがちな技術書と違って手が止まりにくいのも評価ポイントです。
アテンションメカニズムをざっくり理解する
LLMを語る上で避けて通れないのがアテンションメカニズムです。Ch3はここを丁寧に扱っていて、このリポジトリの核心部分でもあります。
アテンションとは一言でいうと「文中のどの単語がどの単語に注目すべきかを計算する仕組み」です。
たとえば「猫がネズミを追いかけた。それは素早かった」という文で、「それ」が「猫」を指すのか「ネズミ」を指すのかを文脈から判断する——これをモデルが自動で学習できるのがアテンションの力です。
Self-Attention は入力シーケンス内の各トークンが、他のすべてのトークンとの関連度スコアを計算します。Causal Attention(因果的アテンション)はGPTで使われる変種で、「未来のトークンは参照しない」というマスク処理を加えることで、自己回帰的なテキスト生成を可能にしています。
Multi-Head Attention は、このアテンション計算を複数の「ヘッド」で並列に行い、異なる観点からの関係性を同時に捉えます。GPT-2(small)では12ヘッドが使われており、それぞれが文法的な関係・意味的な関係・長距離依存など異なるパターンを学習します。
LLMs-from-scratchでは、この仕組みをスクラッチからNumPyライクに段階的に実装していくため、「行列演算として何をやっているのか」が肌感覚でわかるようになります。
実際に動かすまでのセットアップ
環境構築は非常にシンプルです。
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
cd LLMs-from-scratch
pip install -r requirements.txt
あとはJupyter Notebookを起動して、各章のフォルダを開くだけです。
jupyter notebook
推奨環境はPython 3.10以上、PyTorch 2.0以上。手元のCPUでも動きますが、Ch5以降の事前学習はGPUがあると快適です。ローカルにGPUがない場合は Google Colabの無料GPU でも十分動作します。本格的に実験を繰り返したい場合や、ファインチューニングを試したい場合はVPSの活用も選択肢です。ConoHa VPS(月額最安クラスのVPS)はGPUインスタンスも提供しており、LLMの学習実験環境として使いやすい選択肢のひとつです。
また、実装したモデルをローカルで動かすUIが欲しくなったら、Open WebUIをセルフホストする方法も参考にしてください。自分で実装したモデルをブラウザUIで動かすとモチベーションが一段上がります。
副業・AIエンジニアへのキャリアチェンジにどう活かすか
このリポジトリを学ぶ最大のメリットは、LLMの内部構造を説明できるエンジニアになれることです。これはキャリア面で大きな差別化につながります。
AIエンジニアへの転向を狙っている人なら、LLMのアーキテクチャ理解はポートフォリオに直結します。「GPTをスクラッチで実装しました」というのは、単にAPIを叩けますという話とまったく異なる訴求力があります。面接でアテンション機構をコードで説明できると、技術力のシグナルとして非常に強い印象を与えられます。
副業でLLMアプリを作りたい人にとっても、モデルの内部を理解していると実装の選択肢が広がります。ファインチューニングの費用感やトークン数の感覚、なぜRAGが有効なのかといった判断軸が身につくからです。副業に使えるOSSツールと組み合わせて、自分だけのLLMベースのプロダクトを作るための土台としても活用できます。
さらに発展として、実装したモデルの知識を活かしてOpenAI Agents SDKでマルチエージェント構築に挑戦したり、MicrosoftのAIエージェント入門コースでエージェント設計の全体像を学ぶのもおすすめです。LLMの仕組みを理解した上でエージェント設計を学ぶと、理解の深さがまったく違います。
まとめ
rasbt/LLMs-from-scratch は、ChatGPTのようなLLMをゼロから実装することで、トランスフォーマーアーキテクチャの仕組みを体系的かつ実践的に学べる93,000スター超えの教科書リポジトリです。
- Jupyter Notebookで全7章を手を動かしながら進められる
- アテンション機構・トークナイザー・事前学習・ファインチューニングまで網羅
- GPT-2の重みをロードして自分のモデルで動かす実例も収録
- AIエンジニアへのキャリアチェンジ・副業LLMアプリ開発の土台になる
「LLMを使えるだけのエンジニア」から「LLMを理解して作れるエンジニア」へ。その一歩目として、これ以上のリポジトリはなかなかありません。まずはCloneして、Ch1のNotebookを開いてみてください。
Build a Large Language Model (From Scratch)(Amazon)で書籍と合わせて読み進めると、さらに理解が深まります。
よくある質問(FAQ)
Q. 数学の知識はどのくらい必要ですか?
A. 行列の積や内積など線形代数の基礎があれば十分です。微分やバックプロパゲーションの概念を知っていると Ch5以降がよりスムーズに理解できますが、コードを動かすだけなら高校数学レベルでも進められます。
Q. PyTorchの経験がなくても大丈夫ですか?
A. テンソル操作の基本(torch.tensor、torch.matmulなど)を知っていれば問題ありません。Ch1〜2は純粋なPythonが中心なので、PyTorch初心者でも段階的に慣れていけます。
Q. GPUがないと学習できませんか?
A. Ch1〜4まではCPUで十分動きます。Ch5の事前学習はGPUがないと時間がかかりますが、Google ColabのフリーGPU(T4)で現実的な速度で動きます。
Q. 書籍を買わなくてもリポジトリだけで学べますか?
A. GitHubのNotebookにはコードと簡単な説明が含まれており、コードを読んで動かすだけなら無料で学べます。ただし、なぜそのアーキテクチャを選んだかの背景や詳細な解説は書籍に収録されているため、深く理解したいなら書籍との併用を強くおすすめします。
Q. このリポジトリを学んだあとの次のステップは?
A. ファインチューニングをマスターしたら、HuggingFaceのTransformersライブラリで実際のモデルを扱う練習に進むのが自然な流れです。その後、LLMエージェントやRAGシステムの構築へと発展させていくと、実務レベルのAIエンジニアスキルに近づけます。

コメント