# 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 文件的内容。

## 安装与快速开始

在终端中执行以下命令克隆仓库：

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

克隆后，建议阅读 [`setup/README.md`](https://github.com/rasbt/LLMs-from-scratch/blob/main/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 日，后续仓库内容如有更新，请以官方仓库为准。
