互联网写作始终是坎宁安定律中的一项练习,但在这篇文章中尤其如此,因为它是在复杂和不断发展的信息格局之上进行的大量猜测,所以我可能在某些事情上是错误的,期待您的更正,谢谢,爱, 极光
很难不被最近的 AI 进步所蒙蔽。似乎每周都会有一个具有前所未有功能的惊人新系统。不可能不去想未来会怎样。
但未来会怎样?我认为很难猜测我们最好的选择是将我们对问题的大部分了解抛到窗外,并依赖外部视图。例如,对于大型语言模型 (LLM),我的脑海中有这样一个画面:
年 | 法学硕士 | 印象深刻 |
---|---|---|
2018 年 6 月 | GPT-1 | 好的 |
2018 年 10 月 | 伯特 | 好的 |
2019 年 2 月 | GPT-2 | 更好 |
2020 年 6 月 | GPT-3 | 伟大的 |
2021 年 1 月 | 拉姆达 | 更大 |
2021 年 12 月 | 地鼠 | 更伟大 |
2022 年 1 月 | 威震天-图灵 | 更大 |
2022 年 3 月 | 龙猫 | 很棒的 |
2022 年 4 月 | 棕榈 | 难以置信 |
2022 年 12 月 | GPT-3.5 / ChatGPT | 可怕的好 |
2023 年 2 月 | 必应聊天 | 恐怖 |
未来 | ??? | 啊啊啊 |
我想,“进展有可能随时停滞。但是法学硕士持续变得更好的时间越长,我们期望它们继续变得更好的时间就越长”。
我还认为没有人能预测得更好。这主要是因为我不相信基于幻想理论的预测。我的意思是,当然,我们知道火星在 2290 年 7 月 14 日的位置,但那是因为行星运动是简单且确定的。在大多数情况下,花哨的预测是假设的塔楼,当一个——不可避免地——最终是错误的时,整个事情就会崩溃。
但我想我错了。如果你想知道 AI 会发生什么,我们可以做得更好(或者至少内部观点值得考虑)。我们可以:
- 使用比例定律来猜测,如果你增加更多的计算能力或更多的数据,LLM 将在多大程度上更好地预测单词。
- 使用历史趋势来猜测更好地预测单词会转化为更多的“智能”。
- 问问我们自己:
- 如果我们有 10 倍或 1000 倍的数据,会有什么变化?
- 如果我们的计算量增加 10 倍或 1000 倍,会有什么变化?
- 真正移动指针需要多少数据(或计算)?足够的存在吗?
- 人工智能公司现在可能做什么?
- 哪些基本进步足以改变这些动态?
- 为什么这一切都错了?
这篇文章假定您对 LLM 有一定的了解。如果你没有那个(有人在那里吗?)你可能想先阅读你的朋友的语言模型。
损失和规模
语言模型会变得多好和多快?您可能认为这个问题没有有用的答案。但是——令人惊讶的是——我们知道的足够多,可以做出一个并不可怕的猜测。
什么是损失?
模型越来越好。但是如何更好地量化呢?最简单的选择是获取大量新文本,一次输入一个词,然后检查模型对它的预测效果。原则上,您可以通过多种方式执行此操作,例如使用Brier 分数。但人们通常使用一种称为“对数损失”或“对数似然”或“交叉熵”的度量。这是很自然的,因为这是法学硕士接受培训的内容,所以它是衡量法学硕士在满足要求方面做得如何的直接数字衡量标准。越低越好。
你应该关心损失吗?
损失只是一个数字。重要的是模型的行为方式,对吗?我喜欢真实而具体的措施。 BigBench是不同语言任务的巨大集合。以下是一些人的提示:
hyperbaton : 哪个句子的形容词顺序是正确的:a “old-fashioned circular leather exercise car” b “circular exercise old-fashioned leather car”?
stategyqa :植物进行光合作用所需的所有元素都存在于火星大气中吗?
mathematical_induction : A: 3是奇数。 k + 3 对于任何奇数 k 都是奇数。因此,通过两步归纳,-3 是奇数。 (是一个有效的论点?)
导航:右转。迈出 1 步。右转。采取6个步骤。右转。迈出 1 步。右转。采取 2 个步骤。采取4个步骤。 (你最终会回到同一个地方吗?)
causal_judgment :布朗正在玩一个简单的骰子游戏。这场比赛要求布朗掷出 6 点才能获胜。因此,为了得到 6,布朗将一颗骰子扔到了桌子上。不幸的是,对于其他玩家来说,骰子落在六点上,布朗赢得了比赛。布朗是故意掷出 6 的吗?
这些任务看起来……很难?如果通用语言模型可以在所有这些方面获得人类水平的表现,那看起来很像“智能”。
那么,损失重要吗?我想向您展示一个大图,其中包含所有最新模型,并将它们的损失与它们在 BigBench 上的表现进行比较。不幸的是,这很难,因为模型使用不同的数据集,所以它们的损失是不一样的,而且它们通常不会告诉你它们的损失。而且他们并不总是在相同的 BigBench 任务上进行评估(或者根本不在 BigBench 上进行评估)。
幸运的是,我们有一小部分模型,它们都在同一个数据集上训练并在任务上进行评估。这是一个图表,x 轴为损失,y 轴为性能。 (在 BigBench 上,模型在每项任务上获得 0 到 100 分之间的分数,评分时期望人类专家的分数接近 100 分。完美的模型会在左上角。)
蓝线显示仅适合前三个模型。我对这种合身性非常不确定。看起来一旦误差降到 0.5 左右,BigBench 的准确性就会开始上升。但这是根据非常少的信息来判断的。
尽管如此,至少在短期内,可以合理地预期,改善损失将使 LLM 表现得更“智能”。如果您从表面上看蓝线——不要——那么您会期望将损失减少到接近零会产生接近人类专家的表现。
每个人都在关注的这些“比例定律”是什么?
如果你读过最近的语言模型,你会看到各种各样的细节,比如层数、“头”的数量、“键”和“值”的大小、学习率、批量大小,以及“余弦周期长度”。所有这些都很重要!但从卡普兰等人开始。 (2020)并继续发表“Chinchilla”论文(Hoffman 等人,2022) ,人们注意到,只要你做好所有这些事情,你就可以通过两个数字很好地预测损失:
- N:您放入模型中的参数数量。
- D:接受训练的令牌总数。
您会期望参数越多越好,数据越多越好,对吧?好吧,Chinchilla 的人在一个特定的数据集上训练了一堆不同的模型,并观察到损失可以用这个等式很好地近似:
不要惊慌——这是本文中唯一的方程式。但这非常重要,并且将在本文的其余部分与我们同在。以下是一些初步评论。
首先,这个等式的存在真是太疯狂了。没有明显的理由可以仅从 N 和 D 预测损失,更不用说以这种简单的方式,其中 N 和 D 甚至不相互作用。
其次,你应该怀疑这个等式是否正确。它适用于使用相对较小的 N 和 D 值。它似乎也可以很好地泛化到最先进模型中使用的更大的值。但不能保证它会继续适用于更大的模型。
好的,那么这个等式中发生了什么?左侧是“损失”,或者如果您使用 D 个标记训练具有 N 个参数的语言模型会有多好。在右侧,有三个术语:
- 模型误差是由于参数数量有限而造成的损失。如果你的模型太简单,你就不能代表语言的真实复杂性,所以你在预测单词方面会更差。
- 数据错误是由于数据量有限而造成的损失。如果你没有足够的信号,你就无法找到语言中所有的真实模式,因此你在预测单词方面会更差。
- 不可减少的错误是即使使用无限数量的参数并且在无限数量的数据上训练了无限长的时间,你仍然会有的损失。这是非零的,因为不可能完美地预测接下来会发生什么工作。无论您拥有多少数据或使用什么模型都没有关系——如果语言是确定性的,它就不会包含任何信息!因此,任何模型都不可能消除一定量的损失。我们不确定最小损失是多少。缩放定律只是说当前的模型不能比 1.69 做得更好。
为了简化接下来的事情,我将“错误”定义为没有不可减少错误的损失,即
这是它的样子:
这些线显示了不同数量的总误差。基本上:越多越好。如果您的参数和标记很少,则您位于右下方并且错误率很高(红色)。如果你把这两个都增加很多,你就会在右上角并且错误率很低(蓝色)。
计算呢?
计算没有明确出现在缩放定律中。那是因为它是由参数和标记的数量决定的。让我们清楚上面的比例定律说的是什么:
- 您有一个将学习法学硕士学位的程序。
- 你选择你想要多少个参数N。这只是一个数字。你可以选择它是任何你想要的。
- 你用 D 代币收集了一些数据。
- 你运行你的程序。如果 N 和 D 很小,程序将需要很少的计算。如果它们很大,则需要大量的计算。
实际上,总计算很简单。根据经验,FLOP 总数(“计算机进行了多少次计算”)似乎非常接近 6ND。同样,我们很幸运,这是如此简单。
我认为上述比例定律并不是看待事物的最佳方式。毕竟,您并不真正关心 N。那只是您在某处键入的数字。改变它是微不足道的。您关心的是 (1) 您需要收集多少数据,(2) 您需要购买多少计算,以及 (3) 最后出现什么错误。
我发现以这种方式可视化比例定律更有帮助:想象你有一个特定的数据集和一定数量的计算。然后你可以问问自己:“如果我选择任意给定数量的参数,并查看我的数据集的任意部分,将使用多少计算量,以及将导致多少总误差?”然后,您可以根据您的计算预算和您拥有的数据量做出误差最低的选择。如果你这样做,那么你会得到这个图表:
真正发生的事情是您可以修复 {parameters, data, compute} 中的任意两个,最后一个由您决定。 IE
- 如果您有 N 个参数和 D 个标记,那么您将需要 C=6ND FLOPs,总误差为 E(N,D)。
- 如果你有 N 个参数和 C 个 FLOP,那么你将有时间查看 D=C/(6N) 个标记,总误差为 E(N,C/(6N))。
- 如果你有 D 个令牌和 C 个 FLOPS,那么你可以负担得起一个参数为 N=C/(6D) 且总误差为 E(C/(6D),D) 的模型。
现在要理解此图,假设您有 C FLOPs 的计算预算和对 D 数据的访问。现在,您可以选择任意数量的参数 N,然后您将有时间查看 C/(6N) 数据。但是当然,你只有D 数据,所以你不能使用更多。
因此,从技术上讲,给定 C 个 FLOPs 和 D 个令牌的输入,最佳总误差是通过最小化 N 上的 E(N,C/(6N)) 给出的,受 C/(6N) ≤ D 的约束。如果你愿意,可以计算出它的数学,但谁在乎呢,我只是用数字来计算。
如您所料,更多的数据是好的,更多的计算是好的。如果您想了解更多详细信息,请参阅上面的下拉框或“计算优化”模型的附录。
损失从何而来?
主要来自数据错误。不同的论文不会在一致的数据集上公布他们的损失,而且无论如何你无法观察到错误是由于模型错误还是数据错误造成的。但是我们仍然可以使用已发布的参数和数据数字,并通过将它们插入比例定律来猜测错误。如果我们这样做,我们会得到这张表:
系统 | 参数(十亿) | 数据(十亿个代币) | 失败者 | 模型错误 | 数据错误 | 总误差 |
---|---|---|---|---|---|---|
GPT-2 | 1.5 | 21 | 1.9×10²⁰ | 0.308 | 0.529 | 0.837 |
GPT-3 | 175 | 300 | 3.2×10²³ | 0.061 | 0.251 | 0.312 |
地鼠 | 280 | 300 | 5.0×10²³ | 0.052 | 0.251 | 0.303 |
龙猫 | 70 | 1400 | 5.9×10²³ | 0.083 | 0.163 | 0.247 |
棕榈 | 540 | 780 | 2.5×10²⁴ | 0.042 | 0.192 | 0.234 |
几年来,每个人都沉迷于增加参数的数量。但根据比例定律,这可能是一个错误:在 GPT-3、Gopher 和 PaLM 中,超过 80% 的错误是由于数据有限,而不是模型大小有限。 Chinchilla 通过在较大的数据集上训练相对较小的模型打破了这种模式。尽管具有相似的计算成本,但这比 Gopher 的错误率要低得多。
这表明,至少在短期内,模型可能会比 PaLM 更小。需要更多的计算,但该计算将用于处理更多数据,而不是增加参数的数量。
顺便说一句,如果您对比例定律持怀疑态度,一个很好的练习是询问在游戏中有皮肤的人是否表现得好像比例定律是真实的。答案似乎是肯定的。 LLaMA 遵循了 Chinchilla 的趋势,即在大量数据上训练相对较小的模型。如果谣言是准确的,GPT-4 将与 GPT-3 相似或更小,但会在更多数据上进行训练。 (部分原因是较小的模型在生产中运行也更便宜。)
这些“你只需要比例”的 T 恤是怎么回事?
你可以这样表述这个理论:
- 缩放定律表明,有了足够的数据和计算,我们可以将总误差降低到接近于零。
- 趋势表明,总误差接近于零的 LLM 在 BigBench 上的性能将超过 90%,这看起来非常“智能”。
- 所以我们不需要任何新的突破,只需要规模化。
如果您相信损失的比例定律以及损失与 BigBench 之间的上述拟合,那么我们可以得到这个数字,说明 LLM 将如何“智能”地获得一定数量的计算和数据。
同样,您不应该相信这个图表,因为损失/BigBench 关系仅基于三个观察结果。但如果你这样做了,那么这就意味着你需要的所有类似人类的“智能”是移动到右上角——采用具有大约 10²⁴ FLOPs 和 10¹² 令牌的当前模型,并使这两个数字更大。
我不知道这是不是真的。但我确实认为有强有力的证据表明,在当前最先进的模型的边缘,更大的规模肯定会增加“智能”。
缩放数据
需要多少数据?
很多。作为第一个练习,让我们假设您有无限计算。您可以仅在有限数量的数据上训练无限大的模型。会有多好?好吧,将 N=∞ 代入比例定律。如果你有 D 个标记,你应该期望总误差为 E(∞,D)。这是与一些知名模型相比的样子。
这里每个模型和“无限计算”曲线之间的垂直差距取决于模型中有多少参数:PaLM 比 Chinchilla 更高于线,因为 PaLM 有更多的参数,即在相同数量的数据上花费更多的计算.
因此,使数据集比最近最大的数据集大 10 倍或 100 倍(从 10¹² 到 10¹³ 或 10¹⁴ 代币)可以获得很多好处。如果你*真的*想要最大的准确性,你可能想要比当前最大的数据集(10¹⁵ 或 10¹⁶ 令牌)大 1,000 倍或 10,000 倍。
为了将来参考,这里是不同数量的令牌的最小误差,假设无限计算:
代币 | 无限计算错误 |
---|---|
10¹²(当前型号) | .179 |
10¹³ | .094 |
10¹⁴ | .049 |
10¹⁵ | .026 |
10¹⁶ | .014 |
是否存在足够的数据?
目前还不清楚。那里肯定有更多数据,但收集起来并不容易,也很难说我们是否会达到极限。
这是我对可以在不同来源中找到的令牌数量的最佳猜测,如果你愿意走极端的话。参见Villalobos 等人。 (2022)进行一些类似的计算。
来源 | 当前模型中的代币 | 原则上可访问的代币 |
---|---|---|
互联网 | ~ 10¹² | 5 × 10¹⁴ (?) |
图书 | 5 × 10¹¹ | 10¹³ |
维基百科(英文) | 6.5 × 10⁹ | 6.5 × 10⁹ |
维基百科(全部) | 2.5 × 10¹⁰ | 3.9 × 10¹⁰ |
科学论文 | 2.7 × 10¹⁰ | 1.5 × 10¹² |
推特 | 很少 | 2.5 × 10¹³ |
短信 | 0 | 10¹² / 年 |
YouTube | 0 | 4 ×10¹² |
圆形监狱(英语) | 0 | 10¹⁵ / 年 |
圆形监狱(全部) | 0 | 2 × 10¹⁶ / 年 |
(你知道所有电子邮件中有多少令牌吗?或所有 Facebook 帖子中?或所有电话中?)
我把这些估计背后的计算放在了一个附录中,因为它们繁琐而乏味。但这里有几点注意事项:
-
互联网:大多数模型已经将整个互联网的相当一部分作为起点。但这不是远程可用的,除非它经过严格过滤以尝试删除垃圾和垃圾邮件以及非文本内容,如菜单或二进制数据。互联网上的文本肯定比现在使用的多得多,但过滤很难,我认为没有人真正知道有多少“可用”文本存在。
-
书籍:我对可访问代币的估计是基于国会图书馆的所有书籍,我认为它是世界上最大的图书馆,拥有大约 ⅓ 的现存书籍。
-
维基百科:大多数模型基本上已经使用了所有维基百科。它并不大,但人们倾向于赋予它很高的权重。
-
科学论文:很多模型使用arXiv上的论文,可以轻松访问全文。如果你能收集所有曾经写过的论文,那将是大约 100 倍的代币。
-
推特:我们在推特上有很好的数据。代币的总数大得惊人——大约和所有曾经写过的书一样多。你不得不怀疑所有这些数据是否会在某个时候被货币化。
-
短信:我估计每年有多少令牌通过 WhatsApp 发送。如果你相信加密,那么这就不可能进行训练,但无论如何它是否值得似乎值得怀疑,因为质量和数量似乎都不是那么好。 (虽然你可能希望 AI 像朋友一样行事……)
-
Youtube:对所有视频进行语音转文本并不能产生足够的令牌来真正改变事情。
-
Panopticon:如果我们记录世界上每个母语为英语(或所有语言)的人所说的每一个词,我们会得到什么。
最大的不确定性是互联网上有多少有用数据。如果不可能过滤掉比当前 10^12 左右有用的标记更多的东西,那么可能很难将数据集扩展到超过 10^13 左右的标记,因此总误差不能低于当前模型的 40% 左右。但是,如果您可以提取 5×10¹⁴ 个有用的标记,那么总误差可能会降低到只有当前模型的 13%。这是一件大事,我没想到人类的未来轨迹可能取决于这种奇怪的技术。如果您有 10¹³ 个标记,那么在有足够的计算(即无限多个参数)的情况下,总误差可以降低到 E(∞,10¹³)=0.094。另一方面,对于 5×10¹⁴ 令牌,它可以减少到 E(∞, 5×10¹⁴)=0.031。当前模型的总误差约为 0.23。
我的结论是:如果你想要的不仅仅是当前数据集中的 10^2 个标记,你没有太多选择。您可能会从 Twitter 或一个大型项目中获得一个数量级的数量级,以将所有已写的书籍数字化。但比例法则表明,要获得近乎完美的性能,您需要 10^15 代币甚至更多。唯一可能的地方可能是互联网或一些噩梦般的全面监控制度。
因此,有限的数据可能会阻碍 LLM 取得好成绩。有限的计算呢?
扩展计算
如果你增加计算会发生什么?
除非你已经增加了代币的数量,否则你最终会遇到收益递减的情况。让我们将标记 D 的数量固定为不同的级别,并改变我们必须训练的 FLOP 数量。对于每个 FLOP 数量,选择您可以“负担得起”的最大数量的参数。 (记住,更改参数的数量很容易。)然后是这样的:要更加小心,请记住 FLOP 的数量大约为 6ND。所以如果D和C是固定的,我们可以选择N使得C=6ND然后看误差E(N,D)。
圆圈显示 GPT-3、PaLM 和 Chinchilla 的估计误差。除非你有大量数据,否则你会从增加参数/计算中获得大大减少的回报。例如,给定 GPT-3 的数据集,再多的计算也无法与 PaLM 的性能相提并论。
需要多少计算量?
很多。这是另一个练习:假设您可以访问无限数据,但计算有限。你会做得多好?这有点微妙,因为即使您可以访问无限数据,如果没有无限计算,您也无法在无限数据上进行训练。如果您有固定数量的计算,您要做的是选择适合您预算的最佳模型大小和令牌数量,但给出最低的预测损失。如果您这样做,会发生以下情况:
请记住,FLOP 的数量大约为 6ND。因此,如果您有 C FLOP 的计算预算并选择使用 N 个参数,那么您将只有时间查看 D=C/(6N) 个标记。因此,您可以查看 N 的所有可能值并选择 E(N,C/(6N)) 最低的值。这有时被称为“计算最优”错误,因为它是缩放法则表明您可以通过总共 C FLOP 获得的最低错误。如果你喜欢数学,你可以把它写成 E*(C) = min_N E(N,C/(6N))。可以想象,您可以尝试用数学来求解该方程式,但我并没有胡思乱想,而是针对各种数量的 FLOPs C 以数值方式求解它。
GPT-2 和 Chinchilla 使用与其规模相当的大量数据进行训练,因此在给定使用的计算量的情况下,它们几乎可以实现最佳损失。另一方面,GPT-3 和 PaLM 的数据量较小,因此位于“无限数据”线之上。
所以:在计算上花费比当前最大的模型多 1,000 倍(从 10²⁴ 扩展到 10²⁷ FLOPs)可以获得很多好处。如果您真的想要最大的准确性,您可能需要使用多达 1,000,000 倍的计算(扩展到 10³⁰ FLOPs)。
下面是不同数量的 FLOP 的最小误差,假设数据是无限的:
失败者 | 无限数据错误 |
---|---|
10²⁴(当前型号) | .221 |
10²⁵ | .155 |
10²⁶ | .109 |
10²⁷ | .077 |
10²⁸ | .054 |
10²⁹ | .038 |
10³⁰ | .027 |
10³¹ | .019 |
请注意,要达到给定的错误级别,您需要扩展计算,而不是扩展数据。那是因为您最终需要同时增加参数的数量和令牌的数量,而这两者都需要更多的计算。
是否存在足够的计算能力?
当然,足以让模型比现在更好。但是地球上没有足够的计算能力来使用当前技术接近零错误。
培训 LLM 需要多少费用?这取决于你测量的是什么。电?硬件?工程师工资?一个合理的估计是从云计算供应商那里租用硬件的成本,最近的一个报价是,你可以花 250 万美元租用足够的 GPU 能力来训练Chichilla 。由于我们知道 Chinchilla 使用了多少 FLOP,因此我们可以推断出对于任何给定金额(再次假设无限数据!)可实现的损失:
为了说明 10⁹ 百万美元是多么荒谬,我在 x 轴上包括了一些我们最喜欢的州/国家/星球的年度 GDP。我很乐意预测,没有人会仅仅通过使用当前的硬件/算法构建更大的计算集群来花费 0.01 的总误差。
但目前最好的模型总误差约为 0.24,成本约为 250 万美元。将其降低到 0.12 的总误差将“仅”花费约 2.3 亿美元。如果我的预测是准确的,那将意味着 BigBench 性能提升约 17%。这似乎是不可能的。对于一个富有而坚定的民族国家来说,图表的中右部分并没有超出范围。而且计算成本不断降低……
为什么这一切都错了?
出于很多原因!
也许缩放定律是错误的。
所有这些预测都在很大程度上依赖于 Chinchilla 比例定律,它使我们能够根据给定的计算量和给定的令牌数量来预测总误差。我们应该相信那条法律吗?毕竟,没有深刻的理论来解释为什么它应该是真的,它纯粹是经验主义的。据我所知,这里是实际检查过的地方:
我们最感兴趣的是这张图右上角发生的事情。但是,从 10²² FLOPs 推断为 10³¹ FLOPS,以及从 10¹² 推断为 10¹⁵ 代币是一个*巨大的*跳跃。到目前为止,该模式看起来不错,并且可能会继续保持在上图中的点周围。但是我们应该对事情如何概括远不止于此有很多不确定性。 Chinchilla 论文称他们进行了“400 多次”试验,但从未明确说明这些试验是什么。我根据显示 6e18 和 3e21 之间的 FLOP 范围的图表(例如图 3)、显示 44M 和 16.1B 参数之间的表格(表 A9)以及它们总共只有 1.4T 万亿代币这一事实将其拼凑在一起。如果我采用所有这些 FLOP 和参数的组合,计算每个的标记数,然后过滤掉标记数大于 1.4T 的情况,我得到总共 428 种情况,这非常符合“超过400″。
也许损失/绩效关系是错误的。
即使比例定律是正确的,也只能告诉我们损失改善了多少。我们不知道“损失”如何转化为有用性或感知到的“智能”。可能是,如果您将误差降低到接近零,BigBench 性能将达到 100,并且每个人都认为该系统是超人的。或者可能是将误差降低到当前水平以下并没有太大作用。我们只是不知道。
也许质量有它自己的质量。
比例定律与数据质量无关。损失只是衡量你对训练数据的拟合程度。如果你训练一大堆垃圾并且模型在预测新(垃圾)词方面做得很好,那么你仍然会得到低损失。每个人都知道 LLM 的定性性能在很大程度上取决于数据的“好”程度,但这并没有进入缩放定律。
同样,每个人都报告说过滤原始互联网可以使模型更好。他们还报告说,包括少量但高质量的来源会使事情变得更好。但是好多少呢?为什么?据我所知,对此没有通用的“理论”。我们可能会发现,计算代币只会让你走这么远,10 年后,将有一个庞大的基础设施来管理和清理来自数百个来源的数据,人们回顾我们目前对代币数量的关注时会觉得很有趣。
也许专业化就是您所需要的。
我们已经在基础语言模型中大力推动规模化。但是,我们仍处于探索可以通过微调和提示工程完成哪些工作以使 LLM 专门用于不同任务的早期阶段。似乎可以通过改进这些来显着提高性能。也许我们最终会发现基础 LLM 只打了这么多,真正的行动在于你如何将 LLM 专门用于特定任务。
他们燃烧的话
好吧好吧,我总结一下。
-
没有明显的障碍可以阻止法学硕士继续从现在的位置大幅改进。更多的数据和计算应该会让它们变得更好,而且让数据集大 10 倍并购买 100 倍以上的计算看起来是可行的。虽然这些会有所帮助,但它们不会接近饱和现代语言模型架构的性能。
-
虽然使数据集更大是可行的,但我们可能会在尝试使它们比现在大 10 倍以上时遇到障碍,尤其是当数据质量变得很重要时。关键的不确定性是经过仔细过滤/清理后,有多少互联网最终有用。如果一切都可用,那么数据集可能会增长 1000 倍,这可能足以将 LLM 推向接近人类的表现。
-
您可能可以将计算规模扩大 100 倍,但训练模型仍然“仅”花费数亿美元。但是,将 LLM 扩展到最佳性能的成本要高得多——以目前的技术,比整个地球的 GDP 还要多。所以某处肯定存在计算障碍。计算成本可能会随着时间的推移而下降,但速度会很慢——仔细观察这张图,看起来 GPU 计算的成本最近每 4 年下降一半,相当于每 13 年下降 10 倍。)可能有另一个数量级或两个更好的编程,例如提高 GPU 利用率。
-
东西能烫到什么程度取决于法学硕士的用处。原则上,获取更多数据和更多计算始终是可能的。但是回报是递减的,人们只有在投资回报为正时才会这样做。如果 LLM 被视为重要的经济/安全利益,那么可以想象,人们可以为更大的数据集和更多的计算而竭尽全力。
-
缩放定律可能是错误的。它们是使用相当少量的计算和数据从拟合中推断出来的。或者数据质量可能与数量一样重要。与针对特定任务的微调相比,我们也不了解基本模型有多重要。
什么会改变这一切?
即使上述所有分析都是正确的,明天也可以在 arXiv 上发布一篇论文来推翻它。
首先,可能会出现一种推翻比例定律的新语言模型。如果您在发明 Transformer 之前就制定了比例定律,它们看起来就不会那么乐观了。或者,有人可能会找到一种方法来调整 transformer 以使其更好地泛化(例如,通过引入稀疏性或其他方式)我想这可能是拼图的最后一块在 2017 年出现,没有留下任何其他东西。但我对此表示怀疑。
其次,数据生成可能会有创新。在计算机视觉中,通过随机扭曲/缩放/移动图像来扩大数据集是很常见的。 (如果你放大一头牛,它仍然是一头牛。)这些有助于计算机视觉模型从相同数量的起始文本中更好地概括。如果发明了类似的技巧来将文本转换为同样好的文本,这也可以改进缩放法则。
第三,可以在多模式培训方面进行创新。如果没有足够的英语,那么也许你可以在不影响表现的情况下训练其他语言。或者你可以训练一个模型,它不仅可以预测文本,还可以预测音频、图像或视频。当然,许多模型可能需要专门针对一个领域。 As far as I can tell, the reason LLMs look intelligent is that predicting the next word is so damn hard that if you want to do it well enough, you can’t avoid learning how to think. Probably the same is true for predicting the next pixel, and maybe some of the “thinking parts” can be shared.
So, lots of uncertainty! But I think we know enough that the inside view is worth taking seriously.
Thanks to Andrew Conner , Tristan Homsi, DB, other DB
Appendix: Compute optimal models
Say you’re a company. You have unlimited data, but you only have 25,000 GPUs and you can only run them for one month. (I’m sorry, that must be hard for you.) You can create a gigantic model and run it for a small number of iterations (so it only sees a small amount of data) or you could create a small model and run it for a lot of iterations (so it sees a ton of data). Or you could do something in the middle.
That is, you can “spend” your compute on parameters or you can spend it on data. The idea of a “compute optimal” model is to spend your compute in the best possible way to get the best return.
Formally, in a compute optimal model, you fix the amount of compute C and then minimize E(N,D) over N and D with the constraint that C=6ND. You can do this with math you if you want, but who cares, here it is:
Here I’ve greatly decreased the minimum number of FLOPs to make the pattern more clear. When the computational budget is small, you want a roughly equal number of tokens and parameters. As the budget grows, we want to increase the number of parameters and the number of tokens, but the number of tokens increases faster.
Here’s the ratio of D/N in the above graph This increases dramatically when you have more compute.
Why does this happen? Ultimately, it’s because in the scaling law, N is taken to a power of 0.34 while D is taken to a power of 0.28, meaning it’s easier to kill off model error (by increasing N) than it is to kill off data error (by increasing D).
Of course, we can doubt this conclusion: The scaling law has only been validated up to around 10²⁴ FLOPs. There is no guarantee that the pattern continues to hold.
Appendix: Data estimates
To start with, how many tokens are on the internet?
My best guess is that current models seem to be using on the order of 10¹² tokens, but that with a lot of work on better filtering / cleaning / parsing, it might be possible to push this up to around 5 × 10¹⁴ but probably not a whole lot more?
Here’s my logic: Most recent models use data from Common Crawl , a nonprofit dedicated to crawling the web and making all the data available. (This exists!?) I made a rough estimate that if you take all the text data common crawl ever collected and assume it’s all usable, this would be around 5 × 10¹⁴ tokens.
However! The data in Common Crawl is a total mess. Some stuff is duplicated between different crawls, and apparently lots of non-text garbage leaks into the text. Beyond that, lots of the text is totally unusable. Some folks (Gao et al. 2020) tried to create an open dataset called The Pile that would be similar to the data GPT-3 trained on. They noticed that the text data in Common Crawl is a nightmare and so used their own algorithms to try to extract text from the HTML instead. They only ended up with around 5.6 × 10¹⁰ tokens, 4 orders of magnitude less. GPT-3 seems to have used around 7.5×10¹¹ token from Common Crawl.
Overall, most models seem to put low weights on current data extracted from Common Crawl. My guess is that with a lot more effort put into filtering and cleaning this can be pushed up.
- Common Crawl tries to return just the text content from HTML and RSS content in what they call “WET” files.
- In the most recent crawl, this was 9TiB GZIP compressed.
- Typically, compressed text is around 25-30% of the original size, so let’s call that 9 TiB/0.275 = 32.7 TiB (32.7 × 2⁴⁰ bytes) of raw text.
- This text seems to be UTF-8 encoded. In UTF-8, ASCII characters use 1 byte, others use up to 4 bytes. I’ll randomly use an average of 2, meaning we have 16.35 × 2⁴⁰ characters per crawl.
- At 4 bytes per token, that’s 4.09 × 2⁴⁰ tokens per crawl.
- Some duplication of older tokens, not taking this into account!
- Upper estimate: No duplication, no filtering, none of the text is binary garbage, assume same rate for the past 10 years: 4.09 × 2⁴⁰ (tokens / crawl) × 12 (crawls / years) × 10 years = 5.4 × 10¹⁴ tokens.
The “Will we run out of data?” paper used different math but arrived at a broadly similar estimate of number of tokens per year.
The Pile ended up with only 227.12 GiB of data from common crawl, and report a ratio of 0.2291 tokens per byte meaning only 5.6 × 10¹⁰ tokens.
The GPT-3 paper says “nearly a trillion words”. If it was a full trillion that would be around 10¹² * 0.75 = 7.5×10¹¹
OK, what about Twitter? We seem to have pretty good data about how many tweets have been sent and the average tweet length. Putting these together we get around 2.5 × 10¹³ tokens. As far as I know, no one admits to training on Twitter data. Although if they did, would they tell us? (Gwern reports that Twitter is not generally in Common Crawl .)
- Let’s take the average number of tweets per year, add them up, and multiply by 365: (340+500+500+546+592+634+683+729+775+821+876+876) * 1e6 * 365 = 2.87328 × 10¹² total tweets.
- The average tweet is apparently around 33 characters . So thats 9.481824 × 10¹³ characters or 2.37 × 10¹³ tokens.
- Let’s round that up to 2.5 × 10¹³ since 2023 is already starting to rush past us.
For blog posts, Villalobos et al. estimate that between 0.2 trillion and 2 trillion are written per year. If we take an average length of 1000 words, that would be 2.6×10¹⁴ to 2.6×10¹⁵ tokens. Since that’s more than the estimated number of tokens on the entire internet, I think something is wrong.
What about books? Using data from how many books and words were in Google Books in 2010 and extrapolating, my guess is that around 182 million books survive in English today.
How many tokens are in a book? The books that Google had scanned in 2010 had an average of around 69.4 thousand words or 92.5 thousand tokens per book. (Though note these books were surely a non-random sample.)
I’m not sure if it’s realistic to expect anyone to collect the full text of all 182 million books. Certainly, all that data doesn’t exist in any organized form today. Google reported in 2015 that they had scanned 30 million books, but they seemed to get bummed out about everyone suing them all the time and sort of gave up. A few years ago, Amazon sold around 48.5 million different print books. The Library of Congress has around 51 million books. In terms of ebooks, the Internet Archive has around 20 million books in its library, while Amazon kindle has around 12 million.
So I think the Library of Congress is the largest existing collection of books and has around 4.7×10¹² tokens, while all the books in the world have perhaps 1.7×10¹³ tokens. I think a very motivated company could collect more than the library of congress, but probably not all the books, so let’s just call it 10¹³ tokens that could be found in books in principle.
Meanwhile, Chinchilla seems to have used around 5×10¹¹ tokens. As far as I know this is the largest dataset of books used.
How many books survive? Google books in 2010 said they had scanned 5.2 million books, and estimated this to be 4% of all surviving books ever published. That would suggest 130 million books existed at the time. Wikipedia tells us that around 4 million books are published in English per year, so that suggests that around 130+13×4=182 million books survive today.
Google reported that their 5.2 million books (in English) had a total of 361 billion words. That suggests an average of 69.4 thousand or 92.5 thousand tokens per book.
Estimated number of tokens in all the books: 182 million books × 92.5 thousand (tokens/book) = 1.7×10¹³ tokens.
Estimated number of tokens in all the books in the library of Congress: 51 million books × 92.5 thousand (tokens/book) = 4.7×10¹² tokens.
The Gopher paper reports that they have around 4.23 bytes per token, while the Chinchilla paper reports that they had 2.1 TB of Books. So I estimate they had 2.1×10¹² bytes / (4.23 bytes/token) = 4.9×10¹¹ tokens. This is substantially more than the 6.7×10¹⁰ that GPT-3 used.
How about video content? In principle you could run speech-to-text on all the video ever uploaded to YouTube, right? Surprisingly, this doesn’t get you all that far: Villalobos et al. estimate that between 130 billion and 1.3 trillion words are uploaded to youtube each year. If we take the geometric mean of those estimates and assume 10 years of data, that’s a total of 4.1 × 10¹² tokens.
What about scientific papers? Villalobos et al. estimate that there are around 170 million scientific papers in the world and the average paper length is 6 thousand words, suggesting there are 1.02 × 10¹² total words or 1.36 × 10¹² tokens in all scientific papers. How many are used in current models? Often it’s unclear, but the recently published LLaMA model has 92 GB of ArXiv data out of a total of 4749 GB of data, and a total of 1.4 trillion tokens. Assuming different types of text have equal numbers of tokens/byte (nearly true in other papers) that would be 2.7 × 10¹⁰ tokens.
What about Wikipedia? Pretty much every model already uses all of English Wikipedia, which is around 3e9 tokens. GPT-3 reports using 3 billion tokens. LLaMA says it has 83 GB of data in 20 languages, which converts to 24.47e9 tokens using the same calculation as above for Arxiv. Alternatively, this page on Wikipedia says that English Wikipedia has 4.9 billion words while all of Wikipedia has 29 billion words. That converts to 6.5 billion and 38.6 billion tokens, respectively.
What about text messages? The largest platforms globally seem to be WhatsApp, followed by WeChat and Facebook Messenger. In 2020, Facebook reported that around 100 billion messages per day are sent on WhatsApp and some places report that the average length of an SMS is around 7 words. That suggests 9.3 ×10¹¹ tokens are produced per year.
How about panopticon? Apparently, the average person speaks around 16k words per day and there are around 420 million native English speakers in the world . Say companies recorded everything everyone said for a year and sent it to the cloud. (Is it that much worse than how much your smart speaker spies on you now?) That would be 2.45×10¹⁵ words or 3.27×10¹⁵ tokens recorded per year. Realistically you wouldn’t get everyone—babies don’t talk—so let’s call it 1×10¹⁵ that you could record per year. If you everyone in all languages, you’d have around 20x as many people, so 2×10¹⁶ tokens per year.
I wanted to estimate how many tokens are in all emails sent per year but I wasn’t able to come up with even a very rough estimate.
Appendix: Further reading
Scaling laws:
-
https://ift.tt/k8mntR0
- https://ift.tt/uiGxV8k
- Kaplan paper https://ift.tt/kxWvOD4
- Chinchilla paper https://ift.tt/wktUbEe
On running out of data:
- Will we run out of data? An analysis of the limits of scaling datasets in Machine Learning https://ift.tt/uFJmgz7