chatGPT 背后的技术 之 GPT2

 在前面的文章 chatGPT 背后的技术 之 GPT3_chatgpt3-CSDN博客 我们讲了GPT3,这篇文章我们讲GPT3的基础,也是上一代GPT, GPT2。

GPT2 的细节发表在论文 Language Models are Unsupervised Multitask Learners ,原文可以在 https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

下载阅读。

下面我们通过上面这篇论文来讲GPT2的技术细节。

这篇论文是讲“无监督的多任务的学习模型”,这是一篇2019年的论文,在此之前,自然语言处理的任务(比如问答,翻译,阅读理解,对内容进行总结),都是用的监督学习,但用这样的方法会导致系统比较脆弱和对于数据分布的微小变化很敏感。这些系统可以看作是某些领域的专家,而不是有能力的通才。openAI 的 团队在这篇论文中希望可以更近一步,打造一个更一般的系统,可以做许多任务,最终希望的是不需要人工为任何训练数据打标签。openAI团队认为要建立更健壮稳定的系统,就要用更多不同类型的任务数据来训练和测试性能。多任务学习是这篇文章的主要方向。

这篇论文用的模型首次不需要任何监督学习,在多个任务中取得了很好的效果。这篇论文发现语言模型的大小对于零样本任务的成功至关重要,模型的大小和任务执行的效果大概是对数线性(log linear)关系。

这篇论文中最大的模型GPT-2, 是一个有15亿参数的 Transformer 模型,但尽管模型有15亿参数,但还是underfits 他们使用的数据集WebText,也就是说当时他们就知道,模型更大,会有更好的效果(我们知道,后来GPT-3模型有1750亿参数,大了两个数量级)

这篇论文的主要方法是建立语言模型,其本质是由前面出现的词,来计算得到后面出现的词的概率,最近一些年,自注意力模型,比如Transformer,对于计算这样的概率的能力有显著提升。Transformer 模型,是几乎现在所有大语言模型的基础,会在另外的文章中讲。

训练的数据集,叫WebText, 是openAI 团队自己从Reddit(美国的一个社交媒体平台,用户可以发布内容、参与讨论,并对其他用户的帖子和评论进行投票。) 上抓取而来。

这篇论文中对训练数据进行预处理的encode的方法是改进版的 Byte Pair Encoding (BPE)。

模型是以Transformer为基础的模型,模型和GPT 1基本一致,但做了一些改动,改动主要有:层归一化放到了每个子块的输入处,并在最终的自注意力块之后添加了额外的层归一化。还使用了一种修改后的初始化方法,考虑了模型深度上残差路径的累积。在初始化时通过一个因子为1/sqrt(N)(其中N是残差层的数量)来缩放残差层的权重。词汇量扩展到了50,257。还将上下文大小从512扩展到1024个标记,并使用了更大的批处理大小,为512。

在零样本的条件下,GPT-2在8个测试的语言建模数据集中有7个达到了最先进的性能。模型在零样本的条件下能够执行多样的任务,这表明,训练了最大化足够多样文本语料库的高容量模型开始学会执行令人惊讶数量的任务,而无需显式监督。

祖国翔,于上海

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值