第四阶段:深度学习与神经网络

从零开始构建大型语言模型的完整教程,通过PyTorch逐步实现GPT架构,包含预训练、微调和部署的全流程实践

LLMTransformerPyTorchGitHubTextFreeEnglish

LLMs-from-scratch 课程详细介绍

项目概述

LLMs-from-scratch 是一个由 Sebastian Raschka 创建的综合性学习资源,旨在教授如何从零开始构建大型语言模型(LLM)。这个项目是《Build a Large Language Model (From Scratch)》一书的官方代码仓库。

核心特点

📚 学习目标

  • 从内到外理解大型语言模型的工作原理
  • 通过编码逐步构建自己的LLM
  • 学习类似ChatGPT背后的基础模型的训练和开发方法
  • 掌握加载和微调预训练模型权重的技术

🎯 教学方法

  • 从零开始编码: 使用PyTorch从头实现,不依赖外部LLM库
  • 循序渐进: 每个阶段都有清晰的文本、图表和示例说明
  • 实用性强: 创建小型但功能完整的教育模型
  • 配套资源丰富: 包含17小时15分钟的视频课程

课程结构

章节内容

第1章: 理解大型语言模型 (Understanding large language models)

  • LLM基础概念介绍
  • 模型架构概述

第2章: 处理文本数据 (Working with text data)

  • 主要代码: ch02.ipynb, dataloader.ipynb
  • 文本预处理和数据加载
  • 练习解答: exercise-solutions.ipynb

第3章: 编码注意力机制 (Coding attention mechanisms)

  • 主要代码: ch03.ipynb, multihead-attention.ipynb
  • 实现自注意力机制
  • 多头注意力机制详解

第4章: 从零实现GPT模型 (Implementing a GPT model from scratch)

  • 主要代码: ch04.ipynb, gpt.py
  • 完整的GPT架构实现
  • 模型组件详细讲解

第5章: 在无标签数据上预训练 (Pretraining on unlabeled data)

  • 主要代码: ch05.ipynb, gpt_train.py, gpt_generate.py
  • 预训练流程
  • 文本生成实现

第6章: 分类任务微调 (Finetuning for classification)

  • 主要代码: ch06.ipynb, gpt_class_finetune.py
  • 针对特定分类任务调整模型
  • 微调技术和策略

第7章: 指令跟随微调 (Finetuning to follow instructions)

  • 主要代码: ch07.ipynb, gpt_instruction_finetuning.py
  • 指令微调方法
  • 模型评估: ollama_evaluate.py

附录内容

附录A: PyTorch简介

  • 代码: code-part1.ipynb, code-part2.ipynb
  • 分布式数据并行训练: DDP-script.py
  • PyTorch基础快速入门

附录B-E

  • 附录B: 参考资料和进一步阅读
  • 附录C: 练习答案汇总
  • 附录D: 添加额外功能
  • 附录E: 参数高效微调

奖励内容(Bonus Materials)

第5章额外资源

  • 替代权重加载方法: 不同的模型权重加载技术
  • Project Gutenberg数据集预训练: 在大型文本语料库上训练
  • 训练循环优化: 添加各种改进功能
  • 学习率调度器: 优化训练过程
  • 超参数调优: 预训练超参数优化
  • 用户界面构建: 与预训练LLM交互的UI
  • 模型转换:
    • GPT转换为Llama
    • Llama 3.2从零实现
    • Qwen3密集型和混合专家模型(MoE)
    • Gemma 3从零实现
  • 内存高效权重加载: 优化模型加载
  • Tiktoken BPE分词器扩展: 添加新token
  • PyTorch性能优化技巧: 加速LLM训练

第6章额外资源

  • 分类微调的高级技术

第7章额外资源

  • 数据集工具: 查找近似重复和创建被动语态条目
  • 响应评估: 使用OpenAI API和Ollama评估指令响应
  • 数据集生成: 为指令微调生成数据集
  • 数据集改进: 提高指令微调数据集质量
  • 偏好数据集生成: 使用Llama 3.1 70B和Ollama
  • DPO对齐: 直接偏好优化(Direct Preference Optimization)实现
  • 用户界面: 与指令微调GPT模型交互

推理模型资源(来自reasoning-from-scratch仓库)

  • Qwen3基础
  • 模型评估方法

技术要求

前置知识

  • 必需: Python编程强大基础
  • 有帮助: 深度神经网络基础知识
  • 有帮助: PyTorch基础(提供附录A快速入门)

硬件要求

  • 💻 普通笔记本电脑即可: 主要章节代码设计在常规笔记本上运行
  • 🚀 自动GPU加速: 如果可用,代码会自动使用GPU
  • 无需专用硬件: 确保广泛受众可以学习

软件环境

  • Python 3.x
  • PyTorch
  • 其他依赖详见setup目录

配套资源

视频课程

后续书籍

《Build A Reasoning Model (From Scratch)》

  • 可视为续集
  • 从预训练模型开始
  • 实现不同推理方法:
    • 推理时间扩展
    • 强化学习
    • 蒸馏技术
  • 改进模型推理能力
  • GitHub仓库: reasoning-from-scratch

测试资源

免费170页PDF: 《Test Yourself On Build a Large Language Model (From Scratch)》

  • 每章约30道测验题及答案
  • 帮助测试理解程度
  • Manning网站免费下载

练习解答

  • 每章包含多个练习
  • 解答汇总在附录C
  • 对应代码notebook在各章节文件夹中
    • 示例: ./ch02/01_main-chapter-code/exercise-solutions.ipynb

项目获取

下载方式

方式1: 直接下载ZIP

# 点击GitHub页面的Download ZIP按钮

方式2: Git克隆

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

代码组织

  • 每章有独立文件夹: ch02/, ch03/, 等
  • 主要代码在 01_main-chapter-code/ 子文件夹
  • 额外资源在对应的编号文件夹中

学习路径建议

思维模型

书籍提供了一个清晰的思维导图,总结了所有涵盖的内容:

  1. 理解LLM基础
  2. 文本数据处理
  3. 注意力机制
  4. GPT架构实现
  5. 预训练技术
  6. 微调方法
  7. 实际应用部署

学习建议

  1. 初学者: 从第1章开始,按顺序学习,完成每章练习
  2. 有基础者: 可跳过熟悉的章节,重点关注特定主题
  3. 实践者: 使用奖励内容探索高级话题
  4. 研究者: 参考引用格式,在研究中引用本资源

社区与支持

反馈渠道

  • 💬 Manning Forum: 官方论坛
  • 💭 GitHub Discussions: 讨论区
  • 🤝 欢迎所有形式的反馈、问题和想法交流

贡献说明

  • 由于对应印刷书籍,主要章节代码保持一致性
  • 当前不接受扩展主要章节内容的贡献
  • 确保与实体书内容一致,提供流畅学习体验

引用信息

Chicago格式

Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.

BibTeX格式

@book{build-llms-from-scratch-book,
  author = {Sebastian Raschka},
  title = {Build A Large Language Model (From Scratch)},
  publisher = {Manning},
  year = {2024},
  isbn = {978-1633437166},
  url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
  github = {https://github.com/rasbt/LLMs-from-scratch}
}

关键链接

总结

这是一个全面、系统的LLM学习资源,适合:

  • 🎓 希望深入理解LLM工作原理的学习者
  • 👨‍💻 想要实践实现GPT类模型的开发者
  • 🔬 从事NLP和深度学习研究的研究人员
  • 🚀 对AI和机器学习感兴趣的技术爱好者

通过这个项目,你将获得从零构建、训练和微调大型语言模型的完整能力。