关于本书
《从零构建大型语言模型》旨在帮助读者全面理解并从头创建类似GPT的大型语言模型(LLMs)。
全书首先聚焦于文本数据处理的基础知识和注意力机制的编码,随后指导读者逐步实现一个完整的GPT模型。书中还涵盖了预训练机制以及针对文本分类和指令遵循等特定任务的微调方法。
通过阅读本书,读者将深入理解LLM的工作原理,并掌握构建自有模型的技能。尽管书中创建的模型规模小于大型基础模型,但它们使用相同的核心概念,是掌握构建尖端LLM所需核心机制和技术的有力教学工具。
适合读者
本书适合希望深入理解LLM工作原理并从头学习构建模型的机器学习爱好者、工程师、研究人员、学生和从业者。无论是初学者还是有经验的开发人员,都能利用现有技能和知识掌握创建LLM的相关概念和技术。
本书的独特之处在于全面覆盖了构建LLM的整个过程,从数据集处理到模型架构实现、无标签数据预训练以及特定任务微调。截至成书时,尚无其他资源提供如此完整且实操性强的从零构建LLM的方法。
阅读要求
理解本书中的代码示例需要扎实的Python编程基础。
虽然熟悉机器学习、深度学习和人工智能会有所助益,但并非必需。LLM是人工智能的一个独特子集,即使是该领域的新手也能轻松跟随学习。
如果读者具备深度神经网络相关经验,可能会对某些概念更易理解,因为LLM基于这些架构构建。不过,本书不要求精通PyTorch,附录A提供了PyTorch的简明介绍,帮助读者掌握理解全书代码示例所需的技能。
具备高中水平的数学知识(尤其是向量和矩阵运算)将有助于理解LLM的内部工作原理,但掌握书中的关键概念和思想无需高等数学知识。
最重要的前提是扎实的Python编程基础。有了这一基础,读者将做好充分准备,探索LLM的迷人世界,并理解书中呈现的概念和代码示例。
本书结构:路线图
本书建议按顺序阅读,每章均基于前一章介绍的概念和技术展开。全书分为七章,涵盖LLM的核心要点及其实现。
- 第1章 概述LLM的基本概念,探讨作为ChatGPT等LLM基础的Transformer架构。
- 第2章 规划从头构建LLM的流程,包括LLM训练的文本准备(如将文本拆分为单词和子词标记、使用字节对编码进行高级分词、滑动窗口采样训练示例,以及将标记转换为输入LLM的向量)。
- 第3章 聚焦LLM中的注意力机制,从基础自注意力框架逐步介绍到增强自注意力机制,还涵盖因果注意力模块的实现(支持LLM一次生成一个标记)、通过 dropout 随机掩码注意力权重以减少过拟合,以及将多个因果注意力模块堆叠为多头注意力模块。
- 第4章 重点介绍如何编码可训练生成类人文本的类GPT模型,涉及层激活归一化以稳定神经网络训练、在深度神经网络中添加快捷连接以提升训练效率、实现Transformer块以创建不同规模的GPT模型,以及计算GPT模型的参数数量和存储需求。
- 第5章 实现LLM的预训练流程,包括计算训练集和验证集损失以评估LLM生成文本的质量、实现训练函数并预训练LLM、保存和加载模型权重以继续训练,以及从OpenAI加载预训练权重。
- 第6章 介绍不同的LLM微调方法,包括准备文本分类数据集、修改预训练LLM以进行微调、微调LLM以识别垃圾邮件,以及评估微调后LLM分类器的准确性。
- 第7章 探讨LLM的指令微调流程,包括准备监督指令微调数据集、将指令数据组织为训练批次、加载预训练LLM并微调以遵循人类指令、提取LLM生成的指令响应以进行评估,以及评估指令微调后的LLM。
关于代码
为方便读者跟随学习,本书所有代码示例均提供于Manning网站(https://www.manning.com/books/build-a-large-language-model-from-scratch)和GitHub(https://github.com/rasbt/LLMs-from-scratch)的Jupyter笔记本中。所有代码练习的解决方案可在附录C中找到。
书中代码示例以编号列表和正文内联形式呈现,均使用等宽字体排版,以区别于普通文本。在许多情况下,为适应书中页面空间,原始源代码会进行重新格式化,添加换行和调整缩进。极少数情况下需要使用行延续标记(➥)。此外,当代码在正文中被描述时,源代码中的注释通常会被省略。许多代码列表附带注释,以突出重要概念。
本书的核心目标之一是确保可访问性,因此代码示例经过精心设计,可在普通笔记本电脑上高效运行,无需特殊硬件。如果具备GPU,部分章节会提供扩展数据集和模型以利用额外算力的实用技巧。
全书使用PyTorch作为张量和深度学习库从头实现LLM。如果读者对PyTorch不熟悉,建议从附录A开始学习,其中提供了深入介绍和环境设置建议。
liveBook 讨论论坛
购买《从零构建大型语言模型》可免费访问Manning的在线阅读平台liveBook。借助liveBook的独家讨论功能,读者可在全书范围内或针对特定章节、段落添加评论,轻松记笔记、提出并回答技术问题,并获得作者和其他用户的帮助。访问论坛请前往https://livebook.manning.com/book/build-a-large-language-model-from-scratch/discussion,也可通过https://livebook.manning.com/discussion了解Manning论坛的更多信息和行为规则。
Manning致力于为读者提供一个与作者和其他读者进行有意义对话的平台。作者对论坛的参与是自愿的(且无报酬),不承诺特定参与度。建议读者尝试提出具有挑战性的问题,以免作者失去参与热情!只要本书仍在出版,论坛和过往讨论存档均可从出版社网站访问。
其他在线资源
- 关注最新AI和LLM研究趋势:访问作者博客https://magazine.sebastianraschka.com,定期探讨以LLM为重点的最新AI研究。
- 快速掌握深度学习和PyTorch:作者网站https://sebastianraschka.com/teaching提供多门免费课程,助您快速掌握最新技术。
- 获取本书补充材料:访问GitHub仓库https://github.com/rasbt/LLMs-from-scratch,获取补充资源和示例。