手撸 chatgpt 大模型:简述 LLM 的架构,算法和训练流程

本节我们自顶向下看看大模型的相关概念,了解其基本架构以及从零手撸大模型的基本流程。自从 openai 释放了 chatgpt 后,人工智能就立马进入了大模型时代,我还记得在此之前 NLP 的处理主要依赖于深度学习的 LSTM,GRU 等模型架构。这些模型参数也就在几百万左右,而大模型出来后,原本这些"先进"的 NLP 处理模型一下变成了笑话然后被扫到了历史的垃圾堆里,如今在自然语言处理方面已经不再有这些红极一时的深度学习模型的身影。

大模型首要特点在于"大"。所谓"大"就是模型的参数多。前面我们提到的深度学习模型 LSTM,GRU 等,参数数量在几百万左右,而大模型的参数数量的计量单位是"十亿",目前已经"落后"的 gpt3 模型上千亿,而大模型中的"小"模型参数数量也在七八十亿左右,目前国内外最新的大模型参数数量也要三四千亿了。第二个"大"在与训练模型的数据量。我记得训练 LSTM 这些模型时,基本上几本电子书的内容即可,而训练大模型,openai 等这些巨头是将所有互联网的公开数据,所有能电子化的书籍,所有可以接触的数据库全都作为训练数据。正是因为他在参数量和训练数据两方面的大才使得大模型在语言和文字方面的生成能力极强。

第二是在架构方面。大模型使用了两种突破性的算法设计,一个叫 transformer 架构,一个叫 attention 机制。正是这两个模块使得大模型在训练上能够实现高并发,同时在输入数据的识别能力上呈现出"进化"级别的提升。我们先简要看看 transformer 架构的基本信息,它最早应用与文本翻译,它包含两个关键模块,一个是编码器,另一个是解码器:

在机器翻译时,在编码器输入一句原文,编码器把原文转换为一个向量,这个向量会输入给解码器进行分析,然后我们把对应翻译后目标语言的对应句子前部分输入解码器,训练的目的是让解码器生成下一个单词或字,例如当我们要实现英语翻译成中文,那么 "I love you"对应的句子作为输入到编码器,然后在解码器部分只输入"我爱",最后我们训练解码器生成最后一个字也就是"爱"。

chatGPT 的架构设计与上面的 transformor 有所不同,因为它只有解码器部分而没有编码部分,基本情况如下:

设计成这种模式主要是因为 chatgpt 强调的是文本生成而不是翻译,因此它主要训练生成能力。另一个关键组件是 attention 机制,它相对复杂,我们后面再具体的解析,特别是使用代码实现来了解它。

最后我们看看大模型的基本训练流程:

它主要分成两部分,第一个不服就是 train,也就是通过大量的数据训练基础模型,这个基础模型拥有强大的语言理解和生成能力。然后在基础模型上再训练专业模型,例如训练针对法律领域或者是金融领域的大模型,现在业界主要集中在后半部分,因为基础大模型有很多开源或者可以在 hugging face 上直接下载,而大模型真正的商业竞争力在后半部,也就是组织如何将自己专有数据生成专有知识大模型从而提供专业服务或是提升组织内工作者或合作者的生产效率,我们将深入了解这两部分,首先我们将代码设计基础模型,深入查看训练流程和效果。当然我们个人所拥有的资源不足以训练出有效的模型结果,因此我们只集中在算法设计的训练流程的掌握上。然后我们再去使用开源的基础模型深入理解第二部分也就是特定优调的过程。

相关推荐
hunteritself4 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
XH华4 小时前
初识C语言之二维数组(下)
c语言·算法
南宫生4 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
不想当程序猿_4 小时前
【蓝桥杯每日一题】求和——前缀和
算法·前缀和·蓝桥杯
落魄君子4 小时前
GA-BP分类-遗传算法(Genetic Algorithm)和反向传播算法(Backpropagation)
算法·分类·数据挖掘
菜鸡中的奋斗鸡→挣扎鸡5 小时前
滑动窗口 + 算法复习
数据结构·算法
Lenyiin5 小时前
第146场双周赛:统计符合条件长度为3的子数组数目、统计异或值为给定值的路径数目、判断网格图能否被切割成块、唯一中间众数子序列 Ⅰ
c++·算法·leetcode·周赛·lenyiin
郭wes代码5 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
scan7245 小时前
LILAC采样算法
人工智能·算法·机器学习
菌菌的快乐生活5 小时前
理解支持向量机
算法·机器学习·支持向量机