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