rasbt / LLMs-from-scratch
rasbt/LLMs-from-scratch
从零开始,用PyTorch逐步实现类似ChatGPT的大语言模型(LLM)。
项目概览
LLMs-from-scratch 指南
项目概述
LLMs-from-scratch 是 Sebastian Raschka 所著《Build a Large Language Model (From Scratch)》(Manning, 2024, ISBN 978-1633437166)的官方代码仓库。项目以 Jupyter Notebook 和 PyTorch 为主要载体,从零开始、按步骤实现一个类似 ChatGPT 的 GPT 类大型语言模型,涵盖数据预处理、注意力机制、模型构建、预训练和微调等完整流程。仓库的定位是教育与学习,而非生产级工具。
核心功能
- 从文本数据开始,实现 GPT 风格的 tokenizer 与数据加载。
- 从零实现注意力机制,包括多头注意力、分组查询注意力(GQA)、滑动窗口注意力等扩展。
- 从零实现 GPT 模型架构,并提供可直接运行的
gpt.py等摘要代码。 - 在无标注数据上进行预训练,包含训练与生成脚本。
- 针对文本分类任务进行微调。
- 针对指令跟随任务进行微调,并提供 Ollama/OpenAI 评估相关代码。
- 附录包含 PyTorch 入门、练习解答、LoRA 参数高效微调、DDP 等补充内容。
- 提供大量附加内容,例如 BPE tokenizer 从零实现、MoE、Llama 3.2、Qwen3、Gemma 3、DPO 等。
适用与不适用场景
适用场景:
- 希望从底层理解 LLM 原理的学习者。
- 教学场景中作为《Build a Large Language Model (From Scratch)》一书的配套代码。
- 需要可复现的、面向教育的 GPT 预训练与微调示例。
- 在普通笔记本上运行小规模模型,学习核心概念。
不适用场景:
- 不适用于生产环境的大规模模型训练或部署。
- 不是开箱即用的 LLM API 或推理服务。
- 不是面向特定业务场景的完整解决方案。
- 需要读者具备 Python 基础,并对 PyTorch 有一定了解才能顺畅使用。
技术架构与依赖
仓库以 PyTorch 为深度学习框架,代码以 Jupyter Notebook 为主,辅以若干 .py 脚本。根据 README,项目从零实现,不使用外部 LLM 库。仓库包含 Python 环境设置建议、Docker 环境搭建指南等说明。README 中未提供完整的依赖清单文件,因此精确的第三方包列表应参考仓库中的 setup 目录和安装文档;仓库资料未提供完整 requirements 文件的内容。
安装与快速开始
在终端中执行以下命令克隆仓库:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
克隆后,建议阅读 setup/README.md 获取 Python 环境与依赖安装指导。主章节代码设计为在普通笔记本上合理时间内运行,若检测到 GPU 会自动使用 GPU。仓库还提供了可选的 Docker 环境设置方式,具体步骤见 setup 目录;除此之外,仓库资料未提供更多安装命令。
典型使用方法
建议按照书籍章节顺序学习,每个章节的 01_main-chapter-code 目录中都有对应主代码 notebook,例如:
ch02:处理文本数据。ch03:编码注意力机制。ch04:从零实现 GPT 模型。ch05:在无标注数据上预训练。ch06:用于文本分类的微调。ch07:用于指令跟随的微调。
每个章节还包含 exercise-solutions.ipynb 练习解答。对于快速查看,可以使用各章节提供的 .py 摘要文件,例如 ch04/gpt.py、ch05/gpt_train.py、ch06/gpt_class_finetune.py 和 ch07/gpt_instruction_finetuning.py。附录 A 提供 PyTorch 入门,附录 E 提供 LoRA 微调示例。
配置与部署要点
- 环境配置:参考
setup目录下的 Python 安装建议、依赖安装说明和 Docker 环境搭建指南。 - 硬件要求:主章节代码面向普通笔记本电脑设计,GPU 为可选加速项。
- 模型规模:主代码训练的是小规模教育用模型;如需加载更大预训练模型,仓库提供了权重加载相关代码。
- 部署:仓库主要面向学习与研究,不包含面向生产的部署配置;仓库资料未提供生产部署指南。
限制、风险与许可证
- 仓库代码是书籍配套代码,主要用于教育目的,不等于生产级 LLM 实现。
- 由于要与纸质书保持一致,维护者目前不接受会扩展主章节代码的贡献,但欢迎通过 GitHub Discussions 或 Manning 论坛交流反馈。
- GitHub 元数据中许可证字段标记为
NOASSERTION,README 中也未明确说明许可证条款,使用前请自行向作者或仓库确认。 - 部分补充内容(如 Qwen3、Gemma 3 等)来自或关联“Reasoning From Scratch”仓库,使用时需注意对应来源。
官方链接
- GitHub 仓库:https://github.com/rasbt/LLMs-from-scratch
- 出版社 Manning 书籍页:http://mng.bz/orYv
- Amazon 书籍页:https://www.amazon.com/gp/product/1633437167
- 配套视频课程:https://www.manning.com/livevideo/master-and-build-large-language-models
- 续作/关联仓库(Reasoning From Scratch):https://github.com/rasbt/reasoning-from-scratch
信息来源和分析时间
本指南基于 GitHub 仓库 rasbt/LLMs-from-scratch 的 README 内容、仓库元数据(语言、主题、许可证)及其公开页面信息整理。所有链接和描述均来自仓库资料中的原始内容。分析时间为 2026 年 5 月 7 日,后续仓库内容如有更新,请以官方仓库为准。