datawhalechina/diy-llm

🎓 系统性大语言模型构建课程|🛠️ 覆盖预训练数据工程、Tokenizer、Transformer、MoE、GPU 编程 (CUDA/Triton)、分布式训练、Scaling Laws、推理优化及对齐 (SFT/RLHF/GRPO)|🚀 6 个渐进式作业 + 代码驱动,建立 LLM 全栈认知体系

Diy‑LLM – 大規模言語モデル構築のための実践的な中国語コース

概要 – オープンソースの大学レベルのカリキュラム(Stanford CS336 に基づく)であり、大規模言語モデル(LLM)の作成、学習、評価の全段階を学習者にガイドします。リポジトリには以下が含まれます:

  • 理論、システムレベルの最適化、スケーリング則、マルチモーダルモデル、アライメントをカバーする構造化された講義ノート(中国語 + 英語)。
  • トークナイザー、最小限の Transformer、FlashAttention、分散学習、データ前処理、RLベースのアライメントなどのコアコンポーネントを実装する、6つの採点対象プログラミング課題。
  • 単一の GPU で実行、またはマルチノードクラスターにスケールアップ可能なサンプルコード、スクリプト、ユーティリティ(PyTorch ベース)。
  • PDF へのリンク、オンラインの VitePress サイト、および中国国内のモデル(Qwen, DeepSeek など)へのリファレンス。

重要性 – 多くの LLM チュートリアルが「学習済みモデルを実行する」段階で止まっているのに対し、Diy‑LLM ではモデルをゼロから「構築」することができ、大規模 AI ラボと同じエンジニアリング体験を得ることができます。中国語を話す学生向けにカスタマイズされており、ローカライズされた説明、リソースに優しいヒント、国内のオープンソースエコシステムで動作する例を提供します。

主要コンポーネント

コンポーネント 学習内容 / 入手できるもの
Tokenizer 章 BPE アルゴリズム、Unicode 正規化、手書きのトークナイザー・トレーナー。
モデルアーキテクチャ RoPE, RMSNorm, SwiGLU, AdamW, pre‑norm/post‑norm, 学習率スケジュール。
システム最適化 混合精度、勾配蓄積、FLOPs/VRAM 推定、FlashAttention, Triton カーネル。
GPU プログラミング CUDA の基礎、Tensor Cores、共有メモリ、Triton の入門。
分散学習 データ並列、モデル並列、パイプライン並列、ZeRO‑1/2/3, FSDP, All‑Reduce。
スケーリング則 Chinchilla law、計算最適化されたモデルサイズの予測方法。
推論 KV‑cache, speculative decoding, 量子化 (GPTQ/AWQ), PagedAttention, continuous batching。
データエンジニアリング フィルタリング、MinHash 重複排除、PII スクラビング、カリキュラム学習。
評価 MMLU, HumanEval, HELM, CEval, AlpacaEval, lm‑evaluation‑harness および evalscope による Arena ランキング。
アライメント 教師あり微調整 (SFT), GRPO, ルールベースの検証器, RL ベースの報酬モデル。
マルチモーダル CLIP, LLaVA, Qwen‑VL, Chameleon パイプライン。

はじめに

# リポジトリをクローン
git clone https://github.com/datawhalechina/diy-llm.git
cd diy-llm

# 学習パスに従う
# 1️⃣ docs/zh/ (または docs/en/) のドキュメントを読む
# 2️⃣ assignment1-basics などの課題を選び、その学習スクリプトを実行する
#    (課題の README に記載されている必要な Python パッケージをインストールする)
# 3️⃣ 章を進め、分散学習や RL‑HF までスケールアップする。

README には、理論の学習や小規模なデバッグには CPU のみでも可能ですが、フルモデルの学習には GPU(クラウドインスタンスを推奨)が必要であると記載されています。

対象者

  • LLM について、実装を重視した深い理解を求めている学部生または大学院生。
  • エンドツーエンドの経験(データ準備 → 学習 → 推論 → アライメント)を必要とする、AI R&D チームへの参画を目指すエンジニア。
  • Stanford の CS336 シラバスを反映した中国語の教育リソースを探している研究者。

ライセンス – Creative Commons Attribution‑NonCommercial‑ShareAlike 4.0 (CC‑BY‑NC‑SA 4.0)。

貢献 – 本プロジェクトでは、標準的な fork‑branch‑PR ワークフローによるドキュメントの改善、バグ修正、新しい章の追加を歓迎しています。


Diy‑LLM は、「LLM について読む」ことを「自分自身の LLM を構築する」ことに変えることを目指し、中国語を話す学習者のために、ローカルで実行可能な完全なカリキュラムを提供します。

関連

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