第四段階:深層学習とニューラルネットワーク

ゼロから大規模言語モデルを構築するための完全なチュートリアル。PyTorchを使用してGPTアーキテクチャを段階的に実装し、事前学習、ファインチューニング、デプロイメントの全プロセスを実践的に学びます。

LLMTransformerPyTorchGitHubTextFreeEnglish

LLMs-from-scratch コース詳細紹介

プロジェクト概要

LLMs-from-scratch は、Sebastian Raschka氏によって作成された包括的な学習リソースであり、大規模言語モデル(LLM)をゼロから構築する方法を教えることを目的としています。このプロジェクトは、『Build a Large Language Model (From Scratch)』という書籍の公式コードリポジトリです。

主要な特徴

📚 学習目標

  • 大規模言語モデルの仕組みを内側から理解する
  • コーディングを通じて段階的に独自のLLMを構築する
  • ChatGPTのような基盤モデルのトレーニングと開発方法を学ぶ
  • 事前学習済みモデルの重みをロードし、ファインチューニングする技術を習得する

🎯 教授法

  • ゼロからのコーディング: 外部のLLMライブラリに依存せず、PyTorchを使用してゼロから実装します
  • 段階的なアプローチ: 各段階で明確なテキスト、図、および例による説明を提供します
  • 高い実用性: 小規模ながらも完全に機能する教育モデルを作成します
  • 豊富な付帯リソース: 17時間15分のビデオコースが含まれています

コース構成

章の内容

第1章: 大規模言語モデルの理解 (Understanding large language models)

  • LLMの基本概念の紹介
  • モデルアーキテクチャの概要

第2章: テキストデータの処理 (Working with text data)

  • 主なコード: ch02.ipynb, dataloader.ipynb
  • テキストの前処理とデータローディング
  • 演習解答: exercise-solutions.ipynb

第3章: 注意機構のコーディング (Coding attention mechanisms)

  • 主なコード: ch03.ipynb, multihead-attention.ipynb
  • 自己注意機構の実装
  • マルチヘッド注意機構の詳細な解説

第4章: GPTモデルのゼロからの実装 (Implementing a GPT model from scratch)

  • 主なコード: ch04.ipynb, gpt.py
  • 完全なGPTアーキテクチャの実装
  • モデルコンポーネントの詳細な解説

第5章: ラベルなしデータでの事前学習 (Pretraining on unlabeled data)

  • 主なコード: ch05.ipynb, gpt_train.py, gpt_generate.py
  • 事前学習のプロセス
  • テキスト生成の実装

第6章: 分類タスクのためのファインチューニング (Finetuning for classification)

  • 主なコード: ch06.ipynb, gpt_class_finetune.py
  • 特定の分類タスクに合わせたモデルの調整
  • ファインチューニングの技術と戦略

第7章: 指示追従のためのファインチューニング (Finetuning to follow instructions)

  • 主なコード: ch07.ipynb, gpt_instruction_finetuning.py
  • 指示ファインチューニングの方法
  • モデル評価: ollama_evaluate.py

付録の内容

付録A: PyTorch入門

  • コード: code-part1.ipynb, code-part2.ipynb
  • 分散データ並列トレーニング: DDP-script.py
  • PyTorchの基礎を素早く習得

付録B-E

  • 付録B: 参考文献とさらなる学習
  • 付録C: 演習解答のまとめ
  • 付録D: 追加機能の追加
  • 付録E: パラメータ効率の良いファインチューニング

ボーナスコンテンツ (Bonus Materials)

第5章 追加リソース

  • 代替の重みロード方法: 異なるモデル重みロード技術
  • Project Gutenbergデータセットでの事前学習: 大規模なテキストコーパスでのトレーニング
  • トレーニングループの最適化: さまざまな改善機能の追加
  • 学習率スケジューラ: トレーニングプロセスの最適化
  • ハイパーパラメータチューニング: 事前学習のハイパーパラメータ最適化
  • ユーザーインターフェースの構築: 事前学習済みLLMと対話するためのUI
  • モデル変換:
    • GPTからLlamaへの変換
    • Llama 3.2のゼロからの実装
    • Qwen3の密結合型および混合エキスパートモデル (MoE)
    • Gemma 3のゼロからの実装
  • メモリ効率の良い重みロード: モデルロードの最適化
  • Tiktoken BPEトークナイザーの拡張: 新しいトークンの追加
  • PyTorchパフォーマンス最適化のヒント: LLMトレーニングの高速化

第6章 追加リソース

  • 分類ファインチューニングの高度な技術

第7章 追加リソース

  • データセットツール: 近似重複の検索と受動態エントリの作成
  • 応答評価: OpenAI APIとOllamaを使用した指示応答の評価
  • データセット生成: 指示ファインチューニングのためのデータセット生成
  • データセットの改善: 指示ファインチューニングデータセットの品質向上
  • 嗜好データセット生成: Llama 3.1 70BとOllamaを使用
  • DPOアライメント: 直接嗜好最適化 (Direct Preference Optimization) の実装
  • ユーザーインターフェース: 指示ファインチューニングされたGPTモデルとの対話

推論モデルリソース (reasoning-from-scratchリポジトリより)

  • Qwen3ベース
  • モデル評価方法

技術要件

前提知識

  • 必須: Pythonプログラミングの強力な基礎
  • 役立つ: ディープニューラルネットワークの基礎知識
  • 役立つ: PyTorchの基礎 (付録Aでクイックスタートを提供)

ハードウェア要件

  • 💻 通常のノートPCで十分: 主要な章のコードは通常のノートPCで実行できるように設計されています
  • 🚀 自動GPUアクセラレーション: 利用可能な場合、コードは自動的にGPUを使用します
  • 専用ハードウェアは不要: 幅広いユーザーが学習できるように配慮されています

ソフトウェア環境

  • Python 3.x
  • PyTorch
  • その他の依存関係はsetupディレクトリを参照

付帯リソース

ビデオコース

  • 📹 17時間15分の完全なビデオコース
  • 章ごとのコーディングデモンストレーション
  • 単独の学習リソースとして、または書籍と組み合わせて使用可能
  • Manningプラットフォーム: Master and Build Large Language Models

続編書籍

『Build A Reasoning Model (From Scratch)』

  • 続編と見なすことができます
  • 事前学習済みモデルから開始
  • 異なる推論方法を実装:
    • 推論時間の拡張
    • 強化学習
    • 蒸留技術
  • モデルの推論能力を向上
  • GitHubリポジトリ: reasoning-from-scratch

テストリソース

無料170ページPDF: 『Test Yourself On Build a Large Language Model (From Scratch)』

  • 各章約30問のクイズと解答
  • 理解度を確認するのに役立ちます
  • Manningウェブサイトから無料でダウンロード可能

演習解答

  • 各章に複数の演習が含まれています
  • 解答は付録Cにまとめられています
  • 対応するコードノートブックは各章のフォルダにあります
    • 例: ./ch02/01_main-chapter-code/exercise-solutions.ipynb

プロジェクトの入手方法

ダウンロード方法

方法1: ZIPファイルを直接ダウンロード

# GitHubページの「Download ZIP」ボタンをクリック

方法2: Gitクローン

git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git

コード構成

  • 各章は独立したフォルダにあります: ch02/, ch03/, など
  • 主要なコードは 01_main-chapter-code/ サブフォルダにあります
  • 追加リソースは対応する番号のフォルダにあります

学習パスの提案

思考モデル

書籍は、カバーされているすべての内容をまとめた明確なマインドマップを提供しています:

  1. LLMの基礎を理解する
  2. テキストデータ処理
  3. 注意機構
  4. GPTアーキテクチャの実装
  5. 事前学習技術
  6. ファインチューニング方法
  7. 実用的なアプリケーションの展開

学習のヒント

  1. 初心者: 第1章から始め、順序通りに学習し、各章の演習を完了してください
  2. 経験者: 既知の章はスキップし、特定のトピックに焦点を当てることができます
  3. 実践者: ボーナスコンテンツを使用して高度なトピックを探求してください
  4. 研究者: 引用形式を参照し、研究でこのリソースを引用してください

コミュニティとサポート

フィードバックチャネル

貢献について

  • 対応する印刷書籍があるため、主要な章のコードは一貫性を保っています
  • 現在、主要な章の内容を拡張する貢献は受け付けていません
  • 書籍の内容との一貫性を確保し、スムーズな学習体験を提供します

引用情報

Chicago形式

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

BibTeX形式

@book{build-llms-from-scratch-book,
  author = {Sebastian Raschka},
  title = {Build A Large Language Model (From Scratch)},
  publisher = {Manning},
  year = {2024},
  isbn = {978-1633437166},
  url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
  github = {https://github.com/rasbt/LLMs-from-scratch}
}

関連リンク

まとめ

これは、包括的で体系的なLLM学習リソースであり、以下の方々に適しています:

  • 🎓 LLMの動作原理を深く理解したい学習者
  • 👨‍💻 GPTのようなモデルの実装を実践したい開発者
  • 🔬 NLPおよびディープラーニング研究に従事する研究者
  • 🚀 AIと機械学習に興味のある技術愛好家

このプロジェクトを通じて、ゼロから大規模言語モデルを構築、トレーニング、ファインチューニングする完全な能力を習得できます。