挖掘ChatGPT底层原理,理解实现方法 u1-深度学习基础u2-ChatGPT的本质u3-GPT-1介绍u4-GPT-2介绍u5-GPT-3介绍u6-ChatGPT原理详解 多一句没有,少一句不行,用最短时间,教会更实用的技术! 深度学习基础 深度学习是什么?如何理解神经网络结构? 多一句没有,少一句不行,用最短时间,教会更实用的技术! •神经网络 •深度学习与神经网络 应用场景? 自然语音处理,图像识别,语音识别 深度学习? 人工神经网络? 模仿动物神经网络行为特征,进行并行信息处理的算法数学模型。 深度学习是实现机器学习的一种技术深度学习是用深度神经网络(DNN,DeepNeural Network)来进行学习的技术 生物神经网络? 生物神经网络主要是指人脑的神经网络 •神经网络介绍 Ø生物神经网络结构如下 •神经网络介绍 Ø人工神经网络(Artificial Neural Network,简写为ANN)也简称为神经网络(NN),是一种模仿生物神经网络结构和功能的计算模型. 当电信号通过树突进入到细胞核时,会逐渐聚集电荷。达到一定的电位后,细胞会被激活,通过轴突发出电信号。 •神经网络介绍 Ø从大脑的神经元抽象得到的模型的数学表示: 模型不能训练,也就是没有学习的过程: •可以说不能称作是机器学习,上图中的w0,w1,w2都是预设好的定死的,不能够通过学习来调整。 •如何让这个模型最后适应你的数据,最后学习到适合你当前数据的参数,比如w0,w1等。 •神经网络介绍 Ø第一个感知机模型 •如何学习参数w •神经网络介绍 Ø第一个感知机模型 •通过误差反向传播更新参数 多一句没有,少一句不行,用最短时间,教会更实用的技术! •神经网络介绍 •神经网络介绍 Ø神经网络中信息只向一个方向移动,即从输入节点向前移动,通过隐藏节点,再向输出节点移动。其中的基本部分是: 1.输入层:即输入x的那一层2.输出层:即输出y的那一层3.输入层和输出层之间都是隐藏层 •神经网络介绍 1.确定神经网络层数 (1)输入层和输出层仅有一层,隐层有多层 2.确定每层单元的个数 (1)输入层单元个数根据输入数据个数定(2)输出层单元个数根据目标分类个数确定(3)隐层的单元个数如何确定?=>隐层个数设定没有明确规则,根据准确度来进行判断和改进。 高级数字化人才培训专家 1.ChatGPT是基于什么技术的语言模型? ChatGPT是属于基于深度学习的一种语言模型 2.感知机模型如何进行参数更新的? 采用误差反向传播来更新参数, 3.如何设计神经网络结构? 1.确定神经网络层数2.确定每层单元的个数 多一句没有,少一句不行,用最短时间,教会更实用的技术! ChatGPT的本质 02 ChatGPT的本质是什么?ChatGPT的成长史? •ChatGPT本质 •ChatGPT是在GPT基础上进一步开发的NLP模型 lGenerative Pre-trained Transformer(模型) lChatGPT是基于GPT-3的优化实现版本 •ChatGPT本质 ChatGPT本质 01 神经网络语言模型介绍 02 基于神经网络的语言模型原理介绍 神经网络语言模型--ChatGPT的发展介绍GPT-1、GPT-2、GPT-3、ChatGPT 03 •ChatGPT本质 •2022年11月30日,OpenAI的CEO,Altman在推特上写道:“今天我们推出了ChatGPT,尝试在这里与它交谈”,然后是一个链接(https://chat.openai.com/auth/login),任何人都可以注册一个帐户,开始免费与OpenAI的新聊天机器人ChatGPT交谈. 高级数字化人才培训专家 •ChatGPT本质 ChatGPT是由OpenAI开发的一种大型预训练语言模型,其和人类沟通的方式为人机对话形式 思考两个问题: 机器如何判断一条输入句子的合理性? 机器的回复是否是人类可以理解的或者是人类习惯在日常生活中习惯表达的? 解决方法: •什么是语言模型? Ø通俗理解:判断一个句子序列是否是正常语句,即是否是人话. Ø标准定义:对于某个句子序列,如{W1, W2, W3, …, Wn},语言模型就是计算该序列发生的概率,即P(W1,W2, …, Wn).如果给定的词序列符合语用习惯,则给出高概率,否则给出低概率. 举例我爱黑马程序员黑马爱我程序员 •什么是语言模型? 如果能够得到一个句子出现的概率模型,这就是语言模型 •N-gram语言模型 为了解决上述问题,引入马尔科夫假设:随意一个词出现的概率只与它前面出现的有限的一个或者几个词有关. Ø如果一个词的出现与它周围的词是独立的,那么我们就称之为unigram(一元语言模型). Ø如果一个词的出现仅依赖于它前面出现的一个词,那么我们就称之为bigram(二元语言模型). Ø如果一个词的出现仅依赖于它前面出现的两个词,那么我们就称之为trigram(三元语言模型). 一般来说,N元模型就是假设当前词的出现概率只与它前面的N-1个词有关,而这些概率参数都是可以通过大规模语料库来计算的。 在实践中用的最多的就是bigram和trigram •bigram语言模型 举例说明: Ø首先我们准备一个语料库(简单理解让模型学习的数据集),为了计算对应的二元模型的参数,即P(Wi|Wi-1),我们要先计数即C(Wi-1, Wi),然后计数C(Wi-1),再用除法可得到概率. Ø为了方便理解,了解P(A|B)公式如下: 高级数字化人才培训专家 •bigram语言模型 举例说明: Ø首先我们准备一个语料库(简单理解让模型学习的数据集),为了计算对应的二元模型的参数,即P(Wi|Wi-1),我们要先计数即C(Wi-1, Wi),然后计数C(Wi-1),再用除法可得到概率. •bigram语言模型 到底是我想去打篮球还是晚饭? C(Wi-1)的计数结果如下: Ø那么bigram语言模型针对上述语料的参数计算结果如何实现?假如,我想计算P(想|我)=0.38,计算过程如下显示: (其他参数计算过程类似) 如果针对这个语料库的二元模型(bigram)建立好之后,就可以实现我们的目标计算: 高级数字化人才培训专家 •bigram语言模型 到底是我想去打篮球还是晚饭? C(Wi-1)的计数结果如下: Ø那么bigram语言模型针对上述语料的参数计算结果如何实现?假如,我想计算P(想|我)=0.38,计算过程如下显示: (其他参数计算过程类似) 如果预测:我想去打乒乓球?引入拉普拉斯变换 多一句没有,少一句不行,用最短时间,教会更实用的技术! •神经网络语言模型 Ø模型的输入:w(t-n+1),…,w(t-2),w(t-1)就是前n-1个词。现在需要根据这已知的n-1个词预测下一个词w(t)。C(w)表示w所对应的词向量. Ø第一层:将C[w(t-n+1)],…,C[w(t-2)],C[w(t-1)] n-1个向量首尾拼接起来形成一个(n-1)*m大小的向量,记作x. Ø第二层:一个全连接层,通过全连接层后再使用tanh激活函数进行处理。 Ø第三层:一个全连接层,输出共有V个神经元(V代表语料的词汇)。每个神经元代表一个概率,最大概率值,就是我们需要预测的结果。 多一句没有,少一句不行,用最短时间,教会更实用的技术! ChatGPT的本质 多一句没有,少一句不行,用最短时间,教会更实用的技术! üGPT的三个模型几乎都是相同架构,只是有非常非常少量的改动。 1. ChatGPT本质?ChatGPT本质是一种基于GPT-3的聊天机器人模型 2. ChatGPT发展过程?GPT-1,GPT-2,GPT-3,ChatGPT 3. GPT-1,GPT-2,GPT-3参数量分别是多少?上升背后的意思如何?参数量上升背后是模型愈加复杂,模型表现变得更好 高级数字化人才培训专家 多一句没有,少一句不行,用最短时间,教会更实用的技术! GPT-1介绍 GPT-1是什么?GPT-1模型的实现细节是什么? 本章节内容大纲: 多一句没有,少一句不行,用最短时间,教会更实用的技术! •GPT-1介绍 •2018年6月,OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》,推出了具有1.17亿个参数的GPT-1(Generative Pre-trained Transformer)模型. Transformer •GPT-1介绍 •2018年6月,OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》,推出了具有1.17亿个参数的GPT-1(Generative Pre-trained Transformer)模型. •GPT-1介绍 •2018年6月,OpenAI公司发表了论文“Improving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》,推出了具有1.17亿个参数的GPT-1(Generative Pre-trained Transformer)模型. •GPT-1模型架构 •对比于经典的Transformer架构,解码器模块采用了6个Decoder Block; GPT-1的架构中采用了12个Decoder Block. •GPT-1模型架构 •GPT-1使用了BooksCorpus数据集,这个数据集包含7000本没有发布的书籍 数据集拥有更长的上下文依赖关系,使得模型能学得更长期的依赖关系; 这些书籍因为没有发布,所以很难在下游数据集上见到,更能验证模型的泛化能力 高级数字化人才培训专家 多一句没有,少一句不行,用最短时间,教会更实用的技术! •GPT-1模型训练过程 •GPT-1模型训练过程 GPT-1的训练包括两阶段过程 第一阶段:无监督预训练 Ø给定句子U = [u1,u2,...,un],GPT-1训练语言模型时的目标是最大化下面的似然函数: Ø有上述公式可知,GPT-1是一个单向语言模型,假设输入张量用h0表示,则计算公式如下: Ø得到输入张量h0后,要将h0传入GPT-1的Decoder Block中,依次得到ht: Ø最后通过得到的ht来预测下一个单词: •GPT-1模型训练过程 GPT-1的训练包括两阶段过程 第二阶段:下游监督任务fine-tunning ØGPT-1预训练后,会针对具体的下游任务对模型进行微调.训练样本包括单词序列[x1,x2,..,xn]和label y.GPT-1微调的目标是根据单词序列[x1,x2,...,xn]预测标签y. Ø微调任务的目标是最大化下面的函数: Ø综合两个阶段的目标任务函数,可知GPT-1的最终优化函数为: •GPT-1模型训练过程 ①根据任务定义不同输入②对不同任务增加不同的分类层 根据下游任务适配的过程分两步: •GPT-1模型总结 缺点 ØGPT-1证明了transformer对学习词向量的强大能力Ø在GPT-1得到的词向量基础上进行下游任务的学习,能够让下游任务取得更好的泛化能力Ø对于下游任务的训练, GPT-1往往只需要简单的微调便能取得非常好的效果. ØGPT-1在未经微调的任务上虽然也有一定效果,但是其泛化能力远远低于经过微调的有监督任务, Ø说明了GPT-1只是一个简单的领域专家,而非通用的语言学家.