OpenAI 最近经过一个与任务无关的可扩展系统在一系列语言任务中得到了当前最优的性能,目前他们已经发布了该系统。OpenAI 表示他们的方法主要结合了两个已存的研究,即 Transformer 和无监督预训练。实验结果提供了很是使人信服的证据,其代表联合监督学习方法和无监督预训练可以获得很是好的性能。这实际上是不少研究者过去探索过的领域,OpenAI 也但愿他们此次的实验结果能激发更加深刻的研究,并在更大和更多的数据集上测试联合监督学习与无监督预训练的性能。git
OpenAI 的系统分为两阶段,首先研究者以无监督的方式在大型数据集上训练一个 Transformer,即便用语言建模做为训练信号,而后研究者在小得多的有监督数据集上精调模型以解决具体任务。研究者开发的这种方式借鉴了他们关于 Sentiment Neuron(blog.openai.com/unsupervise…)方面的研究成果,他们发现无监督学习技术在足够多的数据集上训练能产生使人惊讶的可区分特征。所以研究者但愿更进一步探索这一律念:咱们能开发一个在大量数据进行无监督学习,并精调后就能在不少不一样任务上实现很好性能的模型吗?研究结果代表这种方法可能有很是好的性能,相同的核心模型能够针对不一样的任务进行少许适应和精调就能实现很是不错的性能。github
这一项研究任务创建在《Semi-supervised Sequence Learning》论文中所提出的方法,该方法展现了如何经过无监督预训练的 LSTM 与有监督的精调提高文本分类性能。这一项研究还扩展了论文《Universal Language Model Fine-tuning for TextClassification》所提出的 ULMFiT 方法,它展现了单个与数据集无关的 LSTM语言模型如何进行精调以在各类文本分类数据集上得到当前最优的性能。OpenAI 的研究工做展现了如何使用基于 Transformer 的模型,并在精调后能适应于除文本分类外其它更多的任务,例如常识推理、语义类似性和阅读理解。该方法与 ELMo 类似但更加通用,ELMo 一样也结合了预训练,但使用为任务定制的架构以在各类任务中取得当前顶尖的性能。网络
OpenAI 只须要不多的调整就能实现最后的结果。全部数据集都使用单一的前向语言模型,且不使用任何集成方法,超参配置也与大多数研究成果相同。架构
OpenAI 特别兴奋这一方法在三个数据集上获得的性能,即 COPA、RACE 和 ROCStories,它们都是旨在为常识推理和阅读理解设计的测试集。OpenAI 的模型在这些数据集上都得到了新的最佳性能,且有较大的提高。这些数据集一般被认为须要多句子推理和显著的世界知识来帮助解决问题,这代表研究者的模型经过无监督学习主要提高了这些技能。这一样代表咱们能够经过无监督学习技术开发复杂的语言理解能力。机器学习
为何使用无监督学习?性能
近期出现了利用无监督学习方法经过大量无标注数据来加强系统的热潮;使用无监督技术训练的词表征可使用包含 TB 级信息的大型数据集,并且无监督方法与监督学习技术相结合可以在大量 NLP 任务上提升性能。直到最近,这些用于 NLP 任务的无监督技术(如 GLoVe 和word2vec)使用简单的模型(词向量)和训练过的信号(局部词共现)。Skip-Thought 向量是对复杂方法才能实现的改进的较早呈现。可是如今新技术用于进一步提高性能,包括预训练句子表征模型、语境化词向量(ELMo 和 CoVE)的使用,以及使用自定义架构来结合无监督预训练和监督式精调的方法,好比本文中 OpenAI 的方法。学习
OpenAI 还使用模型中的现有语言功能来执行情感分析。研究人员使用了 Stanford Sentiment Treebank 数据集,该数据集包含积极和消极的电影评论句子,研究人员可使用语言模型经过在一个评论句子后输入单词「very」,并查看该模型预测该单词是「积极」或「消极」的几率,来猜想这条评论是积极仍是消极的。这种方法无需将模型针对特定任务进行调整,它与经典基线模型的性能持平——大约 80% 的准确率。测试
该研究也是对 Transformer 架构的鲁棒性和实用性的验证,代表无需针对特定任务进行复杂的定制化或调参,也能够在大量任务上达到当前最优的结果。ui
缺点设计
该项目也有几个突出的问题值得注意:
计算需求:不少以前的解决 NLP 任务的方法能够在单块 GPU 上从零开始训练相对较小的模型。OpenAI 的方法在预训练步骤中须要很高的成本——在 8 块 GPU 上训练 1 个月。幸运的是,这仅须要作一次,OpenAI 会发布他们的模型,从而其余人能够避免这一步。它也是一个很大的模型(相比于以前的工做),于是须要更多的计算和内存。OpenAI 使用了一个 37 层(12 个模块)的 Tranformer 架构,而且在达到 512 个 token 的序列上训练。多数实验都是在 4 和 8 块 GPU 的系统上构建的。该模型确实能很快速地精调到新的任务上,这缓解了额外的资源需求。
经过文本学习而致使的对世界理解的局限和误差:在互联网上可用的书籍和文本并无囊括关于世界的完整甚至是准确的信息。近期的研究代表特定类型的信息很难仅经过文本学习到,其它研究代表模型会从数据分布中学习和利用误差。
泛化能力仍然很脆弱:虽然 OpenAI 的方法在多种任务中提升了性能,目前的
将来方向
扩展该方法:研究者观察到
改善精调过程:研究者的方法目前还很简单。有可能使用更复杂的适应和迁移技术例如在 ULMFiT 中所探索的方法,可让该模型得到显著的提高。
更好地理解生成式预训练的有效性:虽然本文中片面地讨论了一些思想,更多的目标指向的实验和研究将帮助分辨不一样的解释。例如,实验中观察到的性能增益有多少是因为处理更普遍上下文的能力的提升,有多少是因为世界知识的提升。
附录:数据集示例
论文:Improving Language Understanding by Generative Pre-Training
摘要:天然语言理解包括很普遍的任务类型,例如文本蕴涵、问答、语义类似性评估以及