当前位置: 首页 > news >正文

淘宝客网站开发视频新手 网站建设 书籍

淘宝客网站开发视频,新手 网站建设 书籍,枣庄建设工程管理局网站,文创产品设计ppt模型模型参数创新点评价GPT1预训练微调#xff0c; 创新点在于Task-specific input transformations。GPT215亿参数预训练PromptPredict#xff0c; 创新点在于Zero-shotZero-shot新颖度拉满#xff0c;但模型性能拉胯GPT31750亿参数预训练PromptPredict#xff0c; 创新点…模型模型参数创新点评价GPT1预训练微调 创新点在于Task-specific input transformations。GPT215亿参数预训练PromptPredict 创新点在于Zero-shotZero-shot新颖度拉满但模型性能拉胯GPT31750亿参数预训练PromptPredict 创新点在于in-context learning开创性提出in-context learning概念是Prompting祖师爷ICL是Prompting范式发展的第一阶段。 1.GPT Improving Language Understanding by Generative Pre-Training paper: https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf 1.1.Abstract 目前NLUNatural Language Understanding方向的局限性有标签的数据相对较少限制了模型性能的提升。此外目前预训练语言模型存在一定的局限性 1.不能通用不同损失函数在各个任务上表现差异大训练数据集并没有包含各个NLP任务。 2.不统一将预训练语言模型迁移到下游任务的方法不统一不同的子任务有时还需要调整模型结构。 GPT的基本思想是先在大规模没有标签的数据集上训练一个预训练模型即generative pre-training的过程再在子任务小规模有标签的数据集上训练一个微调模型即discriminative fine-tuning的过程。 GPT模型是在Google BERT模型之前提出的, 与BERT最大的区别在于GPT采用了传统的语言模型方法进行预训练, 即使用单词的上文来预测单词, 而BERT是采用了双向上下文的信息共同来预测单词.正是因为训练方法上的区别, 使得GPT更擅长处理自然语言生成任务(NLG), 而BERT更擅长处理自然语言理解任务(NLU)。 很多时候我们说BERT和GPT的区别在于编码器和解码器其中编码器可以看到全部而解码器只能看到部分这个说法其实非常不准确。真正不一样的地方在于预训练任务以及其对应的目标函数。GPT的预训练任务是下一个词预测这比BERT的完形填空难得多因为它要预测一个开放式的结局。 “这是导致GPT在训练上和效果上比BERT差很多的重要原因。但如果你的模型真的能够预测未来的话它的能力要比BERT这样的模型强大很多。这就是为什么作者要一直不断把模型做大一直不断努力最终造出了GPT-3那样子惊艳的东西。OpenAI选择了一个更难的技术路线但可能它的天花板也就更高了。”——李沐 1.2.Model Construction GPT-1选择使用Transformer结构是因为在NLP的相关任务中Transformer学到的features更稳健。与循环神经网络等其他模型相比,Transformer提供了更结构化的长期记忆,这有利于文本中的长期依赖关系的处理从而更好的抽取句子层面和段落层面的语义信息。 GPT-1利用了任务相关的输入一个表示将结构化文本输入作为一个连续的token序列进行处理。 经典的Transformer Decoder Block包含3个子层, 分别是Masked Multi-Head Attention层, Encoder-Decoder Attention层, 以及最后的一个全连接层。 GPT是一个Decoder-Only的结构他根本就没有编码器自然无从从编码器中获得Key和Value! 因此在Decoder-Only的魔改Transformer中我们往往会取消第二个Encoder-decoder Attention子层, 只保留Masked Multi-Head Attention层, 和Feed Forward层 Embedding词嵌入位置编码带掩码的多头自注意力机制让当前时间步和后续时间步的信息的点积在被softmax后都为零输出的向量输入给一个全连接层而后再输出给下一个Decoder。GPT有12个Decoder经过他们后最终的向量经过一个logit的linear层、一个softmax层就输出了一个下一个词的概率分布函数。输出的词会作为下一个词的输入。 GPT1模型 GPT的训练范式预训练Fine-Tuning 1.3.无监督预训练 GPT-1的无监督预训练是基于语言模型进行训练的给定一个无标签的序列 U { u 1 , u 2 , . . . , u n } U\{u_1,u_2,...,u_n\} U{u1​,u2​,...,un​}, GPT1的基础框架 h 0 U W e W p h l t r a n s f o r m e r ( h l − 1 ) P ( u ) s o f t m a x ( h n W e T ) \begin{aligned} h_0UW_eW_p \\ h_ltransformer(h_{l-1})\\ P(u)softmax(h_nW_e^T) \\ \end{aligned} h0​hl​P(u)​UWe​Wp​transformer(hl−1​)softmax(hn​WeT​)​ 其中 W e W_e We​表示词嵌入矩阵 W p W_p Wp​表示位置嵌入矩阵 W e T W_e^T WeT​表示线性映射层对应的参数矩阵维度是词表的大小。 语言模型的优化目标是最大化下面的似然值 L 1 ( U ) Σ i l o g P ( u i ∣ u i − k , . . . , u i − 1 ; θ ) L_1(U)\Sigma_ilogP(u_i|u_{i-k},...,u_{i-1};\theta) L1​(U)Σi​logP(ui​∣ui−k​,...,ui−1​;θ) 其中k表示是滑动窗口的大小即每次预测单词时的句子长度 θ \theta θ表示模型参数P表示条件概率。 1.4.有监督微调 当得到无监督的预训练模型后可以将该模型直接应用到有监督任务中。每个实例有 m m m个输入 x 1 , x 2 , . . . , x m x^1,x^2,...,x^m x1,x2,...,xm 以及标签y组成。首先将这些token输入到预训练的GPT1中得到最终的特征向量 h l m h_l^m hlm​,然后再通过一个全连接层得到预测结果y P ( y ∣ x 1 , x 2 , . . . , x m ) s o f t m a x ( h l m W y ) \begin{aligned} P(y|x^1,x^2,...,x^m)softmax(h_l^mW_y) \end{aligned} P(y∣x1,x2,...,xm)​softmax(hlm​Wy​)​ 有监督的目标是最大化以下损失 L 2 ( C ) Σ l o g P ( y ∣ x 1 , x 2 , . . . , x m ) \begin{aligned} L_2(C)\Sigma logP(y|x^1,x^2,...,x^m) \\ \end{aligned} L2​(C)​ΣlogP(y∣x1,x2,...,xm)​ GPT1中作者并没有直接使用L2而是使用联合的损失并使用 λ \lambda λ进行两个任务权值的调整 λ \lambda λ的值一般为0.5 L 3 ( C ) L 1 ( C ) L 2 ( C ) \begin{aligned} L_3(C)L_1(C)L_2(C) \\ \end{aligned} L3​(C)​L1​(C)L2​(C)​ 任务适配 文本分类可以看到有两个特殊符号Start和Extract加了一个线性层。 蕴含理解给一段话提出一个假设看看假设是否成立。将前提premise和假设hypothesis通过分隔符Delimiter隔开两端加上起始和终止token。再依次通过transformer和全连接得到预测结果 文本相似断两段文字是不是相似。相似是一个对称关系A和B相似那么B和A也是相似的所以参考那张图先有Text1分隔符Text2再有Text2分隔符Text1两个序列分别经过Transformers后各自得到输出的向量我们把它按元素加到一起然后送给一个线性层。这也是一个二分类问题。 问答多个序列每个序列都由相同的问题Context和不同的Answer构成。如果有N个答案就构造N个序列。每个QA序列都各自经过Transformers和线性层对每个答案都计算出一个标量最后经过softmax生成一个各个答案的概率密度分布。这是一个N分类问题。 GPT1买点 通过这样的方法这四个自任务就都变成了序列标注的形式。尽管各自的形式还是稍微有一些不一样但不管输入形式如何、输出构造如何中间的Transformer他是不会变的。不管怎样我们都不去改图中的Transformer的模型结构这是GPT和之前工作的区别也是这篇文章的一个核心卖点。 1.5.GPT与BERT GPT和BERT的区别 GPT使用的Transformer的Decoder层目标函数为标准的语言模型每次只能看到当前词之前的词需要用到Decoder中的Masked attention BERT使用的Transformer的Encoder层目标函数为带[Mask]的语言模型通过上下文的词预测当前词对应Encoder 为什么GPT的性能比BERT差 GPT预训练时的任务更难BERT的base就是为了和GPT对比参数设定几乎一样 BERT预训练用的数据集大小几乎是GPT的四倍 2.GPT2 Language Models are Unsupervised Multitask Learners paper: https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf 2.1.Abstract 基于GPT1和BERT的工作发现GPT1这种上下文生成应用面更广以及BERT使用编码器和大规模数据集获得了更好的实验效果。一个使用了解码器一个使用了编码器换做作者是你你是否还会继续打回去GPT2的目的就是做这个事情模型更大数据更多效果是否能干掉BERT。 作者收集了一个更大的数据集WebText百万网页数据,同时将模型从1亿参数110M变成了15亿参数1.5B但存在一个问题数据集上去了效果真的有明显的优势吗于是作者想到了zero-shot这个路子。 2.2.Model Construction 数据 多任务大规模数据zero shot, 序列的改造使不同任务的输入序列与训练时见到的文本长得一样。模型在GPT-1上的调整 后置层归一化 post-norm 改为前置层归一化 pre-norm )在模型最后一个自注意力层之后额外增加一个层归一化;调整参数的初始化方式按残差层个数进行缩放缩放比例为 1 : sqrt(n)输入序列的最大长度从 512 扩充到 1024;模型层数扩大 GPT2的训练范式预训练Prompt predict zero-shot learning 2.3.无监督预训练 同上述GPT1一样。 2.4.zero-shot predict 下游任务转向做zero-shot而放弃微调相较于GPT出现一个新的问题样本输入的构建不能保持GPT的形态因为模型没有机会学习StartDelimExtract这些特殊token。因此GPT-2使用一种新的输入形态增加文本提示后来被称为prompt不是GPT-2第一个提出他使用的是18年被人提出的方案。 下面将介绍zero-shot的由来即背后的思想 2.4.1.多任务学习 现在的语言模型泛化能力比较差在一个训练集、一个训练任务上训练出来的参数很难直接用到下一个模型里。因此目前大多数模型都是Narrow Expert而不是Competent Generalists。OpenAI希望朝着能够执行许多任务的更通用的系统发展–最终不需要为每个任务手动创建和标记训练数据集。 多任务学习的定义 多任务学习Multi-Task Learning, MTL是一种机器学习方法它可以通过同时学习多个相关的任务来提高模型的性能和泛化能力。与单任务学习只针对单个任务进行模型训练不同多任务学习通过共享模型的部分参数来同时学习多个任务从而可以更有效地利用数据提高模型的预测能力和效率。 如何做到多任务学习呢 把所有的任务都归结为上下文的问题回答。具体的应该满足如下的条件 必须对所有任务一视同仁也就是喂给模型的数据不能包含这条数据具体是哪个任务不能告诉模型这条数据是要做NMT另一条数据要做情感分类。 模型也不能包含针对不同任务的特殊模块。给模型输入一段词序列模型必须学会自己辨别这段词序列要求的不同的任务类型并且进行内部切换执行不同的操作。 此外模型还应具备执行这10个任务之外的任务的能力即zero shot learning。 Multitask Question Answering Network, MQAN这篇文章中提出了一个新的在没有任何特定任务模块或参数的情况下联合学习decaNLP的所有任务。把各种下游子任务都转换为QA任务并且让模型通过我们告诉他的自然语言**Prompt**去自动执行不同的操作从而完成任务的想法也是GPT-2的关键。这就是为什么提出GPT-2的论文的标题叫Language Models are Unsupervised Multitask Learners 2.4.2.Zero-shot相关细节 GPT-2 最大的改变是抛弃了前面“无监督预训练有监督微调”的模式而是开创性地引入了 Zero-shot 的技术即预训练结束后不需要改变大模型参数即可让它完成各种各样的任务。 Zero-shot的含义 我们用预训练模型做下游任务时不需要任何额外的标注信息也不去改模型参数。 GPT1过度到GPT2的zero-shot GPT1中我们的模型在自然语言上进行预训练到了给下游任务做微调的时候我们是引入了很多模型之前从来没有见过的特殊符号这个符号是针对具体的任务专门设计的即给GPT的输入进行了特殊的构造加入了开始符、结束符、分割符。这些符号模型要在微调的过程中慢慢认识。 如果想要做Zero-short Learning即不做任何额外的下游任务训练的话就没办法让模型去临时学习这些针对特定任务的构造了。因此我们在构造下游任务的输入的时候就不能引入特殊的符号而是要让整个下游任务的输入和之前在预训练的时候看到的文本形式一样。即要使得输入的形式应该更像自然语言。 Zero-shot到Prompting 既然输入的形式也要更像自然语言那么就应该让模型通过我们的自然语言去知道现在要去执行什么任务。 要如何做实现Zero-shot learning的前提就是我们得能够做到不需要针对下游的任务给模型的输入结构做专门的设计而是只需要给模型指示也就是提示词Prompt就好了。 为什么prompt能够实现下游任务的预测 Our speculation is that a language model with sufficient capacity will begin to learn to infer and perform the tasks demonstrated in natural language sequences in order to better predict them, regardless of their method of procurement. ——OpenAI 当数据量足够大、模型能力足够强的时候语言模型会学会推测并执行用自然语言提出的任务因为这样可以更好的实现下一词预测。(ICL的雏形) 2.5.GPT2 conclusion GPT-2的最大贡献是验证了通过海量数据和大量参数训练出来的词向量模型有迁移到其它类别任务中而不需要额外的训练即zero-shot learning的能力。但是效果其实很一般。 GPT-2表明随着模型容量和数据量的增大其潜能还有进一步开发的空间基于这个思想促使了GPT3的出现。 2.6. GPT2 code study 下面是两个中文GPT2实战项目 https://github.com/Morizeyao/GPT2-Chinese https://github.com/yangjianxin1/GPT2-chitchat?tabreadme-ov-file 模型训练 1.dataset process: 将语料通过sentencetokens转换为input_ids送入model中 例[101,122,123,435,634,102] 是一个length6其中101: ,102: 2.model inferenceinput_ids进入transformer的decoder中以及经过全连接层后产生的结果与输入的length对齐即6*768维度的note:假设他是从第一个词之后开始预测 3.Loss function compute计算损失函数true_labels是输入的input_ids,但是只取前[1:]logits是model输出的结果但是只取[:-1]因为生成式模型是用前面的内容预测下一个词假设输入的原文本是: [ C L S ] [CLS] [CLS] 测试 [ S E P ] [SEP] [SEP] 那么会从 [ C L S ] [CLS] [CLS]开始预测下一个tokenlabels[…, 1:, :]就是测试 [ S E P ] [SEP] [SEP]“这几个待预测token对应的idlogits[…, :-1, :]是因为-1是根据” [ S E P ] [SEP] [SEP]预测的原始输入到 [ S E P ] [SEP] [SEP]处就截止了所以预测的最后一个token不需要也正好和labels的长度对齐。 模型预测 1.model input输入prompt内容 2.model inferencemodel根据prompt内容输出与prompt对齐的结果只取最后一个作为predict结果并且将该结果拼接到prompt中继续执行model做predict直到model的输出为则说明推理执行完毕。 3.对于对话类型需要有一个历史存储将上k次的问答内容保存在history中并且将这些history一起送入model中去产生predict结果从而达到多轮对话的目的。 3.GPT3 Language Models are Few-Shot Learners 2005.14165.pdf (arxiv.org) 3.1.Abstract 为什么提出GPT3 GPT模型指出如果用Transformer的解码器和大量的无标签样本去预训练一个语言模型然后在子任务上提供少量的标注样本做微调就可以很大的提高模型的性能。GPT2则是更往前走了一步说在子任务上不去提供任何相关的训练样本而是直接用足够大的预训练模型去理解自然语言表达的要求并基于此做预测。但是GPT2的性能太差有效性低。 GPT3其实就是来解决有效性低的问题。Zero-shot的概念很诱人但是别说人工智能了哪怕是我们人去学习一个任务也是需要样本的只不过人看两三个例子就可以学会一件事了而机器却往往需要大量的标注样本去fine-tune。那有没有可能给预训练好的语言模型一点样本。用这有限的样本语言模型就可以迅速学会下游的任务 Note: GPT3中的few-shot learning只是在预测是时候给几个例子并不微调网络。GPT-2用zero-shot去讲了multitask Learning的故事GPT-3使用meta-learning和in-context learning去讲故事。 3.2.Model Construction GPT-3沿用了GPT-2的结构但是在网络容量上做了很大的提升并且使用了一个Sparse Transformer的架构具体如下 GPT-3采用了96层的多头transformer头的个数为 96 词向量的长度是12,888 上下文划窗的窗口大小提升至2,048个token 使用了alternating dense和locally banded sparse attention Sparse Transformer Sparse Transformer是一种旨在处理高维、稀疏和长序列数据的Transformer拓展版相比于传统的Transformer架构Sparse Transformer通过在自注意力机制中引入稀疏性减少了网络中计算的数量从而可以处理更长的序列数据。具体的在处理高维、稀疏数据时Sparse Transformer可以避免对所有输入的位置进行计算只计算与当前位置相关的位置从而提高了计算效率。 GPT3的batch size达到320万为什么用这么大的 首先大模型相比于小模型更不容易过拟合所以更用大的、噪音更少的Batch也不会带来太多负面影响其次现在训练一个大模型会用到多台机器做分布式计算机器与机器之间数据并行。最后虽然批大小增加会导致梯度计算的时间复杂度增加但是较大的batch size通常可以提高模型的训练效率和性能。 GPT3的训练范式预训练Prompt predict few-shot learning 3.3.无监督预训练 同上述GPT1、GPT2一样。 3.4.In-Context Learning (ICL上下文学习) GPT-3的few-shot learning是不会做梯度下降,它是怎么做的 只做预测不做训练我们希望Transformer在做前向推理的时候能够通过注意力机制从我们给他的输入之中抽取出有用的信息从而进行预测任务而预测出来的结果其实也就是我们的任务指示了。这就是上下文学习In context learning。 要理解in-context learning我们需要先理解meta-learning元学习。对于一个少样本的任务来说模型的初始化值非常重要从一个好的初始化值作为起点模型能够尽快收敛使得到的结果非常快的逼近全局最优解。元学习的核心思想在于通过少量的数据寻找一个合适的初始化范围使得模型能够在有限的数据集上快速拟合并获得不错的效果。 GPT-3的上下文学习能力究竟从何而来 有需要论文对ICL的出现进行了一定的科学解释具体参考ICL相关论文LLMs的细节总之当训练出一个GPT-3这么大的模型后上下文学习能力就能被体现出来了。 为了体现ICLOpenAI用三个方法来评估他 Few Shot LearningFS用自然语言告诉模型任务对每个子任务提供10100个训练样本。 One-shot Learning1S用自然语言告诉模型任务而后只给该任务提供1个样本。 Zero-shot learning0S用自然语言告诉模型任务但一个样本都不给**。** 这个模式的缺陷 GPT-3的输入窗口长度是有限的不可能无限的堆叠example的数量即有限的输入窗口限制了我们利用海量数据的能力。 每次做一次新的预测模型都要从输入的中间抓取有用的信息可是我们做不到把从上一个输入中抓取到的信息存起来存在模型中用到下一次输入里。 3.5. GPT3 Conclusion GPT系列从1到3通通采用的是transformer架构模型结构并没有创新性的设计。GPT-3的本质还是通过海量的参数学习海量的数据然后依赖transformer强大的拟合能力使得模型能够收敛。GPT-3学到的模型分布也很难摆脱这个数据集的分布情况。得益于庞大的数据集GPT-3可以完成一些令人感到惊喜的任务但是GPT-3也不是万能的对于一些明显不在这个分布或者和这个分布有冲突的任务来说GPT-3还是无能为力的。此外GPT3长文本生成能力还是很弱。 GPT-3是怎么进化成ChatGPT的 参考 GPT-1language_understanding_paper.pdf (openai.com) GPT-2language_models_are_unsupervised_multitask_learners.pdf (openai.com) GPT-3Language Models are Few-Shot Learners (arxiv.org) 其他解读 GPT系列解读一 - 知乎 (zhihu.com) GPT-2语言模型是无监督的Multitask Learner - 知乎 (zhihu.com) GPT-3语言模型是Few-Shot Learner - 知乎 (zhihu.com) GPT2实战 https://github.com/Morizeyao/GPT2-Chinese https://github.com/yangjianxin1/GPT2-chitchat?tabreadme-ov-file
http://www.pierceye.com/news/739841/

相关文章:

  • 网站建设7个基37网游官网
  • 网站设计存在的问题建筑设计私活平台
  • 网站如何做淘宝支付宝wordpress多站点不显示
  • 关于设计的网站免费注册公司
  • 网站建设排名北京网站排名降级的原因有哪些
  • 介绍网页设计做seo推广网站
  • 建立个人博客网站wordpress东城东莞网站建设
  • 从哪些方面建设网站泰州东方医院
  • 分类信息网站系统cmsWordPress新闻面包屑主题
  • wordpress 多标签关键字优化策略
  • idea15网站开发网站如何提升seo排名
  • 谁有网站推荐一下好安阳刚刚发生的事
  • 博客网站快速排名临邑县住房和城乡建设局网站
  • 二手网站建设方案营销网站建设服务平台
  • 遵化建设局网站濮阳新闻综合频道
  • 百度云如何做网站论文网站建设与运营
  • 网站开发环境实验报告注册公司流程和费用是多少
  • 下载一个网站学院网站建设的作用
  • 济南专业网站优化花西子的网络营销策略
  • 武城网站建设费用网页设计试题及答案
  • 郑州外贸网站建设公司搜索引擎排名的三大指标
  • 温州专业微网站制作电台 主题 wordpress
  • wordpress做网站过程阳江网上车管所
  • 网站抓取qq上海自贸区注册公司流程
  • 深圳网站设计推荐刻烟台制作网站有哪些
  • 网站注册系统源码卢松松博客源码 wordpress博客模板
  • 网站开发进阶实训报告廊坊安次区网站建设公司
  • jquery插件网站推荐打开网站自动跳转代码
  • 佛山顺德容桂网站制作写作平台
  • 网站源码下载pdf文件品质好房