ScratchLLMStepByStep——从零一步一步构建大语言模型

前言

在学习大语言模型的时候,总会遇到各种各样的名词,像自注意力、多头、因果、自回归、掩码、残差连接、归一化等等。这些名词会让学习者听的云里雾里,觉得门槛太高而放弃。

本教程将会带你从零开始 ,一步一步 的去构建每一个组件,揭开它们的神秘面纱,并最终用这些组件组装成一个迷你版的大语言模型。在构建过程中,我们会从实现原理的角度去剖析这些组件都是做什么的,又是怎么被设计出来的,做到知其然 ,知其所以然。

不仅如此,本专栏还会带你从零开始一步一步训练这个语言模型,经过预训练 (Pretrain)、监督微调 (SFT)、偏好学习 (DPO)最终训练出一个可以进行对话聊天的大语言模型。整个过程会像探宝一样,你会因为将一个又一个新知识收入囊中而充满惊喜,也会因为弄懂了一个又一个的内部原理而持续收获到原来如此。

专栏内容

本教程大体上可以分为四部分,分别如下:

  • 第一部分是关于语言模型的基本认识、分词器和嵌入;
  • 第二部分是关于多头因果自注意力、transformer块、GPT模型构建;
  • 第三部分是关于预训练、监督微调、偏好学习以及相关训练的数据集处理;
  • 最后一部分是关于自回归文本生成、kvcache、推理加速相关的内容;

教程具有清晰的章节结构,完整目录如下:

前面几章带链接的已经制作完成,剩下的将会以每周一到两篇的频率更新。

本系列教程有如下特点:

  • 可运行的代码示例 :每个章节都附有运行示例,帮助您更好地理解理论与实践的结合。

  • 一步一步的演示 :课程中对每个组件的实现过程都进行了逐步拆解和演示。

    -

  • 详细的解释 :对每一步用到的相关深度学习知识,都进行了解读和拓展说明。

专栏附带资源

为了最大限度的降低学习门槛,本教程附带了可运行的notebook ,notebook文件与专栏的教程目录一一对应。

所有的notebook都可以在jupyter中直接运行(内容示例如下)。

教程还附带了每个训练阶段所需数据集的下载地址 。

具体数据集的内容因训练类别而有所不同。

  • 分词器和预训练的数据格式基本相同,每条数据是一个text(如下所示)。
  • SFT的训练数据会包含instruction、input和output。
  • DPO的训练数据针对每条prompt都会有chosen(人类偏好)和reject(非人类偏好)两条回答。
资源在哪里找到?

在每篇文章的相关资料链接上都附有notebook的github地址,打开后就能看到notebook文件和相关数据集文件。

从何处开始?

如果没有模型基础,可以先从认识模型开始,这篇教程会带你逐层解剖模型生成文本的过程:

如果不会搭建环境,可以参考下面两篇教程来搭建自己的环境:

如果没有使用过jupyter,这里有一篇笔记可以带你入门:

结语

我们设定本课程为付费模式的初衷有以下几点:

  • 对内容创作者的支持:本教程是经过多次实践整理而成的,付费将激励作者创作更多优质的教学内容,并回馈给广大的读者。
  • 学习的承诺:支付一小笔费用(仅相当于请作者喝了一杯咖啡),可以激励学习者投入更多时间与精力,努力回报这笔小的投资。

注:如果付费后github地址由于网络原因访问不顺畅,可以用csdn的私信功能联系获取。

相关推荐
李兆龙的博客1 分钟前
从一到无穷大 #108:Meta 的 AI 存储架构——BLOB 重构与跨地域数据加载
人工智能·重构·架构
aneasystone本尊5 分钟前
学习大模型训练的 RLHF:从人类偏好到奖励模型
人工智能
天天被压力5 分钟前
【A股分钟级高频数据完全手册 #09】A股历史分时交易数据接口:普通分时怎么批量下
java·人工智能·python
叼烟扛炮6 分钟前
[LangChain] 学习笔记(05):提示词模板(Prompt)与少样本注入(Few-Shot)实战
linux·人工智能·笔记·学习·langchain·prompt
天天被压力13 分钟前
【A股分钟级高频数据完全手册 #10】股票实时行情数据接口Python:公开源实时交易取数
java·人工智能·python
深蓝AI17 分钟前
Vercel 把浏览器做成命令行:agent-browser 十个月 4.6 万星,给每个元素发一个编号
人工智能·程序员
唐老板33 分钟前
最会审代码的 AI,也只挑得出三分之一
人工智能·ai编程
kaixin_啊啊7 小时前
【零基础学AI】第 25 章课后练习与答案
人工智能
水如烟8 小时前
孤能子视角:逆溯法与传统方法比较
人工智能
jimmyleeee9 小时前
大模型安全之五十一:OWASP LLM Top 10 全景解读
人工智能·安全