ChatGPT前传

文章目录

    • 前言
    • GPT概述
    • GPT-1代
      • GPT-1 学习目标和概念介绍
      • GPT-1 训练数据集
      • GPT-1 模型结构和应用细节
      • GPT-1 效果性能和总结
    • GPT-2代
      • GPT-2 学习目标和概念介绍
      • GPT-2 训练数据集
      • GPT-2 模型结构和应用细节
      • GPT-2 性能效果和总结
    • GPT-3代
      • GPT-3 学习目标和概念介绍
      • GPT-3 训练数据集
      • GPT-3 模型结构和应用细节
      • GPT-3 性能效果和总结
      • GPT-3 局限性和更广泛的影响
    • 结束语
    • Reference

前言

对于目前火热的ChatGPT,总是想多聊些,那就写点其前身的知识点吧。

GPT概述

GPT(Generative Pre-trained Transformer)是OpenAI公司开发的关于自然语言处理的语言模型。这类模型在知识问答、文本摘要等方面的效果超群,更牛逼的是这居然都是无监督学习出来的模型。在很多任务上,GPT模型甚至不需要样本微调,就能在理解和执行效果上获得比当时最好的监督学习模型更好的性能。
我们就此捋一下GPT三代的历程:

  • GPT-1 Improving Lanugage Understanding by Generative Pre-training
  • GPT-2 Language Models are UnsupervisedMultitask Learners
  • GPT-3 Language Models are Few Shot Learners

提前假设大家都是了解NLP的术语和Transformer结构的,不清楚的可以自行补充知识。
咱们一篇一篇地捋一捋,分别搞清楚基本目标和概念、训练的数据集、模型结构和应用、效果和评估,也就差不多了。先上个一揽子对比图,快乐下。
在这里插入图片描述

GPT-1代

在此之前,大部分SOTA的NLP模型都是在特定任务上做有监督训练的,比如情感分类、文本含义等。通常来说,有监督是天然带有如下两个缺陷:

  • 需要大量的标签数据来学习特定的任务,而这个打标签的过程是漫长而消耗财力的。
  • 特定任务专项训练,也带来了没法向其他任务场景迁移和拓展的问题。
    而这篇文章,提出了一个思路:用无标签数据来学习生成模型,然后根据下游任务做微调使用,比如像是分类、情感分析等。

无监督学习作为有监督微调模型的预训练目标,因此被称为生成预训练。
Unsupervised learning served as pre-training objective for supervised fine-tuned models, hence the name Generative Pre-training.

GPT-1 学习目标和概念介绍

  1. 无监督语言模型(Pre-training)目标如下:
    L 1 ( T ) = ∑ i l o g P ( t i ∣ t i − k , . . . , t i − 1 ; θ ) L_1(T)=\sum_i log P(t_i|t_{i-k},...,t_{i-1}; \theta) L1(T)=ilogP(titik,...,ti1;θ)
    其中T表示时间序列下数据 { t 1 , . . . , t n } \{t_1,...,t_n\} {t1,...,tn},k表示时间窗口尺寸, θ \theta θ表示自然语言的参数。
  2. 有监督微调学习,最大似然估计,目标如下:
    L 2 ( D ) = ∑ x , y l o g P ( y ∣ x 1 , . . . , x n ) L_2(D)=\sum_{x,y} log P(y|x_1,...,x_n) L2(D)=x,ylogP(yx1,...,xn)
    D表示带标签的训练数据集, { x 1 , . . . , x n } \{x_1,...,x_n\} {x1,...,xn}是输入特征。
    本文又构造了一个带辅助的学习目标,用来给有监督微调学习来用,以更快收敛且能得到更好的概括性(这里是通常直接最大化 L 2 ( D ) L_2(D) L2(D),但论文里专门设计了带有辅助的学习目标来作为优化目标,如下)。
    L 3 ( D ) = L 2 ( D ) + λ L 1 ( D ) L_3(D)=L_2(D) + \lambda L_1(D) L3(D)=L2(D)+λL1(D)
    这里的 L 1 ( D ) L_1(D) L1(D)是辅助学习目标, λ \lambda λ是超参,一般设为0.5,表示辅助学习目标对整体学习目标的贡献度。
    下游任务的训练时,会在transformer层之后增加一层线性和softmax层,以此来学习下游任务。
  3. 特定任务的输入转换。为了最小化地修改模型结构,微调时会将下游任务的输入转换成有序序列,修改如下:
    a. 在输入序列首尾增加起始结束字符。
    b. 在样本的不同部分之间,增加切分符,以表示输入的有序性。比如问答类任务,多个选项间就增加了切分符。

GPT-1 训练数据集

GPT-1使用BooksCorpus语料集。该语料包括大约7000本没出版过的书籍,能够学到一些市面上不可见的数据信息。而这类信息不太可能在下游任务中出现。另外,该语料还包括大量的连续文本,能够给模型提供了学习大范围独立性的可能性。

GPT-1 模型结构和应用细节

GPT-1模型使用了12层解码器,自注意机制的transformer结构。跟Transformer的原始结构是保持一致的。遮挡能够帮助模型扩大视野,学习到双侧信息。应用细节如下:

  1. 无监督训练
    • 使用了大约4万个合并之后的字节对编码词表
    • 输入token使用768维词向量表示,位置向量也同时在训练时候进行学习。
    • 使用了12层自注意层,每层有12个Attention-Heads。
    • 对位置前置层,有3072维的状态值来表达其信息。
    • Adam优化器,学习率设置为2.5e-4。
    • 正则化的部分,注意力、残差、向量dropout技术都用到了,其中dropout比例0.1,L2正则用在了非Bias参数上。
    • GELU作为激活函数。
    • 模型训练参数:epoch=100 ,batch=64,seq_len=512,模型共有117M的参数。
  2. 有监督调优
    • 在下游任务上进行大约epoch=3轮的有监督微调。预训练已经学到了足够丰富的信息,这里只需要很少的轮次训练微调即可。
    • 大部分预训练的超参都无需微调,直接使用。

什么是字节对编码

GPT-1 效果性能和总结

在对比的12个专项SOTA的有监督模型学习任务中,GPT-1有9项是表现优异的。
GPT-1 performed better than specifically trained supervised state-of-the-art models in 9 out of 12 tasks the models were compared on.

另一个牛逼的地方是该模型在各项任务上的zero-shot优异表现。论文里指出该模型在不同的NLP任务上,像是问题回答、主题解析、情感分析等,都经过了zero-shot的效果评估。
GPT-1证明了一条路径是行得通的,即语言模型可以作为有效的预训练目标,从而提升其泛化性。这也为后序语言模型在大模型的邪路上狂奔提供了坚实的试验基础。GPT-1表明了迁移学习+微调的可行性,粗暴地展示了生成预训练的力量美,其他模型只需要通过更大的数据集和更多的参数,来解锁释放其巨大潜力即可。

GPT-2代

GPT-2就是利用更大的数据集和更多参数,来不断提升模型性能。其主要提升和术语概念如下:

GPT-2 学习目标和概念介绍

  1. 任务调整。语言模型的通用目标是 P ( o u t p u t ∣ i n p u t ) P(output|input) P(outputinput)。GPT-2为了能够使用同一个无监督模型来学习多任务,做了调整 P ( o u t p u t ∣ i n p u t , t a s k ) P(output|input, task) P(outputinput,task)。此处修改称之为任务微调,模型对不同任务做相同输入而产生不同输出。有的模型在架构级别实现任务调节,在架构级上提供输入和任务,注意与此处要区分开。
  2. zero-shot学习和zero-shot任务迁移。一个非常有意思的GPT-2能力是零样本任务迁移能力,零样本学习是零样本任务迁移的一个特例,即没有提供任何样本,模型直接根据指令来理解任务。不需要像GPT-1那样来调整序列作微调,GPT-2直接接受输入然后理解自然语言任务然再给出答案。

GPT-2 训练数据集

为了能够搞到高质量的数据集,论文作者们爬取了Reddit平台数据的高赞文章。最终大概有40GB文本数据,来自8百万文章,称之为WebText,比BookCorpus要更大。该训练数据集剔除了Wikipedia文档,但测试集中包含有Wikipedia文档。

GPT-2 模型结构和应用细节

GPT-2有15亿参数,比GPT-1大10倍有余(117M参数),与GPT-1的主要区别如下:

  • GPT-2有48层,并且词向量是1600维的。
  • 更大的词表字典,有50256个词。
  • 更大的batch尺寸(512),更大的上下文窗口(1024个词)。
  • 每个模块的输入层的Layer Normalization被去掉了,在最后的自注意模块上增加了一个Layer Normalization层。
  • 初始化时,残差层的权重设置为 1 / N 1/\sqrt{N} 1/N ,其中N是残差层的数量。

作者分别训练了117M,345M,762M,1.5B大小参数的模型,每个模型依次比前一个模型要更低模糊性。这表明语言模型在同样语料上的模糊性(perplexity),要随着参数的增加而降低。因此,最大的模型也在各项下游任务上具有最好的效果表现。

GPT-2 性能效果和总结

GPT-2在很多下游任务上做了评估,比如阅读理解、内容总结、语言翻译、问题回答等。

  • GPT-2在8项语言类任务上作zero shot时,能够提升其中7项SOTA效果。
  • 儿童书籍数据集被用来评估模型在名词、介词、命名实体上的效果。GPT-2提升了通用名词和实体命名任务的最优效果大概7%。
  • LAMBADA数据集被用来评估模型在确定长范围上的独立性和句子最后单词预测效果。GPT-2降低了模糊性从99.8到8.6,并且也显著提升了准确率。
  • GPT-2在4项基线阅读理解任务的zero shot情况中有3项是效果显著的。
  • 法语翻译成英语的任务中,GPT-2仅以zero shot模式就比大部分无监督模型要更好,但是比不上SOTA的效果。
  • GPT-2暂时不能胜任文本总结类任务,它的效果稍次于分类模型。

GPT-2表明,在使用更多参数在更大的训练集上学习,可以有效提升语言模型能力来理解任务,并能够以zero shot模式下提升SOTA效果。论文指出,随着模型能力的提升,效果增加呈现log线性趋势。而语言模型的模糊性,则没有饱和的趋势,仍然随着参数的增加而持续下降。这表明GPT-2的尺寸仍然可以更大,来进一步降低模糊性并提升语言理解能力。

GPT-3代

为追求更大更强,OpenAI训练了拥有1750亿参数的GPT-3模型。这一模型比微软Turing NLG语言模型还要大10倍,比GPT-2大100倍。终于在大模型的邪路上越走越远了。鉴于其以超大规模的参数在更大规模语料上的训练学习,GPT-3以zero-shot和few-shot模式在下游任务上表现优异。不仅如此,还具有了写作能力,并与人类写作难以区分。更令人惊叹的是,它还可以执行从未明确训练过的即时任务,比如数字求和、编写SQL查询语代码、解读句子单词、编写React和JavaScript代码等。简直强到没朋友的那种。

GPT-3 学习目标和概念介绍

  1. 情境学习(In-context Learning)。大语言模型通过文本训练数据来提升自己的模式识别能力和其他能力。在学习根据已知文本预测下个词的主要任务时,语言模型也开始识别语料中的模式来降低学习损失。之后,这一能力有助于zero shot任务迁移。当被提供了很少样本,或者描述做什么的时候,语言模型匹配到了样本模式(通过过往相似数据和知识学习到的)来完成任务。这是语言模型的强大能力,可以通过模型参数数量来不断提升。
  2. few-shot, one-shot, zero-shot setting。如前所讨论,few/one/zero shot 设定是零样本任务迁移的特殊情况。在few-shot中,模型可知任务描述和少量样本;在one-shot中,模型只能得知一个样本;在zero-shot中,模型啥样本也获取不到。随着模型能力的提升,few/one/zero-shot下的模型能力都得到了提升。

GPT-3 训练数据集

GPT-3在5个不同的语料集上训练,每个语料集都有一个权重。高质量的数据集采样更多,模型在其上训练更多轮次。这五个数据集分别为Common Crawl, WebText2, Books1, Books2 和Wikipedia。

GPT-3 模型结构和应用细节

GPT-3与GPT-2的模型结构一致,只有很少的区别如下:

  • GPT-3有96层,每一层有96个Attention heads。
  • 词向量的尺寸从1600变为12888。
  • 上下文窗口尺寸也从1024变为2048。
  • Adam优化器的参数 β 1 = 0.9 ; β 2 = 0.05 ; ϵ = 1 0 − 8 \beta_1=0.9;\beta_2=0.05;\epsilon=10^{-8} β1=0.9;β2=0.05;ϵ=108
  • 使用了交替稠密和局部带状稀疏注意力模式。

GPT-3 性能效果和总结

GPT-3比在数据集LAMBADA和PennTreeBank上训练的SOTA模型效果要好(在few/zero-shot模式下)。对其他数据集,则不能击败SOTA,但是能提升zeor-shot下的SOTA效果。GPT-3在闭卷问答、模式解析、翻译等任务中也变现不错,经常打平或超过最先进的微调模型。对大部分任务而言,该模型通常在few-shot下表现要好于 one/zero-shot模式下。
除了传统NLP任务评估之外,该模型还在算数假发、单词解读、新闻生成、学习和使用新词等综合任务上进行了评估。诸如此类的任务,模型效果也在随着参数增加而提升,模型也在few-shot下表现要好于one/zero-shot模式。

GPT-3 局限性和更广泛的影响

GPT-3的缺陷也在论文中讨论,并给出了进一步提升的地方。

  • 尽管GPT-3能够产生高质量的文本,但在长句子下回失去连贯性且会不断重复片段。在某些任务中,GPT-3表现一般,比如自然语言推理(一个句子是否暗指另一个句子),完形填空,一些阅读理解任务等。论文指出,GPT模型的单向性是造成这类问题的大概原因,并建议训练双向模型以解决此类问题。
  • 另外一个局限性,GPT-3使用通用语言建模目标,每个token的权重均等,缺少面向任务/目标预测的概念。为解决这类问题,论文提出了一些方法,比如增强学习目标,使用强化学习来微调模型,添加其他模式等。
  • 其他GPT-3的局限性,包括大模型的复杂而昂贵的推理过程,模型和生成结果的低可解释性,不确定性(什么有助于模型实现其few-shot学习行为)。
  • 除了上述局限性,GPT-3还存在着各种潜在风险,比如类人类文本生成能力的滥用-网络钓鱼、垃圾邮件、误导信息传播、其他欺诈行为。模型会受限于其训练语料的偏见,生成的内容也会具有性别、民族、种族和总监的偏见。因此,要非常谨慎小心地使用模型并且监督其生成的文本内容。

结束语

本文总结了3篇GPT相关的文章,作为ChatGPT的前传出现在这里,是想让大家在了解ChatGPT的时候,对其前期的技术积累有个基本的概要了解。想要了解更多,还是建议大家看论文本身。

Reference

  • [1] Radford, A., Narasimhan, K., Salimans, T. and Sutskever, I., 2018. Improving language understanding by generative pre-training.
  • [2] Radford, A., Wu, J., Child, R., Luan, D., Amodei, D. and Sutskever, I., 2019. Language models are unsupervised multitask learners. OpenAI blog, 1(8), p.9.
  • [3] Brown, Tom B., Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan et al. “Language models are few-shot learners.” arXiv preprint arXiv:2005.14165 (2020).
  • [4] Rei, M., 2017. Semi-supervised multitask learning for sequence labeling. arXiv preprint arXiv:1704.07156.
  • [5] Waswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A.N., Kaiser, L. and Polosukhin, I., 2017. Attention is all you need. In NIPS.

有个发表论文时,作者与编辑交流修改意见的网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/625.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海亚商投顾:创业板指低开高走ChatGPT概念股再爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指盘中一度跌超1%,午后震荡回升跌幅收窄,创业板指则低…

十条ChatGPT常用的Prompt

Prompt 本文数据来源:@Will 3.6-6.16 硅谷,原作者:@rowancheung 一,简化复杂的信息 Prompt: 将(主题)分解成更小、更容易理解的部分。使用类比和现实生活中的例子来简化概念并使其更相关 Break down the (topic) into smaller, easier-to-understand parts. Use ana…

自己动手做chatGPT:向量的概念和相关操作

chatGPT的横空出世给人工智能注入一针强心剂,它是历史上以最短时间达到一亿用户的应用。chatGPT的能力相当惊人,它可以用相当流利的语言和人对话,同时能够对用户提出的问题给出相当顺畅的答案。它的出现已经给各个行业带来不小冲击&#xff0…

上海亚商投顾:沪指窄幅震荡 ChatGPT概念股全线下挫

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数早盘小幅冲高,随后又震荡走低,午后一度集体翻绿,临近尾盘有所回升。Ch…

详细解读ChatGPT

文章目录 前言一、ChatGPT的本质二、语言模型的发展阶段三、语言模型的能力边界四、ChatGPT如何回答问题?五、ChatGPT的缺陷六、ChatGPT需要的资源七、人工智能的边界在哪里? 前言 ChatGPT是什么?我调用了api_key对它提问,大家可以…

上海亚商投顾:创业板指高开高走 ChatGPT概念卷土重来

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 沪指今日红盘震荡,深成指、创业板指小幅走高,科创50指数涨近1.5%。ChatGPT概念股再度爆发&…

上海亚商投顾:沪指窄幅震荡 ChatGPT概念再度走高

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 沪指今日窄幅震荡,创业板指低开低走,午后跌幅扩大至1%,宁德时代一度跌近4%。6G…

谷歌推Bard引发灾难性发布:市值蒸发千亿美元 带崩ChatGPT概念

雷递网 乐天 2月9日 所谓心急吃不了热豆腐,用在谷歌身上最合适不过。 为了应对ChatGPT爆红带来的挑战,谷歌迅速推出类ChatGPT产品Bard,却发生了灾难性发布,引发了外界对AI聊天机器人Bard的嘘声。 近期,谷歌推出了一则视…

《扬帆优配》ChatGPT概念股遭集体抛售!

ChatGPT忽然走红全球带火了一批A股上市公司。 本周,ChatGPT指数经过多个买卖日的横盘整理后再度走强,并多次创下前史新高。与此同时,汤姆猫、科大讯飞、创业黑马、格灵深瞳等一大批ChatGPT概念股,在股价大涨后抛出减持方案。 Cha…

GPT-4超强进化,近万人联名封杀!ChatGPT概念股暴跌

【导读】最近,全世界都燃起一股围剿ChatGPT的势头,除了业内大佬,欧盟各国和白宫也纷纷出手。然而,恐怖的是,GPT-4已经悄悄拥有了自我进化的能力。 GPT-5的威胁,已经黑云压顶。 GPT-4诞生后,AI…

上海亚商投顾:沪指震荡调整ChatGPT概念股连续大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指低开后震荡调整,深成指、创业板指小幅反弹。ChatGPT概念股连续大…

【GPT】P1 ChatGPT 概念普及,学习路线与技术栈

GPT 知识储备 GPT 学习路线 这是一条不激进的学习路线,步步为营;对于没有基础的初学者比较适合,但是学习周期非常长,需要坚持; 而比较激进的学习路线即直接瞄准核心,直击 Transformer 语言架构&#xff0c…

ChatGPT概念股:聊天机器人市场的新方向

随着人工智能技术的不断发展,聊天机器人作为其中的一个重要领域正在逐步崛起。而基于生成式预训练的自然语言处理技术ChatGPT,则是聊天机器人核心技术之一,已经成为了聊天机器人市场中备受关注的投资方向之一。ChatGPT概念股代表了聊天机器人…

ChatGPT API实现多轮对话的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

chatGPT 生成随机漫步代码

目录 1. chatGPT 写的随机漫步代码 2. 笔者写的随机漫步代码 3. 总结 1. chatGPT 写的随机漫步代码 最近在学习 Python 中的 随机漫步 知识点,突发奇想,心血来潮,想着用 chatGPT 来生成随机漫步代码,让我们来看看是啥效果…

ChatGPT 能自己跑代码了!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! time leap, sci-fi, photorealistic, --niji 5 --ar 3:2 --s 1000 自 ChatGPT 发布以来,各行各业对其能力探索的举措一直没有停止。 很多大厂纷纷跟进,竞相推出自研…

【ChatGPT实战】11.如何使用ChatGPT写代码?

以往大家总是调侃说程序员只要会用Google就好了,直接搜对应的代码然后复制粘贴就可以了。但是只有程序员才知道真要找到可用的代码是不容易的,经常是找很久都没有合适的代码。 ChatGPT在编程方面拥有着不可忽视的优势,能够生成高质量的程序代…

代码看不懂?ChatGPT 帮你解释,详细到爆!

偷个懒,用ChatGPT 帮我写段生物信息代码 如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好? 网上看到一段代码,不知道是什么含义?输入 ChatGPT 帮我们解释下。 生信宝典 1: 下面是一段 Linux 代码,请…

怎么用ChatGPT写代码,ChatGPT怎么改代码修BUG

ChatGPT 是一个自然语言处理模型,可以模拟人类语言生成文本,可以用于写代码和修复bug。在本文中,说一下我的经验,如何使用 ChatGPT 写代码和修bug。 怎么用ChatGPT写代码? 虽然 ChatGPT 被广泛用于文本生成&#xff0…

ChatGPT和代码智能

一. ChatGPT 1. ChatGPT的自我介绍 2. ChatGPT的前世 2.1GPT-3是啥? General Pre-Training(GPT),即通用预训练语言模型,是一种利用Transformer作为特征抽取器,基于语言模型进行训练的预训练语言模型。所以,理解GPT主…