上海网站建设信息网,商业网站,中信银行网站怎么做的怎么烂,杭州建设局GPT-3模型出自论文《Language Models are Few-Shot Learners》是OpenAI在2020年5月发布的。
论文摘要翻译#xff1a;最近的工作表明#xff0c;通过对大量文本进行预训练#xff0c;然后对特定任务进行微调#xff08;fine-tuning)#xff0c;在许多NLP任务和基准测试上…GPT-3模型出自论文《Language Models are Few-Shot Learners》是OpenAI在2020年5月发布的。
论文摘要翻译最近的工作表明通过对大量文本进行预训练然后对特定任务进行微调fine-tuning)在许多NLP任务和基准测试上取得了实质性的进展。虽然这种方法在架构上通常与任务无关但它对特定任务仍然需要有数千或数万个实例的微调数据集。相比之下人类通常只能通过几个例子或简单的指令来执行一项新的语言任务而当前的NLP系统在很大程度上仍然很难做到这一点。在本文中我们表明扩大语言模型的规模大大提高了任务无关的、few-shot的性能有时与之前最先进的微调方法相比仍具有竞争力。具体来说我们训练了GPT-3这是一个具有1750亿个参数的自回归语言模型比以前的任何非稀疏语言模型大10倍以上并测试其在few-shot场景下的性能。对于所有任务GPT-3在没有任何梯度更新或微调的情况下应用任务和few-shot说明完全通过文本与模型交互。GPT-3在许多NLP数据集上实现了强大的性能包括翻译、问答和完形填空任务以及一些需要动态推理或领域自适应的任务如解读单词、在句子中使用新词或执行三位数算术。同时我们还讨论了GPT-3在few-shot学习仍然困难的一些数据集以及GPT-3在大型网络语料库上训练时面临方法论问题的数据集。最后我们发现GPT-3可以生成新闻文章的样本人类评估人员很难将其与人类撰写的文章区分开来我们讨论了这一发现和GPT-3的更广泛的社会影响。 在论文引言部分正式定义了在GPT-2就提过的不需要fine-tuning直接使用模型完成任务的思路将其称为“In-context learning”把预训练模型的输入当做特定任务的说明也就是将自然语言指令、以及任务的几个示例或0个示例一起作为模型的输入希望模型通过预测后面要输出什么来完成接下来的任务实例。 Recent work [ RWC19] attempts to do this via what we call in-context learning, using the text input of a pretrained language model as a form of task specification: the model is conditioned on a natural language instruction and/or a few demonstrations of the task and is then expected to complete further instances of the task simply by predicting what comes next. 论文的第2部分先定义了Few-Shot(FS)、One-Shot(1S)、Zero-Shot(0S)这三种方式都不允许对模型参数进行更新 并用下图进行了示意
Few-Shot(FS)对于指定的任务提供K个示例样本给模型一般是10-100因为模型的上下文token为2048太多个样本就放不进模型里。
One-Shot(1S)对于指定的任务提供恰好1个示例样本给模型, 区分一次性和少样本和零样本的原因是它与一些任务被传达给人类的方式最匹配。例如当要求人类在人工服务例如 Mechanical Turk上生成数据集时通常会展示该任务。相比之下如果没有给出示例有时很难传达任务的内容或格式
Zero-Shot(0S)不提供任何示例样本给模型只将任务描述输入到模型。 原论文中的Figure 2.1 论文中图2 说明了在不对模型做任何梯度更新和微调的情况下1. 提供额外的自然语言描述可以提高模型效果就是提供prompt) 2. 提供越多的样本数K也可以提高模型效果 3. 模型大小的增加能显著提高few-shot的效果 原论文中的Figure 1.2
GPT-3 模型和架构
GPT-3的模型与GPT-2 几乎一样只有一个例外像Sparse Transformer 一样在transformer 中使用dense and locally banded sparse attention patterns。 一共训练了如下表所示的8个模型最大的有1750亿个参数的模型被称为GPT-3所有模型的上下文窗口token大小为n_{ctx} 2048。下表中 是模型参数 是模型的层数d_{model} 是每一个块的参数大小 n_{heads} 是多头注意力的个数d_head是每个注意力头的大小。 原论文中的表2.1
训练数据集
数据集使用Common Crawl dataset因为大小足够大到训练GPT-3但是Common Crawl dataset的质量比较低使用3个步骤来提到数据集的质量
1下载 Common Crawl 2016 - 2019共41个shards的数据根据与一系列高质量参考语料库的相似性过滤了掉部分语料 使用逻辑回归训练了一个分类器用WebText, Wikiedia 和 web books的语料当做正样本使用没有过滤过的 Common Crawl当做负样本, 特征由spark标准分词器和HashingTF生成。然后使用这个分类器来预测Common Crawl的样本得到一个分数如果np.random.pareto(α) 1 − document_score 就保留样本选取了α9目的是留下大部分分类器评分高的文档但是仍然包含了一些在分布外的文档。α是根据分类器在WebText上的分数分布来选取的。并发现通过分布之外生成样本的损失来衡量的话re-weighting 策略是增加了样本质量的
2在文档级别、数据集内部和数据集之间执行了模糊重复数据消除以防止冗余并保持我们的作为过拟合的准确度量的验证集的完整性。
使用spark的10 hashes的MinHashLSH 来对每个数据集进行模糊去重。将WebText从Common Crawl模糊移除减少了10%左右的数据
3将已知的高质量参考语料库添加到训练组合中以增强Common Crawl并增加其多样性训练时各训练集的比例如下表 原论文中的Table 2.2
另外作者提到在训练过程中数据集不是按大小成比例采样的而是认为质量更高的数据集应该被更频繁地采样因此CommonCrawl和Books2数据集在训练期间被采样不到一次但其他数据集被采样2-3次。 训练过程
如上表中示意的更大的模型会使用更大的batch size同时使用更小的学习率。 使用训练过程中的梯度噪声尺度来指导选择batch size 使用 的Adam 学习器clip the global norm of the gradient at 1.0use cosine decay for learning rate down to 10% of its value, over 260 billion tokens (after 260 billion tokens, training continues at 10% of the original learning rate. There is a linear LR warmup over the first 375 million tokensgradually increase the batch size linearly from a small value(32k tokens) to the full value over the first 4-12 billion tokens of training, depending on the model size.all models use weight decay of 0.1 to provide a small amount of regulationdata are sampled without replacement during training to minimize overfitting为了提高计算效率所有训练样本的序列长度都是n_{ctx} 2048 当文档的长度小于2048时将多个文档合并成一个。对于由多个文档组成的序列没有使用特殊的掩码而是在一个文档结束处放置了一个结束符。使用混合模型并行方法来训练训练是在Microsoft 提供的V100 GPU上进行的。 a mixture of model parallelism within each matrix multiply and model parallelism across the layers of the network 论文中的图3.1说明把模型参数增加2个数量级后还是基本符合幂率分布(power-law)规律的 原论文中的Figure 3.1
论文第三部分是GPT-3模型在各个数据集上的效果第四部分讨论了大模型是否仅仅是记住了训练样本第五部分讨论模型的局限性第6部分讨论大模型更广泛的影响如被不良使用公平及偏见、能耗使用。 参考资料
1. Brown, TomB., Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, et al. 2020. “Language Models Are Few-Shot Learners.” arXiv: Computation and Language.