GPT2

文章目录

  • GPT2
    • 前言
    • 正文
      • 摘要
      • 方法
        • 概述
        • 训练数据
        • 输入表示
        • 模型结构
      • 实验
        • 语言模型
        • Children’s Book Test(CBT)
        • LAMBADA
        • Winograd Schema Challenge(WSC)
        • Reading Comprehension
        • Summarization
        • Translation
        • Question Answering
      • Generalization vs Memorization
      • Discussion
      • Conclusion

前言

在GPT1出来后不久,和GPT很相似的BERT也横空出世,并且几乎在全方位上吊打了GPT1,OpenAI扬长避短,提出了《Language Models are Unsupervised Multitask Learners》(GPT2)。它强调的通过无监督学习也能达到和finetune一样的效果,并且拥有更强的泛化能能力(个人猜测就是在finetune的情况下打不过BERT,所以主打无监督学习)

正文

摘要

自然语言处理任务,如问题解答、机器翻译、阅读理解和摘要,通常需要在特定于任务的数据集上进行监督学习。我们证明,当语言模型在名为WebText的数百万网页的新数据集上进行训练时,就算没有任何明确的监督,也能学习到上述的任务。当以文档加问题为条件时,该语言模型生成的答案在CoQA数据集上达到55的F1值,接近或超过3个(共4个)使用127000多个训练数据的baseline模型。语言模型的容量对于zero-shot任务转移的成功至关重要,并以log-linear的方式提高任务的性能。我们最大的模型GPT-2是一个1.5B参数的Transformer,它在8个测试语言建模数据集中的7个数据集上实现了sota,但仍然低于WebText。模型中的示例反映了这些改进,并包含连贯的文本段落。这些发现为构建语言处理系统提供了一条很有前途的道路,该系统可以从自然发生的演示中学习执行任务。

方法

概述

学习单个任务可以在概率框架中表示为估计一个条件分布p(output∣input)p(output|input)p(output∣input)。既然一个通用的系统应该能解决各种不同的任务,所以我们在考虑条件的时候不仅是通常的输入,还要考虑到任务本身,表示成公式为p(output∣input,task)p(output|input,task)p(output∣input,task),语言模型提供了一种灵活的方式来将任务、输入和输出全部指定为一系列统一符号。举个例子,翻译训练示例可以写成序列(translate to french, english text, french text),同样,阅读理解训练示例可以写成(answer the question, document, question, answer)。
我们认为,由于有监督目标与无监督目标相同,但仅在序列的子集上进行评估,因此无监督目标的全局最小值也是有监督目标的最小值。初步实验证实,在这种玩具般的设置中,足够大的语言模型能够执行多任务学习,但学习速度比显式监督方法慢得多。

训练数据

大多数之前的工作训练的模型都是在一个特定的领域上,如新闻,维基百科,小说等。我们的方法促使构建尽可能大且多样的数据集,以便在尽可能多的领域和上下文中收集自然语言任务演示。
一个有前途的多样性和几乎无限的文本来源是诸如Common Crawl之类的网页抓取。虽然这些存档比当前的语言建模数据集大很多数量级,但它们存在严重的数据质量问题。Trinh&Le(2018)在他们关于常识推理的工作中使用了Common Crawl,但注意到大量文档“其内容大多难以理解”。我们在使用Common Crawl的初始实验中观察到了类似的数据问题。Trinh&Le(2018)的最佳结果是使用Common Crawl的一个子样本获得的,该样本仅包含与目标数据集Winograd Schema Challenge最相似的文档。虽然这是一种提高特定任务绩效的实用方法,但我们希望避免对要提前执行的任务做出假设。(个人认为这样是容易过拟合)
相反,我们创建了一个新的web抓取,强调文档质量。为了做到这一点,我们只对人类策划/过滤过的网页进行了抓取。手动过滤一个完整的网络抓取将非常昂贵,因此作为一个起点,我们从社交媒体平台Reddit抓取了所有的出站链接,该每个链接至少收到了3个karma。这可以被认为是一个启发式指标,用于判断其他用户是否觉得链接有趣、有教育意义或只是好玩。
生成的数据集WebText包含这4500万个链接的文本子集。为了从HTML响应中提取文本,我们使用了Dragnet(Peters&Leocq,2013)和Newspaper 1内容提取器的组合。本文中的所有结果都使用了WebText的初步版本,该版本不包括2017年12月之后创建的链接,并且在重复数据消除和一些基于启发式的清理之后,包含了略超过800万个文档,总共40GB的文本。我们从WebText中删除了所有Wikipedia文档,因为它是其他数据集的通用数据源,并且由于训练数据与测试评估任务重叠,可能会使分析变得复杂。

输入表示

字节对编码(BPE)(Sennrich等人,2015)是字符和单词级语言建模之间的一个实用中间点,它有效地在频繁符号序列的单词级输入和不频繁符号序列字符级输入之间进行插值。
这种输入表示允许我们将word-levl LMs的经验优势与byte-lebel方法的通用性结合起来。由于我们的方法可以为任何Unicode字符串分配概率,因此无论预处理、标记化或vocab大小如何,这都允许我们在任何数据集上评估LMs。

模型结构

GPT2和GPT1的模型结构也是非常相似的,不过还是做了一些优化,包括LayerNorm层的前置,在最后的transformer层后加了个LayerNorm,如下图所示:

除此之外,我们将残差层在初始化时的权重因子设置成了1/N1/\sqrt{N}1/N​,其中NNN是残差层数,词表大小扩展成50257,文本最大长度从512增加到1024,以及使用了更大的batchsize(512)。

实验

我们训练了四个具有大致对数均匀间隔大小的模型,并对其进行了基准测试。表2总结了体系结构。最小的模型相当于原始GPT,第二个最小的模型等同于BERT的最大模型(Devlin等人,2018)。我们最大的模型,我们称之为GPT-2,其参数比GPT多了一个数量级。每个模型的学习率都是手动调整的,以便在5%的WebText样本上获得最佳困惑。所有的模型仍然在WebText数据上欠拟合,我们可能需要更多的训练时间。

语言模型

GPT2本质上还是一个语言模型,所以我们希望在一些常见的公开zero-shot任务上和当前的sota模型进行比较,详情见下表所示:

可以看到,在很多任务上GPT2的效果遥遥领先,这表示在基于transformer的更大语言模型和更多的训练语料确实能够取得更好的效果。

Children’s Book Test(CBT)

CBT主要是为了检测语言模型在以下识别任务中的表现:命名实体、名词、动词、介词。CBT不以困惑度作为评价指标,而是评估自动构建的完形填空测试的准确性,其任务是预测遗漏的10个“选择”中的哪一个是正确的。遵循原始论文中介绍的LM方法,我们根据LM计算每个选择的概率以及基于该选择剩余句子的概率,并预测概率最高的一个。如下图所示,分别是GPT2在名词和命名实体任务下效果:

LAMBADA

LAMBADA数据集(Paperno等人,2016)测试了系统对文本中的长期依赖性建模的能力。任务是预测句子的最后一个单词,人类需要至少50个上下文标记才能成功预测。

Winograd Schema Challenge(WSC)

WSC数据集(Levsque等人,2012)旨在通过系统解决文本歧义的能力来测量其在常识推理上的效果。最近,Trinh&Le(2018)使用语言模型,通过预测具有更高概率的歧义解决,在这一挑战上取得了巨大的成果。我们的效果如下图所示:

Reading Comprehension

对话问答数据集(CoQA)Reddy等人(2018)由来自7个不同领域的文档组成,将提问者和回答者之间关于文档的自然语言对话配对。CoQA测试阅读理解能力,以及模型回答依赖于对话历史的问题的能力(例如“Why?”)

Summarization

我们测试了GPT-2在CNN和每日邮报数据集上执行摘要的能力(Nallapati等人,2016),结果如下表所示:

Translation

我们在WMT-14英-法数据集上测试了GPT2的机器翻译能力,无论是英语翻法语还是法语翻英语,GPT2都比当前sota模型有较大差距。但令人惊讶的是,GPT2的训练语料在预处理时专门过滤掉了非英文网页。为了证实这一点,我们在WebText上运行了一个字节级语言检测器,该检测器仅检测到10MB的法语数据,比先前无监督机器翻译研究中常见的单语法语语料库小约500倍。

Question Answering

测试语言模型中包含哪些信息的一种潜在方法是评估它生成事实类问题正确答案的频率。从结果来看,GPT-2的性能仍然比将信息检索与提取文档问答相结合的开放域问答系统的30%到50%范围差得多(Alberti等人,2019)。 但GPT仍然有很大潜力。

Generalization vs Memorization

计算机视觉的最新研究表明,常见的图像数据集包含大量的近似重复的图像。例如,CIFAR-10在列车图像和测试图像之间有3.3%的重叠。这导致了对机器学习系统泛化性能的过度报道。随着数据集大小的增加,这个问题变得越来越可能,这表明类似的现象可能发生在WebText上。因此,分析有多少测试数据也出现在训练数据中是很重要的。
为了研究这个问题,我们创建了包含 8-grams WebText训练集标记的Bloom filter。为了提高召回率,字符串被规范化为只包含小写字母数字单词,并使用单个空格作为分隔符。Bloom filter的构造使得 the false positive rate 上限为1/1081/10^81/108通过生成1M字符串进一步验证了 the low false positive rate,其中0个字符串被filter发现。

在给定一个数据集时,Bloom filter让我们可以计算来自于这些数据集的8-grams 也存在于WebText训练集中的百分比。表6显示了公共LM基准测试集的这种重叠分析。普通LM数据集的测试集与WebText训练集的重叠率在1-6%之间,平均重叠率为3.2%。有些令人惊讶的是,许多数据集与它们自己的训练分割有更大的重叠,平均重叠率为5.9%。

Discussion

目前有许多研究致力于学习、理解和批判性评估有监督和无监督的预训练方法。我们的研究结果表明,无监督任务学习是一个很有前途的研究领域。这些发现可能有助于解释针对下游NLP任务的预训练技术的广泛成功,因为我们认为,在极限条件下,这些预训练技术能够直接解决各种任务,而无需监督适应或修改。

在阅读理解中,GPT-2在zero-shot环境下的表现与有监督的baseline相竞争。然而,在总结等其他任务上,虽然它能够执行任务,但根据量化指标,它的性能仍然只是初级的。虽然研究结果具有一定的启发性,但从实际应用来看,GPT-2的zero-shot的表现还远远不能满足要求。

Conclusion

当一个大型语言模型被训练在一个足够大和多样的数据集上时,它能够在许多域和数据集上表现良好。在八分之七的测试语言模型数据集上,GPT-2 zero-shot 到最先进的性能。该模型能够在zero-shot setting下执行的任务的多样性表明,经过训练以使文本语料库充分变化的可能性最大化的高容量模型开始学习如何执行数量惊人的任务,而不需要明确的监督。

从GPT到chatGPT(二):GPT2相关推荐

  1. 从GPT到ChatGPT:我们离那个理想的AI时代到底还有多远?

    写在前面 在2023年新年伊始,科技界最为爆火一款产品无疑是OpenAI公司出品的ChatGPT了,作为一名NLP领域从业者,似乎也好久没有看到如此热闹的技术出圈场景了.诚然从现象来看,无论从效果惊艳 ...

  2. 从GPT到chatGPT(三):GPT3(一)

    #GPT3 文章目录 前言 正文 摘要 介绍 方法 模型结构 训练数据集 训练过程 评估 小结 前言 OpenAI在放出GPT2后,并没有引起业界太大的影响和关注,究其原因,并不是zero-shot这 ...

  3. 从GPT到chatGPT(一):GPT1

    GPT1 文章目录 GPT1 前言 正文 模型架构 无监督学习 有监督学习 处理不同特定任务 实验 训练细节 实验结果 分析 预训练层参数转移的影响 zero-shot的表现 消融实验 总结 前言 G ...

  4. GPT系列:GPT1 -> 2 -> 3 -> InstructGPT ->ChatGPT

    2018年6月 GPT-1:[无监督预训练+有监督微调] 大量数据(约5GB文本)上无监督训练,然后针对具体任务在小的有监督数据集上做微调: 关键词:"scalable, task-agno ...

  5. 深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning

    分类目录:<深入理解深度学习>总目录 相关文章: · GPT(Generative Pre-Trained Transformer):基础知识 · GPT(Generative Pre-T ...

  6. GPT系列学习笔记:GPT、GPT2、GPT3

    目录 总结 GPT: Improving Language Understanding by Generative Pre-Training GPT-2: Language Models are Un ...

  7. NLP-预训练模型-GPT系列-20221130:chatGPT【证明了大语言模型的可行新】

      一.GPT底层原理 二.三步训练

  8. ChatGPT的1000+篇文章总结

    ChatGPT的1000+篇文章总结 本文收集和总结了有关ChatGPT的1000+篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.com/, 其 ...

  9. ChatGPT 成功背后的技术原因及其对生命科学领域的启发

    文章目录 一.前言 二.主要内容 三.总结 一.前言 2023 年 2 月 19 日看见一篇关于 ChatGPT 成功背后的技术原因及其对生命科学领域的启发的思考的优质文章,分享于此. 原文链接:Dr ...

最新文章

  1. C语言再学习 -- 内存管理
  2. Netty框架整体架构及源码知识点
  3. linux基本安全配置手册
  4. 推荐 21 个顶级的 Vue UI 库
  5. avast! 5 简体中文正式版 官方直接下载链接
  6. 【C语言】新手入门的C语言经典实例(持续更新)
  7. 计算机ping使用的端口,Windows7系统中怎么Ping端口?利用telnet命令Ping 端口的方法...
  8. 微信机器人 DIY 从 0 到 1
  9. 纺织服装业如何利用技术进行数字化转型
  10. 命令行如何远程连接MySQL数据库
  11. linux shell ifs,【shell】IFS和$*变量
  12. 论文笔记:PSGAN
  13. 项目经理杂事多,该怎么有效的安排时间
  14. 开源,阿里内部Spring Cloud Alibaba微服务神仙文档(全彩版)
  15. CentOS7目录结构详细版
  16. web切图怎么做_ps如何切图?
  17. 基于android的健康管理APP
  18. Python的return如何理解
  19. C++ 小游戏 视频及资料集(六)
  20. 你需要掌握的经典知识之Spring

热门文章

  1. 乘基取整法是什么_数学基础——进制转换
  2. java 获取年鱼儿_泼墨,造一匹快马,追回十年前姑娘
  3. 【汇正财经】股权结构与企业治理有什么关系?
  4. 360竞价推广如何获得优质的关键词?
  5. 基于wpa_supplicant库的WIFI连接功能实现--wpa_cli命令解析
  6. 【预测模型】基于BP神经网络、LSTM、GRNN实现风电功率预测附matlab代码
  7. 云服务器怎么增加d盘_服务器怎么添加d盘
  8. python图像拉伸
  9. java后台生成含有echarts图表的报告并发送邮件
  10. 通过机器学习的线性回归算法预测股票走势(用Python实现)