电子说
布朗大学的计算机科学研究毕业生 Vanya Cohen 近日在 Medium 分享了他复现 GPT-2 大模型的全过程。作者复刻了Open-AI 15亿参数模型,允许其他人在其预训练模型上进行构建并进一步改进。
BERT,XLNet,GPT-2和Grover等大型语言模型在生成文本和多个NLP任务方面取得了令人瞩目的成果。
本文试图去复刻GPT-2的15亿模型以供研究人员使用。
Google Colab地址:
https://colab.research.google.com/drive/1esbpDOorf7DQJV8GXWON24c-EQrSKOit
单独提供的模型权重:
https://drive.google.com/drive/u/1/folders/1KfK5MXtvgH8C615UUZoKPIUVJYIdJxX1
复刻
之所以采取迟迟不放出模型的安全战略,是因为这些模型难以复刻并需要高度专业的领域知识。
但是布朗大学的两名硕士研究生却证明了本文的许多结果复刻起来并不是那么的难。而且不仅他们俩可以,绝大多数感兴趣的人都可以复刻GPT-2。
研究生之一:Vanya Cohen
此外,Zellers等人表明像GPT-2这样的大型语言模型是一种非常有用的工具,可以抵制使用与文本生成器相同的模型。
两位研究生经过深思熟虑后认为,复刻工作并不是独一无二的,并且大型语言模型是目前抵制生成文本的最有效手段,因此在对抗未来模型被滥用的可能性方面,发布本模型是有益的。
本模型的实现基于Grover模型,并修改其代码库以匹配GPT-2的语言建模训练目标。由于他们的模型是在类似的大型语料库上进行训练的,因此大部分代码和超参数都可以重复使用。本模型没有从Grover中大幅改变超参数。
使用本模型代码从头开始训练模型的成本约为5万美元。要注意这个数字是云计算的估计值,并不包含所涉及的各种其他细微的内部成本。
存在显著的时间-成本平衡,并且较慢的训练方法具有相当小的成本,因此降低了使用门槛。
数据集
原始文件提供了有关如何清理数据集的最低限度的详细信息。
与在WebText中一样,首先从Reddit中解析出超过3个向上投票的所有链接。接着,从PushshiftRedditscrape开始。这是一个包含不断更新的Reddit帖子、评论以及相关元数据集合的数据集。
然后过滤一些链接以删除不太可能包含可用文本或HTML(即视频文件,PDF和CSS样式文件)的文件类型的直接链接。
同时还过滤网页以删除维基百科,因为它被各种评估基准和数据集使用。目前还无法确定过滤标准是否与OpenAI相匹配,因为此信息从未发布过。
使用Newspaper Python库从HTML页面中提取文本,然后使用fastText Python库来提取英文文本、过滤掉其他语言。具体来说,使用WhatTheLangpython Wrapper。
使用局部敏感散列(LSH)来去重。然后将文档散列为5-grams的集合,并且删除了相似度阈值大于0.5的所有文档。
使用Heuristic Cleaning算法,从数据集中删除少于128个令牌的文档。这些较短的文件往往质量较低,这是由文本连贯性决定的。最后将此数据集作为OpenWebTextCorpus发布。
使用Radford等人发布的小型模型和Binary Pattern Encoder对数据集进行编码,并使用OpenWebText web-scrapingcodebase的修改版本作为数据集集合的起点。
勘误表
从公开发布的来自WebText的260k文档集合中来看,研究人员发现所有文件都具有最小字节对(BPE)编码,长度为40,最大值为1024.
OpenWebText的不同之处在于为128个令牌设置文档长度的下限(而不是BPE代码),并且不限制最大文档长度。
原始的WebTextCorpus在这些样本可用之前发布,因此没有使用该信息来生成cleaning heuristics。
研究人员曾多次尝试联系Radford等人,以澄清评估和模型细节,但最终都没有成功。
结果
尽管训练分布存在差异,但确实报告了与大多数数据集相似的困惑。
示例:输入“Recycling is good for the world. NO! YOU COULD NOT BE MORE WRONG!!”输出结果如下:
全部0条评论
快来发表一下你的评论吧 !