Skip to content

Latest commit

 

History

621 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM Notebook Lab

LLM Notebook Lab

Language Jupyter Notebook License GitHub Project

可边读边运行的大语言模型学习笔记

基于 Datawhale Diy-LLM 的个人非商业学习改编版

本仓库是我在学习 Datawhale Diy-LLM 过程中的个人改编版,核心目标是把章节内容整理为可运行的 Jupyter Notebook,让阅读、实验、调试和复盘可以在同一个环境里完成。

本项目仅用于个人学习与非商业分享,不是原项目的官方版本,也不代表原作者或 Datawhale 对本改编版背书。二次传播或继续改编时,请继续遵守原项目采用的 CC BY-NC-SA 4.0 许可证。

改编说明

  • 将主要章节从 Markdown 改为 .ipynb,方便边学习边运行代码。
  • 保留原课程的章节结构、作业目录和大部分原始内容。
  • 增加了部分 notebook 运行辅助文件,例如第三章的辅助函数与示例输出文件。
  • 调整 README 与入口链接,使仓库更适合作为个人学习版使用。

前置要求

  • Python 编程:熟悉 Python 与基本软件工程实践
  • 深度学习基础:熟悉 PyTorch,了解神经网络基本原理
  • 数学基础:线性代数、概率统计、微积分
  • 机器学习基础:理解常见机器学习与深度学习概念
  • GPU 编程(可选):了解 CUDA 会更有帮助,但不是阅读全部内容的必要条件

课程目录

章节 关键内容 配套作业 入口
前言 项目背景与学习建议 - Notebook
第1章 工具使用 W&B 使用与实验追踪 - Notebook
第2章 分词器 分词器原理与 BPE 实现 作业1 Notebook
第3章 PyTorch 与资源核算 训练原语、算力/显存估算 - Notebook
第4章 语言模型架构与训练细节 Transformer 架构与训练要点 作业1 Notebook
第5章 混合专家模型 MoE 原理、路由与工程实践 - Notebook
第6章 GPU 与相关优化 GPU 基础与优化技巧 作业2 Notebook
第7章 GPU 高性能编程 CUDA 与高性能编程 作业2 Notebook
第8章 分布式训练 并行范式与跨机训练 作业2 Notebook
第9章 Scaling Laws 扩展定律与实验 作业3 Notebook
第10章 推理 推理性能与落地优化 作业6 Notebook
第11章 数据工程 数据清洗、构建与管理 作业4 Notebook
第12章 评估与基准测试 指标体系与评测方法 作业6 Notebook
第13章 大模型的基本训练流程 预训练、SFT、RL 流程 作业5 Notebook
第14章 可验证奖励的强化学习 RLVR 思想与实践 作业5 Notebook
第15章 扩展内容 LLM 推理相关扩展 - Notebook

作业概览

作业 核心任务 目录
作业1:手搓大模型 实现 tokenizer、model architecture、optimizer,训练极简语言模型 assignment1-basics
作业2:系统优化 性能分析、FlashAttention-2、分布式训练 assignment2-systems
作业3:扩展定律 理解 Transformer 组件,拟合 scaling law assignment3-scaling
作业4:数据处理 Common Crawl 数据清洗、过滤与去重 assignment4-data
作业5:模型对齐 SFT 与强化学习训练数学推理模型 assignment5-alignment
作业6:模型评估 使用 lm-evaluation-harness 和 evalscope 做评测 assignment6-evaluation

快速开始

git clone https://github.com/tandede/llm-notebook-lab.git
cd llm-notebook-lab

# 安装 Jupyter 环境
pip install jupyterlab notebook

# 启动 notebook
jupyter lab

不同章节和作业可能需要额外依赖。建议进入对应目录后,优先查看该目录的 README、pyproject.tomlrequirements.txt 或 notebook 开头的说明。

项目结构

llm-notebook-lab/
├── docs/                    # 章节 notebook 与图片资源
│   ├── 前言.ipynb
│   ├── chapter1/
│   ├── chapter2/
│   ├── chapter3/
│   ├── chapter4/
│   ├── chapter5/
│   ├── chapter6/
│   ├── chapter7/
│   ├── chapter8/
│   ├── chapter9/
│   ├── chapter10/
│   ├── chapter11/
│   ├── chapter12/
│   ├── chapter13/
│   ├── chapter14/
│   └── chapter15/
├── coursework/              # 配套作业与实验代码
├── scripts/                 # 文档转 notebook 的辅助脚本
├── README.md
└── .gitignore

相关链接

许可证

本改编版延续原项目的许可方式,采用 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

简单来说:可以分享和改编,但需要署名、仅限非商业用途,并且改编后的内容也需要使用相同许可证发布。正式条款以许可证全文为准。

致谢

  • 感谢 Datawhale Diy-LLM 项目提供系统性的中文 LLM 学习材料,本仓库是在其基础上的个人学习改编版。
  • 感谢 Diy-LLM 的项目负责人、贡献者和社区参与者,原始贡献者信息请以原项目 README 为准。
  • 感谢 Stanford CS336 课程团队提供优秀的原版课程与公开资料。
  • 感谢开源社区中所有分享大语言模型训练、评估、推理和系统优化经验的研究者与开发者。

边读、边改、边运行,系统性学习大语言模型构建技术。

About

可边读边运行的大语言模型学习笔记,基于 Datawhale Diy-LLM 的个人非商业学习改编版。

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages