【新智元导读】 布朗大学的计算机科学研究毕业生 Vanya Cohen 近日在 Medium 分享了他复现 GPT-2 大模型的全过程。作者复刻了 Open-AI 15 亿参数模型,允许其他人在其预训练模型上进行构建并进一步改进。
BERT,XLNet,GPT-2 和 Grover 等大型语言模型在生成文本和多个 NLP 任务方面取得了令人瞩目的成果。
**
本文试图去复刻 GPT-2 的 15 亿模型以供研究人员使用。
Google Colab 地址:
colab.research.google.com/drive/1esbp…
单独提供的模型权重:
复刻
之所以采取迟迟不放出模型的安全战略,是因为这些模型难以复刻并需要高度专业的领域知识。
但是布朗大学的两名硕士研究生却证明了本文的许多结果复刻起来并不是那么的难。而且不仅他们俩可以,绝大多数感兴趣的人都可以复刻 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!!” 输出结果如下:
参考链接: