为什么所有公开的对 GPT-3 的复现都失败了?复现和使用GPT-3/ChatGPT,你所应该知道的(2)
扫一扫
分享文章到微信
扫一扫
关注99科技网微信公众号
根据文章的细节,有多个可能的原因导致了相比 GPT-3 和 PaLM 的成功,OPT-175B 和 BLOOM-176B 的失败。我将其分为两个部分:预训练数据和训练策略。
预训练数据让我们首先观察 GPT-3 是如何准备和使用预训练数据的。GPT-3 在共计 300B 的 token 上进行训练,其中 60% 来自经过筛选的 Common Crawl,其它则来自:webtext2(用于训练 GPT-2 的语料库),Books1,Books2 和维基百科。
更新版本的 GPT-3 还用了代码数据集进行训练(例如 Github Code)。每个部分的占比并不与与原始数据集的大小成比例,相反的,具有更高质量的数据集被更加频繁地采样。导致 OPT-175B 和 BLOOM-176B 失败的,可能是以下三个难点,它们使得开源社区难以收集到类似的数据:
第一点是一个具有良好性能的用于 筛选低质量数据的分类器 。它被用于构建 GPT-3 和 PaLM 的预训练数据集,但在 OPT 和 BLOOM 的训练中却没有被采用。一些文章已经展示,一个用更少但质量更高的数据集训练的预训练模型,可以在性能上超过另一个用更多的混合质量数据集训练的模型。当然,数据的多样性仍然是十分重要的,正如我们将在第三点中讨论的。因此,人们应当非常小心地处理在数据多样性和质量之间的权衡。
第二点是 预训练数据集的去重 。去重有助于避免预训练模型多次面对相同的数据后记住它们或者在其上过拟合,因此有助于提高模型的泛化能力。GPT-3 和 PaLM 采用了文档级别的去重,这同样被 OPT 所采用。但 OPT 预训练的去重 Pile 语料库中仍有许多重复存在,这也可能导致它较差的性能(注:在一些最近的文献中显示去重对于预训练语言模型的重要性可能没有想象中大)。
第三点是 预训练数据集的多样性 ,包括领域多样性、格式多样性(例如:文本、代码和表格)和语言多样性。OPT-175B 所使用的 Pile 语料库声称有着更好的多样性,但 BLOOM 采用的 ROOTS 语料库则有太多的已经存在的学术数据集,缺乏 Common Crawl 数据所包含的多样性。这可能导致 BLOOM 性能更差。作为对比,GPT3 来自 Common Crawl 语料的占比则要高得多,而它们是多样的和来自广泛领域的,这也可能是 GPT-3 能够作为首个通用聊天机器人 ChatGPT 的基础模型的原因之一。
请注意:虽然一般来说,多样性的数据对于训练一个通用的 LLM(Large Language Model,大规模语言模型)是重要的,但特定的预训练数据分布,则会对 LLM 在特定的下游任务上的性能产生巨大的影响。例如,BLOOM 和 PaLM 在多语言数据上有更高的占比,这导致它们在一些多语言任务和机器翻译任务上的性能更高。
99科技网:http://www.99it.com.cn
