rasbt / LLMs-from-scratch

rasbt/LLMs-from-scratch

open_in_new前往仓库

从零开始,用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 仓库 rasbt/LLMs-from-scratch 的 README 内容、仓库元数据(语言、主题、许可证)及其公开页面信息整理。所有链接和描述均来自仓库资料中的原始内容。分析时间为 2026 年 5 月 7 日,后续仓库内容如有更新,请以官方仓库为准。