rasbt/LLMs-from-scratch

Implement a ChatGPT-like LLM in PyTorch from scratch, step by step

このプロジェクトについて

このリポジトリには、Sebastian Raschka著『Build a Large Language Model (From Scratch)』(Manning, 2024, ISBN 978-1633437166)の公式ソースコードが含まれています。GPTのような大規模言語モデルの開発、事前学習、ファインチューニングのためのステップバイステップのコードを提供します。既存のLLMライブラリに依存せず、PyTorchを唯一のディープラーニングフレームワークとして、モデルをゼロから構築します。

学べることと構築するもの

各章は書籍に対応し、小さくても機能的なLLMを作成する全プロセスを案内します:

  1. 大規模言語モデルの理解(コードなし)
  2. テキストデータの処理 – トレーニング用のテキスト準備(トークン化とデータローディング)
  3. アテンションメカニズムのコーディング(マルチヘッドアテンションを含む)
  4. GPTモデルのゼロからの実装
  5. ラベルなしデータでの事前学習 – 生テキストでモデルをトレーニング
  6. テキスト分類のためのファインチューニング – スパム検出などのタスクにモデルを適応
  7. 指示に従うためのファインチューニング – ユーザープロンプトに応答するようにモデルを教える

付録には追加資料があります:PyTorch入門、参考読書、演習解答、トレーニングループの拡張、LoRAを使用したパラメータ効率的なファインチューニング。

READMEは、ここで使用されるトレーニングと開発アプローチがChatGPTなどで使用される大規模基盤モデルの背後にあるアプローチを反映しているが、教育目的でスケールダウンされていると述べています。リポジトリには、ファインチューニング用のより大きな事前学習モデルの重みをロードするコードも含まれています。

リポジトリの構成

各章には専用フォルダがあり、主要な章コード(Jupyterノートブック)、要約スクリプト(例:gpt.py、gpt_train.py)、演習解答が含まれています。READMEの「目次」は、各章を主要ノートブックと補足ファイルにマッピングしています。

前提条件

  • 強固なPythonの基礎 – 最も重要な前提条件として挙げられています。
  • 深層ニューラルネットワークへの精通 – LLMはそれに基づいているため有用ですが、必須ではありません。
  • PyTorchの基礎 – 有用ですが必須ではありません。付録Aに簡潔なPyTorch入門があります。

ハードウェア要件

主要章のコードは従来のノートPCで妥当な時間内に実行できるように設計されており、専用ハードウェアは不要です。GPUが利用可能な場合は自動的に使用します。

含まれる追加要素

  • 各章の演習、解答は付録Cにあります。
  • リポジトリ内のボーナス資料、ゼロから構築されたByte Pair Encodingトークナイザー、異なるアテンション変種(グループ化クエリアテンション、マルチヘッド潜在アテンションなど)、Mixture-of-Experts、代替モデルアーキテクチャ(Llama 3.2、Qwen3、Gemma 3など)、ユーザーインターフェースデモなどのオプショントピックを含む。
  • コンパニオンビデオコース – 各章をコード化する17時間15分のコース。
  • 続編書籍 – 『Build A Reasoning Model (From Scratch)』、事前学習モデルから始めて推論技術(推論時スケーリング、強化学習、蒸留)を実装する独立した続編。続編には独自のGitHubリポジトリがあります。
  • 無料クイズPDF – 各章約30問のクイズを含む170ページの自習テスト小冊子。

セットアップと手順

READMEは、Pythonと必要なパッケージのインストールに関するガイダンスについてsetupフォルダを読むことを推奨しています。また、GitHubリポジトリではなく出版社のウェブサイトからコードバンドルをダウンロードした場合は、最新の更新のために公式GitHubリポジトリを確認することをお勧めします。

貢献の制限

このリポジトリは印刷された書籍に対応しているため、著者は主要な章コードを拡張する貢献を受け入れることはできないと述べています。それは物理的な書籍からの逸脱を生むからです。フィードバックはManningフォーラムとGitHub Discussionsで歓迎されています。

引用

書籍はシカゴスタイルで引用できます:

Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト