今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

rasbt/LLMs-from-scratch

ゼロから大規模言語モデルを構築して、訓練・ファインチューニングするための実装ガイドです。

外部LLMライブラリに頼らず、純粋なPyTorchだけでGPTを組み立てながら、事前学習・分類ファインチューニング・命令追従ファインチューニングまでを自分の手で一通り動かせます。教育用に小さくした模型でも、実際の大規模モデルと同じ手順を踏む設計なので、LoRAやMoEといった最適化技法もノートブックを実行しながら体感的に理解できます。Llama、Qwen、Gemmaなどのアーキテクチャ実装も揃っており、Manning出版の教材として検証済みのコードとテストが手元に残るのも安心です。

01 / 概要
何をするものか一文で言うと
ひとことでゼロから大規模言語モデルを構築して、訓練・ファインチューニングするための実装ガイドです。

本リポジトリは書籍「Build a Large Language Model (From Scratch)」の公式コードリポジトリです。GPT系LLMをPyTorchでゼロから実装し、事前学習・分類ファインチューニング・指示チューニングまで章ごとに段階的に構築します。各章のJupyterノートブックに加え、KVキャッシュ・GQA・MLA・MoEなど最新アーキテクチャを扱うボーナス実装や、Qwen3・Gemma3・Llama系などの他LLMをスタンドアロンで再現するノートブックも含みます。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

ch02でBPEトークナイザとデータローダを作り、ch03でスケーリング内積注意からマルチヘッド注意までをクラスとして実装し、ch04でそれらを`gpt.py`のGPTModelにまとめます。ch05では`gpt_train.py`と`gpt_generate.py`で事前学習ループとテキスト生成、OpenAI公開のGPT-2重みの読み込みを扱います。ch06・ch07はch04のGPTModelを流用し、出力層を分類ヘッドに差し替える、または指示応答データでファインチューニングする形で再利用します。`pkg/llms_from_scratch`というPyPIパッケージに主要コードがまとめられており、`app.py`などの補助UI(Chainlit)やテストコードはそこから`GPTModel`や`generate`関数をimportして動かします。テストは`import_definitions_from_notebook`でノートブックのセルを直接importし、GitHub Actionsで複数OS・複数インストール方式(uv・pip・pixi)で自動検証されています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    `git clone`後に`pip install -r requirements.txt`または`uv sync`を実行すると、torch・tiktoken・tensorflowなど章ごとに必要な依存関係が一括で入ります。

  2. STEP 02

    `ch02/01_main-chapter-code/ch02.ipynb`を開いて`the-verdict.txt`を読み込むと、BPEトークナイズとスライディングウィンドウのデータローダの挙動をセル実行ごとに確認できます。

  3. STEP 03

    `ch04/01_main-chapter-code/gpt.py`のGPTModelを使い`ch05/01_main-chapter-code/gpt_train.py`を実行すると、小規模データで損失が下がっていく学習ログが表示されます。

  4. STEP 04

    `ch05/01_main-chapter-code/gpt_download.py`でOpenAI公開のGPT-2重みを取得し読み込むと、事前学習済みモデルによる文章生成が試せます。

  5. STEP 05

    `ch06`のノートブックを完走すると`review_classifier.pth`が生成され、`ch06/04_user_interface/app.py`をchainlit runで起動するとブラウザ上でスパム判定チャットが動きます。

  6. STEP 06

    `ch04/03_kv-cache`以降のディレクトリでは、KVキャッシュ・GQA・MLA・MoEなど各手法のメモリ使用量を`memory_estimator_*.py`と`plot_memory_estimates_*.py`で比較したグラフが得られます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手元に残るのは、注意機構からGPT本体、事前学習、分類・指示ファインチューニング、推論高速化手法(KVキャッシュ・GQA・MLA・MoEなど)までを一気通貫で動かせるノートブック群と、`llms_from_scratch`パッケージ、学習済み重みファイル(.pth)、簡易チャットUIです。書籍の理論をコードで裏付けながら、GPT-2規模のモデルを自分の環境で学習・生成・分類まで実行した経験が得られます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

フル事前学習にはGPUを推奨しており、CPUのみでは`ch05`のスクラッチ学習が非常に遅くなります。

02

`tensorflow`はOpenAI公開のGPT-2チェックポイント読み込み用途で依存に含まれており、章によっては不要な重い依存が増えます。

03

`ch06`や`ch07`のUIアプリは事前にノートブックを完走して`.pth`ファイルを生成しておく前提で、単体では動きません。

04

OSやPythonバージョン(3.10〜3.14未満)、torchのビルド差異によって挙動が変わる可能性があり、Windows向けの一部CI(uv経由)は無効化されています。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

LLMの内部構造を理論だけでなくコードで一行ずつ追いたい学習者、または事前学習・ファインチューニング・KVキャッシュ系最適化を自分の手で再現したいエンジニアに向いています。README・pyproject・実ソースの整合性が高く、GitHub Actionsで複数OS・複数インストール方式のテストが継続的に回っている点から、記載通りに動く可能性は高いと判断できます。ただしGPU環境や各章のノートブック完走という前提条件があるため、軽い気持ちでUIだけ試すのには向きません。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する