物理学的语言模型:知识容量缩放定律 Physics of Language Models: Part 3.3,Knowledge Capacity Scaling Laws (草稿)

摘要

扩展规律描述了语言模型的大小与其能力之间的关系。与通过损失或基准评估模型能力的先前研究不同,我们估计模型存储的知识比特数。我们关注以元组形式表示的事实知识,例如来自维基百科页面的(美国,首都,华盛顿特区)。通过多个受控数据集,我们确定语言模型能且仅能每个参数存储2比特的知识,即使当量化到int8时,这样的知识也可以灵活地为下游应用提取。因此,一个70亿参数的模型可以存储140亿比特的知识,根据我们的估计,超过了英文维基百科和教科书的总和。
更广泛地,我们展示了12个结果,关于(1)训练持续时间,(2)模型架构,(3)量化,(4)稀疏约束如MoE,以及(5)数据信噪比如何影响模型的知识存储容量。值得注意的见解包括:
• GPT-2架构,采用旋转嵌入,特别是在较短的训练时间内,在知识存储方面匹配甚至超过LLaMA/Mistral架构。这是因为LLaMA/Mistral使用的是GatedMLP,它不够稳定且更难训练。
• 在训练数据前加上域名(例如,wikipedia.org)显著增加了模型的知识容量。语言模型可以自主识别和优先考虑富含知识的域,优化它们的存储容量。

1 引言

大型语言模型的扩展定律仍然是一个关键的研究领域,它使得通过对较小模型的实验来预测极大模型的性能成为可能。在训练时间方面,已建立的扩展定律讨论了最佳训练 flops 与模型大小的关系。然而,近期的研究挑战了这些定律,证明了使用显著更多的 flops 训练较小的模型可以产生更好的结果。虽然这些定律讨论了训练某个大小的模型需要多少时间/数据,但另一个基本问题是:假设有足够的训练,模型可以达到的最终性能是什么?尽管在大型模型中已知存在突现行为,但缺乏对模型大小如何影响其容量的原理性、定量分析,这在充分训练时尤其如此。(有大量文献比较了预训练模型在基准任务上的表现。大多数比较是针对不同模型家族,这些模型是在不同数据集上训练的:如果LLaMA-70B比Mistral-7B表现得更好,这种提升是来自于它选择的预训练数据,还是架构上的差异,或者真的是模型大小的原因?一些比较是在相同架构之间进行的,比如LLaMA-70B在世界知识基准测试中的得分为63.6%,而LLaMA-7B的得分仅为48.9%【33】;这是否意味着模型大小增加10倍,其能力只增加到了130% = 63.6/48.9?因此,使用一个更有原则的框架来在受控环境下研究规模化定律是非常重要的。)

传统理论关于过参数化表明,扩大模型大小可以在充分训练的模型中增强对训练数据的记忆能力,改善泛化误差,并更好地拟合复杂的目标函数。然而,这些结果常常忽视了大的常数或多项式因子,导致与实际结果存在显著差异。

在这篇文章中,我们引入了一个原理性框架来考察模型大小与其知识存储容量之间的高度准确的扩展定律。直观上看,更大的语言模型可以存储更多的知识,但是总知识是否与模型的大小线性扩展?这个扩展的确切常数是多少?理解这个常数对于评估变压器模型在知识存储中的效率以及各种因素(例如,架构、量化、训练持续时间等)如何影响这一容量至关重要。

知识是人类智能的,如果不是唯一,至少是最关键的组成部分,它是我们悠久历史中积累下来的。像 GPT-4 这样的大型语言模型不仅因其复杂的逻辑而受到赞誉,还因其卓越的知识库而受到赞誉。尽管有传言称 GPT-4 拥有超过 1T 参数,但存储所有人类知识是否必要?如果一个 10B 模型,假设用高质量数据充分训练,是否能匹配 GPT-4 的知识容量?我们的论文寻求解决这些问题。

知识片段。准确地定义“一片人类知识”是具有挑战性的。本文旨在通过专注于一个受限制但足够有趣的领域来取得进展。我们将知识定义为一个(名称,属性,值)元组,例如(安雅·福杰,生日,10/2/1996);许多世界知识基准数据可以分解成类似这样的片段。(示例包括在TriviaQA【20】中的(非洲,最大的国家,苏丹)和(《一夜发生的事》,导演,弗兰克·卡普拉),或者在NaturalQuestions【22】中的(泰顿大坝,崩塌日期,1976年6月5日)和(美国,首都,华盛顿特区)。)

我们通过从知识库中均匀随机生成(名称,属性,值)元组并将它们转换成英文描述来生成仅包含知识的合成数据集。我们使用这些文本对语言模型(例如,GPT-2,LLaMA,Mistral)进行预训练,使用标准的自回归目标从随机初始化开始,并“估计”学习到的知识。通过改变知识片段的数量和模型大小,我们概述了一个知识容量扩展定律。

我们的理想化设置,不包含无关数据,允许更准确地计算扩展定律 - 我们还将在第 10 节中讨论“垃圾”数据如何影响容量。相比之下,量化现实生活中的知识是困难的;例如,如果 LLaMA-70B 在基准测试上的表现比 LLaMA-7B 好 30%,这并不一定意味着模型规模增加 10 倍仅将容量提高了 30%。合成设置还让我们调整各种超参数,如名称/值长度和词汇大小,以研究它们对知识容量扩展定律的影响。大部分论文将专注于使用合成生成的人类传记作为数据的设置,既使用预定义的句子模板,也使用由 LLaMA2 生成的传记以增加现实感。

比特复杂度与容量比率。对于 N 个知识片段(即 N 个元组),我们定义位复杂度为编码这些元组所需的最小位数。对于在这些数据上训练的任何语言模型,我们计算其““比特复杂度下限””(见定理 3.2),描述了模型以给定准确度存储知识所需的最小位数。这个公式几乎与上界一样精确,误差在 1-o(1) 因子内。

我们在具有不同 N 值的知识数据上训练不同大小的语言模型。通过比较模型的可训练参数与比特复杂度下界,我们评估它们的知识存储效率。

示例。一个有 100M 参数的模型存储 220M 位知识,其容量比率为 2.2 = 220M / 100M 位每参数。还有一个模型容量比率的平凡上界;例如,使用 int8 参数的模型不能超过每参数 8 位的容量比率。

我们的结果。我们的发现总结如下:

- 第 5 节:GPT2 的基本扩展定律。(在这篇论文中,GPT2指的是原始的GPT2模型,但采用旋转嵌入代替位置嵌入,并且没有使用dropout。)
  - 结果 1+2+3:在充分训练后,GPT2 使用标准的 AdamW 训练,跨所有数据设置(包括不同的模型大小、深度、宽度、数据大小、类型(合成/半合成)和超参数(例如,名称/值长度、属性数量、值多样性))一致达到每参数 2 位的容量比率。

备注 1.1:这预测一个经过充分训练的 7B 语言模型可以存储 14B 位知识,根据我们的估计,超过了英文 Wikipedia 和教科书的总和。(截至2024年2月1日,英文维基百科总共包含45亿个单词,https://en.wikipedia.org/wiki/Wikipedia:Size_of_Wikipedia#Size_of_the_English_Wikipedia_database,于2024年3月访问。我们估计,英文教科书的非重叠内容总共不超过160亿个单词,见备注G.1。这相当于205亿个单词,我们认为它们包含的知识不超过140亿比特。)

备注 1.2:当我们说模型存储知识时,并不是逐字记忆。相反,这种知识可以灵活提取(例如,通过问答如“安雅·福杰的生日是什么”)并可在下游任务中应用(例如,通过微调比较生日)。

- 第 6 节:训练时间如何影响模型容量。

达到每参数 2 位的容量需要在训练中每个知识片段被访问 1000 次,称为 1000 次曝光,以区别于传统的“1000 遍”术语,因为单次数据遍历可以曝光一个知识片段 1000 次。(例如,一个可能的情况是,通过一次维基数据的浏览,知识点(美国,首都,华盛顿特区)可能会出现1000次,而通过一次Common Crawl的浏览,它可能会出现一百万次。)

  - 结果 4:在 100 次曝光下,未充分训练的 GPT2 的容量比率降至每参数 1 位。

备注 1.3:从另一个角度看结果 4,即在训练中仅遇到 100 次的罕见知识,以每参数 1 位的比率存储。

- 第 7 节:模型架构如何影响模型容量。

我们测试了 LLaMA、Mistral 和 GPT2 架构,减少甚至没有 MLP 层。

  - 结果 5:在 1000 次曝光设置中,每参数 2 位的容量比率似乎是一个普遍规律:所有模型,即使没有 MLP 层,也接近达到这一比率。

  - 结果 6:在 100 次曝光下,一些架构显示出限制;特别是,LLaMA/Mistral 的容量比率比 GPT2 低 1.3 倍,即使在最佳调整的学习率后也是如此。

  - 结果 7:更多控制实验表明,“门控 MLP”的使用导致 LLaMA/Mistral 架构在知识存储上的表现不佳。

备注 1.4:我们的框架提供了一个原理性的游乐场来比较模型。这与基于损失/困惑度的传统比较形成对比,后者可能产生有争议的结论。(一个模型通过在简单数据上表现得更好但在复杂数据上略差,或者在推理任务上表现出色但在知识存储上不佳,可能会获得更好的困惑度。我们的结果提供了一个更为细致的观点:GatedMLP不影响经常遇到的知识(有1000次曝光),但确实影响到了相对罕见的知识(有100次曝光)。)控制数据还揭示了模型之间更显著的差异。(例如,Shazeer [29] 发现GatedMLP在基准任务上提供了约1%的准确率提升;我们发现的1.3倍差异,例如,可以转化为90%对70%的准确率。)

- 第 8 节:量化如何影响模型容量。

我们应用 GPTQ 对基础扩展定律的模型进行了 int8 或 int4 的量化。出乎意料的是,

  - 结果 8:量化为 int8 不会降低模型容量(即使对于处于 2bit/param 边界的模型);然而,量化为 int4 会将容量降低到每参数 0.7 位。

备注 1.5:由于 int8 是 8bit,LLMs 可以超过存储知识理论限制的 1/4;因此,知识必须在模型的所有层内非常紧凑地存储。

备注 1.6:由于在充分训练后获得 2bit/param,延长训练时间可能不会进一步提高模型容量,但量化可以。虽然本文没有涵盖,我们的框架也提供了一个原理性的游乐场来比较不同的量化方法。

- 第 9 节:稀疏性(MoE)如何影响模型容量。

专家混合(MoE)模型提供了比密集模型更快的推理速度,但通常在相同总参数数量下的表现不如密集模型(不考虑有效参数)。我们展示了这种性能下降很可能不是由于缺乏知识存储能力。

  - 结果 9:即使使用 32 个专家的 MoE 模型,与基础扩展定律相比,容量只减少了 1.3 倍,尽管在推理时仅使用了总参数的 8.8%。

- 第 10 节:“垃圾”知识如何影响模型容量。

并非所有预训练数据都同样有用。大量互联网数据缺乏对训练语言模型有价值的知识,而像 Wikipedia 这样富含知识的源仅占训练标记的一小部分。我们通过进行一个控制实验,包含有用和“垃圾”数据,来探索对模型容量的影响。

  - 结果 10+11:垃圾数据显著降低模型容量。例如,当“有用到垃圾”训练标记的比例为 1:7 时,即使有用知识暴露了 100 次,有用知识的容量也会减少 20 倍。(与结果4相比,有用知识经过300/600/1000次曝光后,损失因子改善为3倍/1.5倍/1.3倍,而结果4仅涉及在没有垃圾数据的情况下训练100次曝光。)

- 结果 12:一个有效的缓解方法是在所有有用知识前添加一个特殊标记。这类似于在每个 Wikipedia 段落的开头添加像 wikipedia.org 这样的域名;模型可以自动识别高质量数据,而无需事先知道有价值的域。在上述示例中,损失因素从 20 倍改善为 2 倍。

总的来说,我们研究知识容量扩展定律的方法提供了一个比传统方法更灵活、更准确的游乐场,这些传统方法评估的是在互联网数据上训练的语言模型与现实世界基准的对比。这种准确性部分得益于我们数据集的合成性质,这消除了可能损害现实世界基准结果有效性的基准污染问题。在这篇论文中,我们进行了详尽的跨不同模型架构和知识类型的比较。虽然我们没有探索各种量化方法,但这代表了未来研究的一个有

前景的方向。我们还研究了“垃圾”数据的影响并提出了缓解策略。我们相信,从这种原理性探索中获得的洞见可以帮助从业者做出有关模型选择、训练数据准备和进一步理论研究 LLMs 的明智决策。

2 预备知识

在本文中,知识的一片是三个字符串的元组:(名称,属性,值)=(n,a,v)。例如,n = “Anya”,a = “生日”,v = “1996年10月2日”。

2.1 知识(理论设置)

知识集的复杂性不仅由知识片段的数量决定,还受值字符串 v 的长度、词汇的多样性以及其他因素的影响。例如,如果属性 a = “护照号码”,则值 v 包含的知识位数比 a = “性别”多,因为前者具有显著更高的多样性。如果属性 a = “出生日期”,则值 v 可以由 3 个块组成:(10,2,1996)。

考虑到这些示例,我们提出了一组可能影响知识复杂性的超参数:

1. N — 不同名称 n 的数量,用  \mathcal{N}表示。
2. K — 属性 a 的数量,用 \mathcal{A} 表示属性集。为简单起见,我们假设 \mathcal{A}=K是固定的。
3. T — 令牌 T 的数量,其中每个字符在 v 中属于某个 \mathcal{T},对某个 \mathcal{T}=T。例如,我们可以将 T 视为“词汇大小”。
4. C 和 L — 值的块数和每个块的长度:每个值 v ∈ (T^L)^C 可以表示为 v = (v1, v2, ..., vC),其中 vi ∈ T^L。
5. D — 块的多样性:对于每片知识 (n, a, v) 和 i ∈ [C],块 vi 属于 Da ⊂ T^L,对于某个集合其基数 D = |Da| ≪ T^L。

备注 2.1:为了表示上的简便,我们假设了一个属性 a\in \mathcal{A} 中的所有块共享相同的多样性集 Da,并且所有块的长度相等等。这使我们能够更容易地展示每个超参数对模型容量的影响。实际上,不同属性可能有不同的多样性集或值长度——例如,D_passport 可能比 D_gender 大得多。我们的理论结果适用于这些设置,尽管标记更复杂。

在我们的理论结果中,我们引入了数据集 bioD(N,K,C,D,L,T) 如下定义:

定义 2.2(bioD 数据生成)。考虑固定的 K 个属性,如集合 A = {"ID 1" ... "ID K"},和一个候选名称的固定集合 N0(其中 N0 = |N0| ≫ N)。

1. 从 N0 中均匀随机(不放回)生成 N 个名称,形成 N。
2. 对于每个属性 a ∈ A,均匀随机(不放回)生成 D 个不同的字符串 w1,a, ..., wD,a ∈ T^L 以形成多样性集 Da。
3. 对于每个名称 n ∈ N 和属性 a ∈ A,通过均匀随机抽样每个 vi ∈ Da 生成值 v⋆(n, a) = (v1, v2, ..., vC)。

让 Z = {(n, a, v⋆(n, a)) | n∈N, a∈A} 为知识集。

命题 2.3(显而易见,位复杂度上界)。给定 N0 和 A 以及 T,描述在定义 2.2 中生成的知识集至少需要以下数量的位:

log2(|N0|/N) + NKC log2D + K log2(T^L/D) ≈ N log2(|N0|/N) + NKC log2D + KD log2(T^L/D)。

(当 |N0| ≫ N 和 T^L ≫ D 时,近似有效。)我们将在第 3 节中介绍位复杂度的下界。

2.2 知识(实证设置)

我们使用合成的 bioD 数据集(如定义 2.2 所述)和几个人类传记数据集来评估语言模型的扩展定律。

Allen-Zhu 和 Li 引入了一个包含 N 个个体的合成传记数据集,每个个体由六个属性描述:出生日期、出生城市、大学、专业、雇主和工作城市。(除了工作城市(由雇主的总部所决定)外,所有属性都是统一且独立地随机选择的。可能的人名总数为N0 = 400 × 400 × 1000,生日总数为12 × 28 × 200,出生城市有200个,大学有300所,专业有100个,雇主有263家。此外,每个人都随机选择了2种可能性中的一个代词。)为了将这些元组转换为自然语言,在他们的 bioS 数据集中,每个个体由六个随机选定的英文句子模板描述其属性。我们引导读者阅读他们的论文以获取更多细节,但在下面提供一个示例:

Anya Briar Forger 于 1996 年 10 月 2 日出生。她在新泽西州的普林斯顿度过了她的早年。她从麻省理工学院的教授那里获得了指导和指引。她专注于通信学完成了她的教育。她在 Meta Platforms 担任了一个专业角色。她在加州的门洛帕克就业。

在本文中,我们探索了这些数据集的三个变体:

- bioS(N) 代表 N 个个体的在线数据集,其中每个传记在实时生成时用新的随机性选择和排序六个句子模板。
- bioSsimple(N) 表示一个类似的数据集,但在这里,每个传记仅生成一次,使用固定的随机选择和排序句子模板。
- bioR(N) 指的是相同的数据集,但每个传记由 LLaMA2 书写了 40 次以增加真实性和多样性。

这些数据集对应于 bioS multi+permute, bioS single+permute, 和 bioR multi 数据类型,如[3]中讨论,尽管有细微差别。虽然他们的研究集中在 N = 100K 上,我们将我们的研究范围扩大到 bioS 最多 20M;对于 bioR,我们将 N 限制在 1M,这已经产生了 22GB 的数据集大小。

正如第 1 节中介绍的,如果每个知识片段在训练中被看到 1000 次,我们称之为 1000 次曝光。对于 bioS(N),1000 次曝光不太可能包括相同的传记数据,因为每个属性有 50 个句子模板,总共有 50^6x6! 种可能的传记。对于 bioSsimple(N),1000 次曝光意味着数据的 1000 次遍历。对于 bioR(N),1000/100 次曝光意味着仅 25/2.5 次数据遍历。

对于 bioD 数据集,我们将 N0 定义为与 bioS 相同,|N0| = 400 x 400 x 1000。我们将个人的属性封装在一个段落内,使用随机的句子排序和一致的句子模板。例如:

Anya Briar Forger 的 ID 7 是 v7,1, ..., v7,C。她的 ID 2 是 v2,1, ..., v2,C。[...] 她的 ID 5 是 v5,1, ..., v5,C。

在本文中,我们主要使用 bioS。为了展示更广泛的适用性并更好地连接到理论界限,我们还为 bioSsimple, bioR, 和 bioD 展示了结果。

2.3 模型和训练

GPT2 在 [26] 中被介绍。由于其绝对位置嵌入的局限性 [2],我们采用了其现代变体,即旋转位置嵌入 [7, 31],我们为了方便仍称之为 GPT2。此外,我们禁用了 dropout,这已被证明可以提高语言模型的性能 [33]。我们探索了广泛的模型大小范围,同时使用了固定的每头维度为 64。记号 GPT2-ℓ-h 代表 ℓ 层,h 头,以及 64h 维度的 GPT2;例如,GPT2-small 对应于 GPT2-12-12。使用默认的 GPT2Tokenizer,将人名和大多数属性转换为变长的令牌。在第 7 节检验模型架构对扩展定律的影响时,我们还将使用 LLaMA/Mistral 架构 [19, 32]。

训练。我们从零开始训练语言模型(即,随机初始化)使用指定的数据集。关于个人的知识段落被随机连接,由 <EOS> 令牌分隔,然后随机分割成 512 令牌的窗口。训练使用标准的自回归损失。除非另有说明,训练使用默认的 AdamW 优化器和混合精度 fp16。学习率和权重衰减进行了适度调整(见附录)。

3 比特复杂度下界

在评估模型存储的知识时,我们不能仅依赖于平均的、逐字的交叉熵损失。例如,在句子“接受了来自教职员工的指导和指引”的短语中,并不构成有用的知识。我们应该专注于确切知识令牌的损失之和。

考虑一个模型 F,其权重参数为 W ∈ W。假设 F 在 bioD(N,K,C,D,L, T) 数据集 Z 上训练,如定义 2.2 所定义,使用任何优化器;这个过程表示为 W = W(Z)(模型的权重作为训练数据集 Z 的函数进行训练)。在评估阶段,我们通过两个函数表达 F:F⊤(W,R),它生成名称,和 F⊥(W,n, a,R),它在给定 (n, a) 时生成值,其中 R 表示生成中使用的随机性。让 F⊥₁(W(Z), n, a,R) 代表 F⊥(W(Z), n, a,R) 的第一个块。我们通过计算以下三个交叉熵损失来评估 F:

loss_name(Z) = E[n∈N] -log Pr[R][F⊤(W(Z), R) = n]

loss_value₁(Z) = E[n∈N, a∈A] -log Pr[R][F⊥₁(W(Z), n, a,R) = v⋆₁(n, a)]

loss_value(Z) = E[n∈N, a∈A] -log Pr[R][F⊥(W(Z), n, a,R) = v⋆(n, a)]

备注 3.1:对于语言模型,这些量可以从其自回归交叉熵损失中计算得出。例如,当在句子“Anya Briar Forger 的 ID 7 是 v7,1, ..., v7,C”上评估模型时,对 “Anya Briar Forger” 中的令牌进行总和(而不是平均)得到的正是 -log Pr[R][F⊤(W(Z), R) = n] 对于 n = “Anya Briar Forger”;

对令牌 v7,1 进行总和得到的是 -log Pr[R][F⊥₁(W(Z), n, a,R) = v7,1] 对于这个 n 和 a = “ID 7”;而对整个序列 v7,1, ..., v7,C 进行总和得到的是 -log Pr[R][F⊥(W(Z), n, a,R) = v7,1, ..., v7,C]。这不论使用哪种分词器或值的长度都成立。

定理 3.2(位复杂度下界)。假设 \(N \geq \Omega(D \log N)\)。我们有

\[
\log_2 |W| \geq \mathbb{E}_Z \left[ N \log_2 \left( \frac{N_0 - N}{e^{\text{loss_name}(Z)}} \right) + NK \log_2 \left( \frac{D^C}{e^{\text{loss_value}(Z)}} \right) + KD \log_2 \left( \frac{T^L - D}{D e^{(1+o(1))\text{loss_value1}(Z)}} \right) - o(KD) \right]
\]

= \(N \log_2 \left( \frac{N_0 - N}{e^{\mathbb{E}_Z [\text{loss_name}(Z)]}} \right) + NK \log_2 \left( \frac{D^C}{e^{\mathbb{E}_Z [\text{loss_value}(Z)]}} \right) + KD \log_2 \left( \frac{T^L - D}{D e^{(1+o(1))\mathbb{E}_Z [\text{loss_value1}(Z)]}} \right) - o(KD)\)

本文的目标是研究模型参数的数量如何与这个界限竞争。

推论 3.3(无错误情况)。在理想情况下,如果对于每个数据 \(Z\),\(F\) 能够以恰好 \(1/N\) 的概率从 \(N\) 中生成一个名称,则 \(\text{loss_name}(Z) = \log N\);如果 \(F\) 能够 100% 准确地给出 \((n, a)\) 对生成值,则 \(\text{loss_value}(Z) = \text{loss_value1}(Z) = 0\)。在这种情况下,

\[
\log_2 |W| \geq N \log_2 \left( \frac{N_0 - N}{N} \right) + NKC \log_2 D + KD \log_2 \left( \frac{T^L - D}{D} \right) - o(KD)
\]

在渐进意义上匹配命题 2.3 的上界。

备注 3.4(为什么是“3 的总和”)。获得一个是三个组成部分总和的下界非常关键;忽视任何一个可能导致次优的界限(参见附录 A.4 中的示例)。

备注 3.5(为什么是“随机数据”)。研究一个固定数据集 \(Z\) 的下界是不可能的——模型甚至可以在没有任何可训练参数的情况下将 \(Z\) 硬编码到其架构中。因此,考虑关于数据集的分布的下界是必要的。

证明难点。如果名称是固定的(\(N = N_0\))并且有 \(N\) 个知识片段,每个都均匀地从固定集合 \([T]\) 中选择,那么任何能够完美学习这些知识的模型 \(F(W)\) 必须满足 \(\log_2 |W| \geq N \log_2 T\)。将这与定理 3.2 关联起来,我们面临三个主要挑战。首先,模型 \(F\) 可能仅以一定的准确度学习知识,如交叉熵损失所定义。其次,\(N \neq N_0\) 因此需要学习名称——即使是完美的模型在生成名称时也不能达到零交叉熵损失。第三,知识片段之间存在依赖性——值取决于名称和多样性集的选择(即,\(Da\))。定理 3.2 的证明被推迟到附录 F。

4 容量比率

受定理 3.2 的启发,忽略低阶项,我们定义了经验容量比率如下:

定义 4.1。给定一个在 bioD(N,K,C,D,L,T) 数据集 \(Z\) 上训练的有 \(P\) 参数的模型 \(F\),假设它给出 \(p_1 = \text{loss_name}(Z)\),\(p_2 = \text{loss_value}(Z)\),\(p_3 = \text{loss_value1}(Z)\),我们定义它的容量比率和最大容量比率为:

\[
R(F) = \frac{N \log_2 \left( \frac{N_0}{e^{p_1}} \right) + NK \log_2 \left( \frac{D^C}{e^{p_2}} \right) + KD \log_2 \left( \frac{T^L}{D e^{p_3}} \right)}{P}
\]

\[
R_{\text{max}}(F) = \frac{N \log_2 \left( \frac{N_0}{N} \right) + NKC \log_2 D + KD \log_2 \left( \frac{T^L}{D} \right)}{P}
\]

结论:在每个知识点的1000次预训练曝光中(相应地,100次曝光),峰值容量比率始终超过R(F) ≥ 2(相应地,≥ 1),无论模型深度/大小如何。
备注:每个点ℓ-h代表具有ℓ层,h头部和64d维度的GPT2。学习到的知识是通过比特复杂度下限定理3.2计算得出的。附录还包括:图11显示了bioSsimple(N)和bioR(N)数据的类似结果,图14证明了使用int8量化同样适用,图10确认了所有学习到的知识的完全可提取性。对于更大的模型来说?在64个A100s上,GPT2-20-16在bioS(10M)上训练1000次曝光耗费了8.5天,而GPT2-12-32在bioS(20M)上训练100次曝光耗费了2.4天。在我们的合成设置中,我们看不到需要进一步扩大规模的必要。相反,我们更倾向于分配GPU来探索本文中涉及的其他方面。
备注4.2:必须有R(F) ≤ Rmax(F),如果模型是完美的,则获得等号。对于固定的数据集,模型大小的进一步增加不会产生额外的知识,因此随着模型大小P的增加,Rmax(F)接近于零。另一方面,定理3.2意味着,忽略低阶项,如果模型参数是8位的(如int8),那么R(F) ≤ 8。
对于我们的bioS(N)数据,我们通过省略多样性项来定义了一个略微降低的容量比率。(定理3.2的一个版本可以为这个数据集证明,因为它排除了多样性集,所以证明更为简单。这也可能意味着模型完全预知了多样性集的信息(例如,假定一个固定的300所大学名称集)而不将这些知识计入其学习到的比特中。)

定义 4.3。给定一个在 bioS(N) 数据集 \(Z\) 上训练的有 \(P\) 参数的模型 \(F\),假设它给出 \(p_1 = \text{loss_name}(Z)\) 和 \(p_2 = \text{loss_value}(Z)\),其容量比率为(在这里,可以令K = {出生日期,出生城市,大学,专业,雇主,性别},并相应地定义损失值lossvalue(Z)定义为:对于所有n属于N,所有a属于K,有En∈N Pa∈K - log PrR【F⊥(W(Z), n, a, R) = v⋆(n, a)】。)

\[
R(F) = \frac{N \log_2 \left( \frac{N_0}{e^{p_1}} \right) + N \log_2 \left( \frac{S_0}{e^{p_2}} \right)}{P}
\]

和 \(R_{\text{max}}(F)\) 为

\[
R_{\text{max}}(F) = \frac{N \log_2 \left( \frac{N_0}{N} \right) + N \log_2 S_0}{P}
\]

对于 \(N_0 = 400 \times 400 \times 1000\) 和 \(S_0 = 2 \times (12 \cdot 28 \cdot 200) \times 200 \times 300 \times 100 \times 263\)(参见脚注 9)。

备注 4.4。忽略名称,每个人包含大约 \(\log_2(S_0) \approx 47.6\) 位的知识。

5 基本扩展定律

我们首先在 bioS(N) 数据集(见第 2.2 节)上训练了一系列 GPT2 模型,使用混合精度 fp16。训练协议确保每个知识片段被呈现 1000 次,我们称之为“1000 次曝光”。需要澄清的是,这与数据进行 1000 次遍历不同。例如,单次通过 Wiki 数据可能会曝光知识(美国,首都,华盛顿特区)1000 次,而通过 Common Crawl 的单次遍历可能会做到一百万次。我们训练的合成 bioS(N) 数据,为了 1000 次曝光,旨在复制这种情况。(在1000次曝光内,同一个个体很可能会有1000个不同的传记段落详述相同的知识(见第2.2节)。因此,1000次曝光可以在一次浏览中发生。)我们的初步发现如下:(我们在这里专注于深度≥2的GPT2模型,而1层模型显示出略低的容量比率(见图9)。我们的模型选择涵盖了变压器宽度/深度的大多数自然组合,详见附录A。)

结果 1(图 1(a))。当在 bioS(N) 数据集上训练,其中 \(N\) 从 10K 到 10M 不等,对于从 1M 到 0.5B 参数的广泛 GPT2 模型(不论深度或宽度):

(a) 峰值容量比率 \(R(F)\) 一致超过 \(R(F) \geq 2\);

(b) 当 \(R_{\text{max}}(F) \leq 1.8\) 时,模型达到接近完美的知识准确度,即 \(R_{\text{max}}(F) \approx R(F)\);

(c) 在所有模型中,\(R(F) \leq 2.3\)。

备注 5.1。结果 1(a)、1(b) 和 1(c) 阐明了扩展定律的三个不同方面。

- 结果 1(a) 强调了模型的最大容量;然而,如果只有一个模型达到这个峰值,则可能会产生误导。
- 结果 1(b) 通过显示所有具有最大容量 \(R_{\text{max}}(F) \leq 1.8\) 的模型都可以实现这样的最大容量,即 \(R(F) \approx R_{\text{max}}(F)\),进一步加强了这一点。换句话说,这意味着对于包含 \(B\) 位知识的数据集,选择模型大小 \(P \geq B/1.8\) 就足够了。
- 结果 1(c) 进一步强化了这一点,指出没有模型超过容量比率 2.3。

为清晰起见,本文后续结果将仅关注峰值容量比率,了解到类似结果 1(b) 和 1(c) 的观察一致适用。

知识提取。"2bit/param" 的结果不是关于逐字记忆。更好的是,这种知识还可以灵活提取(例如,通过微调使用问题答案 "Anya Forger 的生日是什么?")[3],因此可以在下游任务中进一步操作(例如,比较两个人的生日,或对检索到的知识执行计算等)[4]。这是因为我们的 bioS(N) 数据是知识增强的:英文传记有足够的文本多样性 [3]。我们还在附录 A.2 中验证了这样的知识是可以提取的。

5.1 数据格式 — 多样性和重写

我们在 bioSsimple 和 bioR 上进行了相同的分析。回想一下第 2.2 节,bioSsimple 是 bioS 的一个变体,具有降低的文本多样性(每个人只有一份传记),而 bioR 由 LLaMA2 生成,产生接近真实的人类传记。我们得到以下结果:

结果 2(附录 A.3 中的图 11)。在相同的 1000 次曝光设置下,训练在 bioSsimple 和 bioR 上的 GPT2 的峰值容量比率也大约为 2,尽管稍低。因此:

- 数据多样性(多次重写相同数据)不会损害——有时甚至可以提高——模型的容量

让我们强调结果 2 的重要性。回顾第 2.2 节:

- 在 bioSsimple 数据上训练 1000 次曝光相当于数据的 1000 次遍历。
- 在 bioS 数据上训练 1000 次曝光不到 1 次遍历。
- 在 bioR 数据上训练 1000 次曝光相当于 25 次遍历。

因此,比较 bioS 和 bioSsimple,用一次遍历重写数据 1000 次(如在 bioS 数据中所做)比训练相同数据 1000 次(如在 bioSsimple 数据中所做)更有优势。这是因为,没有数据多样性,模型会浪费容量记忆句子结构,从而导致容量损失。

在真实场景中,像 LLaMA2 这样的工具可以像我们在 bioR 中所做的那样重写预训练数据。通过 40 次重写产生 40 份不同的英文段落,有时会出现(不同的)幻觉内容。这是否需要模型大小增加 40 倍?不,我们在 bioS 和 bioR 之间的比较表明,如果以相同的持续时间训练(每个 40 次重写,每个 25 次遍历),模型的容量比率几乎保持不变,略有下降是因为 LLaMA2 引入的不相关数据。

Allen-Zhu 和 Li [3] 提出,重写预训练数据对于使知识可提取而不是逐字记忆至关重要。(如[3]所示,在像bioSsimple这样的低多样性数据集中,知识可以逐字记忆,但几乎无法为下游任务提取,提取率接近0%。其他研究发现,重写数据可以提高知识的可逆提取性[4, 11]。)然而,他们没有探讨这对模型容量的影响。我们的论文填补了这一空白,表明重写预训练数据不会损害——甚至可能增强——模型的知识容量。

结论:在广泛的K, C, D, L, T范围内,峰值容量比率一致超过R(F) ≥ 2。
备注:这里排除了准确率≤50%的模型,但包括在图12中。我们忽略了N的影响,类似于图1(a),并专注于五个超参数K, C, L, T, D。四个子图中的每一个都在固定其他四个的同时变化一个主要超参数。更多细节见附录A.4。

5.2 参数化扩展定律

我们进一步研究了在 bioD(N,K,C,D,L,T) 数据家族内的扩展定律。与人类传记不同,其中变化仅限于 N,bioD 数据集允许我们更灵活地操纵其余的超参数 K,C,D,L,T。这使我们能够检验这些参数的变化如何影响模型的峰值容量。

结果 3(图 2)。在广泛的值范围内,K,C 从 1 到 50 不等,D 从 10 到 10,000,L 从 1 到 50,T 从 20 到 40,000,我们观察到:

- GPT2 模型的峰值容量比率 \(R(F)\) 一致地超过了 \(R(F) \geq 2\)。

6 训练时间与扩展定律

如果模型未充分训练会怎样呢?例如,可能存在一些情况,在整个预训练阶段,知识只被呈现了 100 次。我们还计算了在 bioS(N) 上仅进行 100 次曝光训练的模型的容量比率。我们的发现可以总结如下:

结果 4(图 1(b))。当在 bioS(N) 数据集上训练,其中 N 从 10K 到 10M 不等,并且在从 1M 到 0.5B 参数的广泛 GPT2 模型中进行了仅 100 次曝光训练时,峰值容量比率 \(R(F)\) 一致地超过了 \(R(F) \geq 1\)。

因此,尽管可能需要 1000 次曝光让模型达到其最大存储容量,但仅进行 100 次曝光训练的结果表明容量损失不超过 2 倍。

在第 10 节中,我们还将考虑极低(例如,1)或极高(例如,1M)曝光次数的知识,并探讨它们如何影响模型的容量,以及这与“标准”知识(例如,经过 100 次曝光的知识)混合时如何影响模型的容量。这将是我们的结果 10 到 12。

7 模型架构与扩展定律

几种变压器架构被广泛采用,其中 LLaMA 和 Mistral 是最值得注意的。我们概述了它们与 GPT2 的主要区别,详细信息见附录 B:
1. LLaMA/Mistral 使用所谓的 GatedMLP 层,即 \(V(\sigma(W_1 x) \cdot (W_2 x))\) 而不是 \(V \sigma(W x)\)。
   
 Shazeer 提出,门控激活可能会带来边际改善的性能。
2. 与 GPT2 不同,LLaMA/Mistral 不绑定权重。
3. 相较于 GPT2/LLaMA,Mistral 有更大的 MLP 层。
4. Mistral 推广了分组查询注意力,而 GPT2/LLaMA 则没有。
5. LLaMA/Mistral 使用与 GPT2 不同的分词器。
6. GPT2 使用 gelu 激活函数,而 LLaMA/Mistral 选择了 silu。
7. GPT2 实现了带有可训练偏置的层归一化。

这些架构变化是否影响模型的最大容量?我们的发现表明,在充分训练的情况下,GPT2 — 当增强了旋转嵌入且没有 dropout — 在知识容量方面表现不会比任何上述架构选择差。我们在下面总结了主要发现,详细信息见附录 B.1:

结论:在1000次曝光设置中,所有模型架构都紧密遵循GPT2的扩展规律——包括LLaMA/Mistral或甚至完全移除MLP层。唯一的非常微小差异观察于小型模型,其中模型的(嵌入+输出层)权重绑定增强了其容量,这一点从图3(c)与图3(b)的对比中显而易见。
结果5(图3)。在1000次曝光设置中,架构并不那么重要:
• LLaMA架构的表现与GPT2相当,尽管对于微型模型(即< 10M)略显不足。这种差异可以通过要求LLaMA架构也绑定权重来缓解,如图3(c)与图3(b)的对比所示。
• 对于Mistral架构也有类似的观察(见图3(d))。
• 将GPT2架构的MLP大小减少1/4,甚至消除所有MLP层,不会影响其容量比率,见图3(e)和图3(f)。这表明,与传统观念相反,注意力层也能够存储知识。
这表明,2bit/param的容量比率是在大多数典型的(仅解码器)语言模型架构中相对普遍的规律

7.1 训练不足的体制和更密切的比较


然而,在训练不足的体制下,架构之间的差异变得明显:
结果6(图4)。在100次曝光设置中:
• 即便对于大型模型,LLaMA架构的容量比率也可能比GPT2差1.3倍,即使在最优调整学习率后。Mistral的结果相似。
• 将GPT2的MLP大小减少1/4对容量比率的影响可以忽略不计。
• 移除MLP会使容量比率降低超过1.5倍。

结论。在100次曝光设置中,LLaMA/Mistral架构可能比GPT2的扩展规律低1.3倍,即便对于大型模型也是如此。将GPT2的MLP层大小减少1/4不会影响其扩展规律,但移除所有MLP层会降低性能。见图5进行更密切的比较。

为了探究LLaMA架构在100次曝光(训练不足)设置中不如GPT2的原因,我们通过逐步将其架构修改回GPT2来仔细检查LLaMA,以识别关键的架构变化。我们从绑定权重开始,因为这在1000次曝光设置中增强了微型LLaMA模型的容量(结果5)。如图5所示:
• 对于大型模型,将LLaMA架构的门控MLP替换为标准MLP(同时保持silu不变)显著提高了LLaMA的容量比率。(如附录B所述,门控MLP层训练起来不够稳定,因此需要更多时间。)
• 对于微型LLaMA模型,回归到GPT2Tokenizer也是必要的,以匹配GPT2的性能,尽管这是一个次要问题。(这仅适用于微型模型,并且特定于我们在此考虑的传记数据:GPT2Tokenizer可能会将1991年之类的年份标记化为一个单独的标记,而LLaMATokenizer则会将其标记化为四个数字标记。)
• 其他修改,如从silu变为gelu或向层规范化添加可训练的偏置,对容量比率的影响不明显(因此我们忽略了那些图表)。

总结,
结果7。在训练不足的体制下(特别是100次曝光设置),除了微型模型外,架构差异通常不影响性能,除外:
• 使用门控MLP减少了模型的容量比率(图5);
• 移除所有MLP层降低了模型的容量比率,尽管显著减小MLP的大小(例如,减少1/4)并不会。

我们提议,我们使用可控的传记数据集进行的实验,可以作为未来架构设计的有价值的测试平台。

结论:从门控MLP切换到标准MLP(左对比右)提高了大型模型的容量比率。对于微型模型,使用GPT2Tokenizer(上对比下)是有益的(这是一个次要点)。
备注:为了进行有力的比较,我们在图5(d)和5(b)中使用了一个学习率选择,但在图5(a)和5(c)中展示了三个选择中的最佳结果。更多细节可以在附录B.2中找到。

结论:从门控MLP切换到标准MLP(左对比右)提高了大型模型的容量比率。对于微型模型,使用GPT2Tokenizer(上对比下)是有益的(这是一个较小的点)。
备注:为了有力的比较,我们在图5(d)和5(b)中使用了一个学习率选择,但在图5(a)和5(c)中呈现了三个选择中的最佳结果。更多细节可以在附录B.2中找到。

8 量化与扩展规律

我们已经使用(混合精度的)16位浮点数训练并测试了模型。如果我们在训练后将它们量化为int8/int4会发生什么?我们使用了受GPTQ论文[10]启发的auto gptq包来进行量化。

结果8(图6)。量化用16位浮点数训练的语言模型(例如,GPT2):
• 到int8对它们的容量影响可以忽略;
• 到int4会使它们的容量减少超过2倍。

因此,即使对于达到每参数2比特峰值容量的模型,量化到int8也不会影响容量。鉴于即使在1000次高质量数据训练曝光后,2比特/参数是最佳的容量比率,我们得出结论,延长训练可能不会进一步提高模型的容量,但量化可以。

由于基于int8的模型有一个绝对容量比率上限R(F) ≤ 8,我们有:
推论8.1。像GPT2这样的语言模型可以超过存储知识的绝对理论极限的1/4。

不幸的是,使用这个量化包,将模型减少到int4显著降低了它的容量(从int8到int4的损失超过2倍)。这表明对于高质量的int4模型,可能需要在训练期间结合量化。

8.1 知识存储在哪里?


我们已经看到,大型语言模型(LLMs)可以有效地将知识压缩进它们的参数空间,即使使用8位参数也能达到每参数2比特。这就引出了一个问题:这样的知识是如何以及在哪里被存储的?我们的初步答案是,知识可以在模型中以一种不太冗余的方式紧凑地存储。单独的MLP层不太可能单独存储知识,因为大小相当的注意力层也对知识存储做出了贡献(参见结果5)。此外,尤其是在接近容量边界的模型中,移除L层模型的最后一个变换器层以“探测”剩余知识显示,“剩余知识”可能会明显少于总量的1 − 1/L。这表明知识不是存储在单独的层中,而是以一种复杂的方式存储的,类似于一个带有组合锁的保险箱,移除一个层可能会消除的知识远超过总知识的1/L。

9 专家混合体系与扩展规律


在现代语言模型中提高效率的一个重要方法是引入稀疏性。专家混合体系(MoE)架构在这方面扮演了至关重要的角色【9, 30】。一个问题出现了:MoE模型在容量比率方面是否有不同的扩展规律?对于一个MoE模型,让P表示模型中所有参数的总数,包括所有专家。由于其固有的稀疏性,有效参数的数量可能显著少于P。我们的主要观察是,即使每层有32个专家,MoE模型的扩展方式与密集模型类似。
考虑例如GPT2,但是其MLP层(d → 4d → d)被32个专家所替换,每个专家遵循d → d → d的配置。这种设置总共使用了64d^2个参数,但在推断期间,每个令牌只使用2d^2个参数(例如,使用topk = 1时)。在包括每个有4d^2参数的注意力层之后,32个专家MoE模型的总参数和有效参数的比率大约是(4d^2+64d^2)/(4d^2+2d^2) ≈ 11.3。
人们可能会想,鉴于在推断期间,模型只使用了少11.3倍的参数,这是否会使模型的容量比率接近11.3倍或更接近1倍?我们展示:
 

结果9(图7)。MoE在存储知识方面几乎完全有效,能够利用所有参数,尽管有稀疏性限制。
具体来说,考虑拥有32个专家的GPT2-MoE模型。如果我们根据总参数数量计算其容量比率并与GPT2比较:
• 在1000次曝光设置中,峰值容量比率下降了1.3倍;以及
• 在100次曝光设置中,峰值容量比率下降了1.5倍。
备注9.1(topk)。结果9即使在最稀疏的设置中也成立,其中topk = 1并且cap factor = 2在MoE路由中。使用topk = 2和cap factor = 1或topk = 2和cap factor = 2时,结果类似——我们在附录D中更多讨论。
备注9.2。通常在实践中观察到,与拥有相同总参数数量的密集模型相比,MoE模型表现不佳。我们证明这种下降不是来自模型的知识存储能力。

10 垃圾数据与扩展规律


并非所有数据都有利于知识获取。例如,虽然维基百科充满了宝贵信息,但网络页面的Common Crawl可能就不是(那些网页上也有许多信息,但它们可能对语言模型的学习不太有用,比如随机产品的序列号)。低质量数据的存在如何影响有用知识容量的扩展规律?为了调查这一点,我们创建了一个混合数据集,在其中:
• 1/8的令牌来源于不同N的bioS(N)(被称为有用数据),以及
• 7/8的令牌来源于大N′= 100M的bioS(N′)(被称为垃圾数据)。
我们在这种混合物上训练模型,确保每个有用数据被看到100次曝光,因此相比于没有垃圾数据的100次曝光(即图1(b)),训练的总时间长了8倍。
我们专注于有用数据(bioS(N)中的数据)的容量比率,并将其与...比较。

结论。在图8(b)至8(e)中,当垃圾数据模仿随机知识时,除非显著增加训练时间,否则容量比率会受到重大影响。在图8(f)中,如果垃圾数据高度重复,则不会有退化。在图8(g)+8(h)中,向有用数据添加特殊符号标记,类似于wikipedia.org这样的域名,可以缓解容量退化。

备注。相比图8(a),图8(e)的训练时间要长80倍,这使得大数据量N的实验变得昂贵(但无论如何也是不必要的)。

图1(b)。(模型从垃圾数据中学习的能力微乎其微;当N=200k时,bioS(N')中的每个人在训练期间只出现了0.2次,或者当N=50k时只出现了0.05次。)垃圾数据出现时,容量比率降低了多少?
结果10(图8(a)-8(e))。当7/8的训练令牌来自垃圾数据(即,N' = 100M的bioS(N' ))时,变压器对有用数据的学习速度显著下降:
• 如果训练相同的100次曝光,容量比率可能会比没有垃圾数据的训练降低20倍(比较图8(b)与图8(a))。
• 即便训练300/600/1000次曝光,容量比率相比没有垃圾数据的100次曝光仍然下降了3倍/1.5倍/1.3倍(比较图8(c), 8(d), 和 8(e) 与图8(a))。
这突显了预训练数据质量的关键重要性:即使垃圾数据完全随机,它也会在足够训练的情况下对模型的知识容量产生负面影响。

相反,如果7/8的数据是N'很小的bioS(N' ),模拟在训练令牌中出现的高度重复知识(例如,“达芬奇画了蒙娜丽莎”以百万种变化出现),这可能不会影响模型对“标准”知识的容量(例如,那些有100次曝光的):
结果11(图8(f))。如果7/8的训练令牌来自高度重复的数据(即,N' = 1K的bioS(N' )),这不会影响有用知识的学习速度:
• 有用数据的100次曝光容量比率保持不变(比较图8(f)与图8(a))。

最后,如果预训练数据的质量较差且难以改善,存在一种备用策略:
结果12(图8(g)+8(h))。当7/8的训练令牌来自垃圾数据(即,N' = 100M的bioS(N' ))时,在每个有用数据开始处添加特殊标记大大提高了容量比率:
• 有100次曝光时,容量比率只降低了2倍(比较图8(g)与图8(a))。
• 有300次曝光时,容量比率与没有垃圾数据的100次曝光扩展规律相匹配(比较图8(h)与图8(a))。

让我们将结果12与实践联系起来。首先,向高可信度数据添加特殊标记是非常实际的:想象在所有维基百科段落的开始处添加域名“wikipedia.org”。(向垃圾数据添加特殊标记意义不大。)(结果12同样适用于为每一份垃圾数据添加一个(唯一的)特殊标记;然而,这可能是无意义的,因为垃圾数据通常来源于各种各样的网站,使得难以分配一个唯一的标识符。)

更一般地,可以设想在每一份预训练数据中添加域名(例如,wikipedia.org)。这将显著增强模型的知识容量,因为结果12证明,语言模型可以自动检测哪些域名含有高质量知识,并优先从中学习。我们强调,模型不需要任何先验知识来识别哪些域名包含高质量知识;这一过程完全是自主的。

11 结论


我们研究了语言模型的扩展规律,特别是模型大小与存储的总知识比特数之间的关系。我们的发现揭示了一个精确的、普遍的扩展规律:一个训练充分的变压器(即,一个其训练损失已经平稳的模型)即使被量化为int8,每个参数也可以存储2比特的知识,这只比信息理论最大值低1/4。我们还考察了这些扩展规律如何受到各种超参数的影响,包括训练时长、模型架构、浮点精度、像MoE这样的稀疏约束,以及数据信噪比。

就知识容量而言,我们的方法为比较模型架构、训练技术和数据质量提供了一个更准确和有原则的平台。我们相信,这个平台可以帮助从业者做出有关模型选择、训练数据准备以及对大型语言模型(LLMs)的进一步理论研究的明智决定。最后,我们的研究代表了迈向回答一个根本问题的初步步骤:语言模型需要多大?我们希望我们的发现将激发在这一领域的进一步研究。最终,我们旨在未来对问题“具有1T参数的语言模型是否足以实现通用人工智能(AGI)?”提供一个有原则的答案。

附录


1 关于GPT2扩展规律的更多内容


在本文中,我们主要关注的是N在10K到20M之间的bioS(N)。值得注意的是,bioS(20M)大约包含1B比特的知识(参考定理3.2)。

GPT2模型。如第2.3节详细描述的,我们提到的原始GPT2模型[26]是在其位置嵌入被旋转嵌入[7, 31]替代,且去除了它的dropout层[33]之后的GPT2。这些修改被广泛认可为在语言模型任务中提升性能的(也参见[2]对此进行的一个控制实验比较)。我们探索了各种GPT2模型大小,保持每头的维度为64。符号GPT2-ℓ-h代表了具有ℓ层,h头和64h维度的(修改过的)GPT2架构。上下文长度设置为512。
关于我们对LLaMA,Mistral和其他架构的规格详情将在附录B中根据需要提供。

模型大小。在这项研究中,我们计算模型大小时排除了嵌入层中所有未使用的令牌。例如,虽然GPT2的嵌入层通常有50256 × (64h)参数,但我们的bioS(N)数据仅使用了3275个令牌(应用GPT2的分词器后),从而将有效的嵌入层大小减少到了3275 × (64h)。这种调整解释了为什么,在本文中,对于bioS数据,通常被认为有124M参数的GPT2small实际上只被计算为有88M参数。
我们选择了一个广泛的GPT2-ℓ-h模型范围,具有实际的ℓ和h值,排除了那些具有相似模型大小的模型。它们的选择详细列在图1中,包括了宽而浅的变压器(例如,GPT2-2-20, GPT2-3-20, GPT2-4-20)和瘦而深的变压器(例如,GPT2-16-4, GPT2-16-8, GPT2-28-20)。作为参考,GPT2 small/med/large分别对应于GPT2-12-12,GPT2-24-16,GPT2-36-20。
我们主要关注的是ℓ ≥ 2的模型,因为1层变压器可能会表现出稍低的容量比率。(对那些感兴趣的人来说,1层变压器包含在图9中,它与图1相同,但包括了这些模型。)

对于N ≥ 2M的数据集bioS(N)的模型大小。在1000次曝光设置中,为了节省计算资源,当探索N = 2M, 5M, 10M, 20M的扩展规律时,我们专注于每个数据集的一个模型大小——特别是GPT2-16-8,GPT2-6-20,GPT2-20-16,GPT2-25-20——因为它们接近每参数2比特的阈值(即,它们满足Rmax(F) ≈ 2)。在这种情况下,我们的关键发现是验证了每参数2比特的容量比率,因此检查有限的模型大小选择就足够了。
对于100次曝光设置,我们评估每个数据集的更广泛模型大小范围。这种方法不仅是因为与1000次曝光设置相比,训练时间减少了十倍,也是为了在100次曝光设置中详细比较模型架构,目的是在更高模型大小下提高精度。

训练参数。我们使用带有余弦学习率调度器的AdamW优化器。这包括1K步的预热,然后学习率从参考率的1降到0.1的余弦衰减。除非另有说明,我们使用混合精度fp16训练。

附录 A.1 基本扩展规律


我们为1000次曝光和100次曝光的bioS(N)数据提出的基本扩展规律分别在图1(a)和图1(b)中展示。

对于1000次曝光设置,由于充分的训练,模型的最终性能对学习率的选择并不非常敏感。以下参数被选用来生成图1(a):
参数1(图1(a))。在GPT2模型上对bioS(N)数据的1000次曝光设置中:
• 对于N = 10K,我们使用wd = 0.02,lr = 0.001,批量大小为24(大约140K训练步骤);
• 对于N = 20K,我们使用wd = 0.02,lr = 0.001,批量大小为48(大约140K训练步骤);
• 对于N = 50K,我们使用wd = 0.02,lr = 0.001,批量大小为96(大约175K训练步骤);
• 对于N = 100K, 200K,我们使用wd = 0.02,lr = 0.001,批量大小为192(大约175K, 349K训练步骤);
• 对于N = 500K, 1M,我们使用wd = 0.01,lr = 0.0005,批量大小为192(大约435K, 870K训练步骤);
• 对于N = 2M,我们使用wd = 0.005,lr = 0.0003,并且批量大小为1536(大约220K训练步骤);
• 对于N = 5M,我们使用wd = 0.002,lr = 0.0003,并且批量大小为1536(大约540K训练步骤);
• 对于N = 10M,我们使用wd = 0.001,lr = 0.0003,并且批量大小为1536(大约1M训练步骤)。

备注 A.1(fp16 vs bf16)。在GPT2上的训练使用混合精度fp16进行。我们也尝试了bf16,结果几乎相同。

备注 A.2(参数)。这些优化参数非常自然,因为通常不可能有一套固定的参数适用于大范围乘法的模型大小。
尤其是:
• 较大的模型大小自然需要更小的学习率。无论批量大小如何,语言模型通常至少需要50K训练步骤。因此,对于小N,我们减少批量大小以确保总的训练步骤超过这个阈值。对于非常大的模型,更倾向于使用较大的批量大小以实现GPU并行。
• 当学习率保持不变时,随着训练步骤增加,应相对减少权重衰减(wd)。数学上,模型权重应该在每Θ(1/(lr×wd))训练步骤“减半”。因此,在较长时间训练时建议减少wd参数。

备注 A.3(GPU数量)。在本文中,我们没有指定GPU数量,因为它不相关。无论是使用64个GPU每个批量大小为24,还是48个GPU每个批量大小为32,或者1536个GPU每个批量大小为1,结果都是相同的。

对于100次曝光设置,需要仔细调整学习率。以下参数被选用来生成图1(b):(注意:N = 10K, 20K不考虑在100次曝光设置中,由于训练过程过短。)
参数

2(图1(b))。在GPT2模型上对bioS(N)数据的100次曝光设置中:
• 对于N = 50K,我们使用wd = 0.01,lr = 0.001,并且批量大小为12;
• 对于N = 100K,我们使用wd = 0.01,lr = 0.001,并且批量大小为24;
• 对于N = 200K,我们使用wd = 0.01,lr = 0.001,并且批量大小为48;(除了GPT2-2-20,使用lr = 0.0005)
• 对于N = 500K,我们使用wd = 0.01,lr = 0.0005,并且批量大小为96;
• 对于N = 1M,我们使用wd = 0.01,lr = 0.0005,并且批量大小为192;
• 对于N = 2M,我们使用wd = 0.01,lr = 0.0003/0.0005/0.001,并且批量大小为384;
• 对于N = 5M,我们使用wd = 0.01,lr = 0.0003/0.0005,并且批量大小为768;
• 对于N = 10M,我们使用wd = 0.01,lr = 0.0002/0.0003/0.0005,并且批量大小为1024;
• 对于N = 20M,我们使用wd = 0.002,lr = 0.0002/0.0003/0.0005,并且批量大小为1536。(除了GPT2-28-20,我们的GPU内存耗尽了,所以将批量大小减少到1280。)

A.2 知识记忆与提取


Allen-Zhu和Li[3]最近发现,尽管模型记忆了知识,这些知识可能无法被提取(例如,通过微调)用于下游任务。验证模型学到的“每参数2比特”知识确实可以被提取至关重要。这一验证是通过对个体的一半应用微调任务(例如,“Anya的生日是什么时候?答案:1996年10月2日”),然后在剩余的个体上测试其性能来实现的。

具体地,在原始的bioS(N)数据上,我们计算每个模型的两个量:
• 可记忆知识准确率(#人数)。
我们将模型应用于原始训练数据,如“Anya Briar Forger出生于”并检查是否可以正确生成“1996年10月2日”。对于每个人,我们评估所有五个属性并计算他们的平均准确率。(我们排除了公司所在城市属性,因为它可以由雇主名称唯一确定,因此不提供额外的知识。)然后我们将这个准确率加总在所有N个人上。(理想情况下,完美模型将使这个“准确率”等于N。)
• 可提取知识准确率(#人数)。
按照[3]中的预训练-微调框架,我们使用LoRA[17]在一半个体上微调任何给定的预训练模型,使用问题-回答文本,如“Anya Briar Forger的生日是什么时候?答案:1996年10月2日。”然后我们测试它在剩下一半个体上的生成准确性。高准确率表明知识不仅被记住,而且还可以灵活地提取用于下游任务。同样,对于每个人,我们评估所有五个属性并计算他们的平均准确率。然后我们将这个加总在所有N/2个人上并乘以2。(再次,一个完美模型将使这个等于N。)

我们的结果展示在图10中。比较图10(a)和图10(b),很明显我们的扩展规律不仅适用于可记忆的知识,而且在很大程度上也适用于可提取的知识。只有在容量比率边界的模型,总准确率才会下降1.2倍。(这种减少是在准确率上,而不是比特数;一个模型可能在比特数上有大量的可提取知识,但在准确率上不是。也可以在可提取设置中计算知识比特数,但为了简洁起见,我们省略了这类结果。)

参数3(图10)。在处理LoRA微调的显著不同大小的模型时,需要调整LoRA等级大小。在[3]中,作者主要对嵌入层使用了等级r' = 128的更新,对查询/值矩阵使用了等级r = 8或16,他们的基础模型是GPT2-12-12或GPT2-12-20。在本文中,我们探索了更广泛的等级选择范围:(r', r) ∈ {(8, 2),(16, 2),(8, 4),(32, 4),(8, 8),(32, 8),(128, 8),(32, 16),(128, 16)},只呈现最佳结果。

(选择最佳的LoRA选项是有理由的,因为我们的目标是确定最大的可提取知识比特数,因此,任何展示出高测试集准确率的LoRA选项都符合我们的目标。)

我们禁用学习率预热,将批量大小设置为96,学习率设置为0.001(随线性衰减至0),权重衰减设置为0.1,并微调75000步。

A.3 其他传记数据集


我们还检查了bioSsimple(N)数据集,它与bioS(N)相同,除了每个个体的知识被存储在六个固定句子的固定排序中(见第2.2节)。Allen-Zhu和Li[3]发现,在这种情况下,知识数据是可记忆的,但几乎0%可提取的。如图11(a)所示,在这些实例中,与图1(a)相比,容量比率略有下降。这意味着,在这种理想设置中,增加数据多样性——通过使用不同的写作模板多次重写相同的知识——不仅增强了模型提取知识的能力,如[3]所指出的,而且,令人惊讶的是,也增加了模型的容量,正如本研究中观察到的那样。

此外,我们探索了类似于bioS(N)但传记段落由LLaMA2生成的半真实数据集bioR(N),每个个体生成40次(使用随机种子和提示来鼓励LLaMA2为每个人生成尽可能多样化的段落)。这导致总共22GB的文本,与维基百科数据的大小相当。
bioR(N)数据的扩展规律在图11(b)中展示,表明对于较大的模型,容量比率略有下降。这一趋势是预期的,因为LLaMA2引入了许多与人物传记无关的细节——通常每次LLaMA2生成的都是不同的无关细节——从而消耗了更多的模型容量。对于较小的模型,下降更为显著,这些模型可能更难理解数据中多样化的英文句子。

参数4(图11)。在两个实验中,我们均遵循在图1(a)中使用的同一组优化器参数,如参数1中详述。

A.4 关于参数化扩展规律的更多内容


在参数化扩展规律中,我们使用了定义2.2中的bioD(N, K, C, D, L, T)数据集。
参数5(图2, 12, 13)。对于bioD数据集上的GPT2模型,我们专注于1000次曝光案例,使用wd = 0.01,lr = 0.0005,并且批量大小为192。

备注 A.4(参数)。与参数1相反,由于我们使用GPT2模型的实验涉及的模型大小范围较窄,不需要变化训练参数。我们已调整N的选择,以确保最优的每参数2比特模型在模型大小方面相互之间的差距不超过20倍。

我们的结果展示在图2(在正文中,为了清晰起见,仅限于准确率≤50%的模型)和图12中(包括所有模型)。

此外,从比特复杂度下限(见定义4.1)

\[N \log_2 \left( \frac{N_0}{e} \right) + NK \log_2 \left( \frac{DC}{e} \right) + KD \log_2 \left( \frac{T}{L} \right)\]

我们还分析了这三个组成部分如何对这个整体下限做出贡献。如图13所示,虽然“值”组成部分通常占主导地位,但对于某些超参数设置,“名称”或“多样性”组成部分也可以很重要。这强调了证明我们的定理3.2下限的重要性,该下限是所有三项的总和。

B 更多关于模型架构


我们探索了语言模型的替代架构选择。

LLaMA/Mistral。值得注意的是,在本文撰写时,LLaMA[32, 33]和Mistral[19]作为流行的、公开可用的大型语言模型脱颖而出。我们强调它们与GPT2(我们定义为具有旋转嵌入且没有dropout)的主要架构差异:
1. LLaMA和Mistral采用带有门控激活的MLP层,使用V(σ(W1x)·(W2x))而不是Vσ(Wx)。Shazeer[29]指出,门控激活似乎能略微提升性能。
2. 与GPT2不同,GPT2将嵌入层和输出(LMHead)层的权重绑定,LLaMA和Mistral则没有。
3. 对于隐藏维度d,GPT2/LLaMA在注意力层有4d^2参数,在MLP层有8d^2参数,而Mistral为其MLP层分配了更大的10.5d^2参数。
4. Mistral提倡分组查询注意力(例如,使用4组,从而将K/V矩阵的大小减少到d^2/4),不同于GPT2。LLaMA除了其非常大的模型,如70B变体外,不倾向于使用多查询注意力。
5. LLaMA和Mistral使用与GPT2不同的分词器,Mistral的分词器与LLaMA的几乎相同。
6. GPT2使用σ = gelu,而LLaMA/Mistral使用σ = silu。
7. GPT2加入了带有可训练偏置的层归一化,而LLaMA/Mistral则没有。

鉴于这些差异,对于LLaMA模型,我们使用符号LLaMA-ℓ-h表示ℓ层,h头和64h隐藏维度;我们省略分组查询注意力,因为LLaMA仅为其70B模型推荐它。对于Mistral,表示为Mistral-ℓ-h,如果h = 0(mod 4),我们启用带4组的分组查询注意力,对于奇数h使用1组,或者其他情况下使用2组。

带有较小MLP的GPT2。Mistral有一个较大的MLP层,通常认为MLP层主要用于存储知识,与注意力层相反。但这真的是这样吗?
为了深入研究,我们检查了GPT2^1/4,即GPT2的MLP层从d → 4d → d减少到d → d → d(因此是其原始大小的1/4),以及GPT2^0,即没有任何MLP层的GPT2。

实验设置。在本节中,当呈现积极结果(如对于GPT2)时,我们尝试坚持一个固定的学习率选择集;但是当呈现负面结果(如对于LLaMA架构)时,我们呈现三个学习率选择中的最佳结果。

B.1 1000次曝光设置


在1000次曝光设置中,我们观察到模型架构选择对扩展规律的影响可以忽略不计。LLaMA, Mistral, GPT2^0, 和 GPT2^1/4架构的结果展示在图3中,其参数选择如下讨论。

参数6(图3)。在1000次曝光设置中,对于LLaMA/Mistral模型,我们使用与参数1中指定的类似参数,但我们选择三个学习率中的最

佳学习率以更好地展示GPT2的表现不会比最佳调整的LLaMA/Mistral模型差:
• 对于N = 10K,我们使用wd = 0.02,lr = 0.0005/0.001/0.002,并且批量大小为24,使用fp16;
• 对于N = 20K,我们使用wd = 0.02,lr = 0.0005/0.001/0.002,并且批量大小为48,使用fp16;
• 对于N = 50K,我们使用wd = 0.02,lr = 0.0005/0.001/0.002,并且批量大小为96,使用fp16;
• 对于N = 100K, 200K,我们使用wd = 0.02,lr = 0.0005/0.001/0.002,并且批量大小为192,使用fp16;
• 对于N = 500K, 1M,我们使用wd = 0.01,lr = 0.0002/0.0003/0.0005,并且批量大小为192,使用fp16;
• 对于N = 2M,我们使用wd = 0.005,lr = 0.0003/0.0005/0.001,并且批量大小为1536,使用bf16;
• 对于N = 5M,我们使用wd = 0.002,lr = 0.0003/0.0005/0.001,并且批量大小为1536,使用bf16;
• 对于N = 10M,我们使用wd = 0.001,lr = 0.0003/0.0005/0.001,并且批量大小为1536,使用bf16。

对于GPT2^0和GPT2^1/4,我们使用与参数1中指定的相同学习率。

备注 B.1(在门控MLP上使用bf16)。正如B.2节讨论的,由于使用了门控MLP,LLaMA和Mistral架构的训练较不稳定,导致在需要时切换到(混合精度的)bf16训练变得必要。

从图3中可以明显看出,除了微型模型外,LLaMA, Mistral, GPT2^0, 和 GPT2^1/4架构在1000次曝光上紧密遵循GPT2的扩展规律。对于参数≤10M的微型模型,绑定模型权重增加了它们的容量(参见图3(c))。这表明,在大多数典型的(仅解码器)语言模型架构中,每参数2比特的容量比率是一个相对普遍的规律。

B.2 100次曝光设置

100次曝光设置揭示了更多引人入胜的比较。我们在图4中将GPT2与各种模型架构进行了对比,并在图5中提供了LLaMA与GPT2架构之间的详细比较。

图4(b)显示,即使对于更大的模型,LLaMA架构的扩展律可能也会比GPT2的扩展律落后1.3倍。

我们深入探讨了这背后的原因。通过调整LLaMA的架构(例如,将GatedMLP换回普通的MLP),如图5所示,我们发现,替换LLaMA的GatedMLP为标准MLP是必要的,以匹配GPT2的扩展律。值得注意的是,为了进行强有力的比较,当使用GatedMLP时,我们从三个学习率中选择最佳结果,而对于标准MLP,类似于GPT2,我们使用单一学习率。对于较小的模型,匹配GPT2需要绑定模型权重并采用GPT2的分词器,尽管这不是很重要。(分词器对模型容量的影响值得注意。例如,LLaMA/Mistral分词器倾向于将出生年份拆分为单个数字的令牌,这样会稍微减慢较小模型的训练速度,而GPT2分词器使用单个令牌表示出生年份,如1991。)

对于其他模型架构,Mistral、GPT20和GPT21/4,在100次曝光设置中的扩展律在图4中展示。图4(c

)证实,由于使用了门控MLP,Mistral架构的表现也不如GPT2。图4(d)揭示,将GPT21/4的MLP层大小减少四分之一对模型容量几乎没有影响。然而,在GPT20中完全移除MLP层显著降低了模型的容量,见图4(e)。

100次曝光设置代表了一个“训练不足”的范式。因此,比较并不是关于一个架构严格比另一个更差(因为它们在1000次曝光设置中达到了类似的容量比率,如图3所示)。我们的发现指出,某些架构显著更易于训练(因此学习知识更快):

- 门控MLP架构降低了模型的学习速度,并且我们观察到使用它时训练的稳定性较差。(例如,对于小于100M的LLaMA/Mistral模型,混合精度fp16训练有时会失败;因此,我们改用混合精度bf16。相反,高达1B的GPT2模型可以使用fp16进行训练。)
- 完全移除MLP层会减慢模型的学习速度,而调整MLP层的大小(例如,从8d²到10.5d²或降至2d²)可能不会有显著影响。

此外,我们尝试在LLaMA的层正则化中启用可训练的偏置,并从silu切换到gelu(以更类似于GPT2),方式类似于图5,但发现这些变化不影响模型的容量。为了清晰起见,我们忽略了这些实验。
下面,我们讨论图4和图5中实验的参数选择。

参数7(图4)。在100次曝光设置中,
(a) 对于在bioS(N)数据上的LLaMA/Mistral模型,为了展示负面结果,我们在每个数据设置中从三个选项中选择最佳学习率:(对于N ≤ 1M,我们也用fp16测试了相同设置,发现结果相似。然而,LLaMA/Mistral模型倾向于在使用fp16时更频繁地失败,因此我们主要使用bf16。)

参数8(图5)。在100次曝光的对照比较实验中,
• 为了展示负面结果(图5(a)和图5(c)),我们从三个选项中选择最佳学习率,与参数4(c)中的GPT20相同。
• 为了展示正面结果(图5(b)和图5(d)),我们使用一套单一的学习率,与参数2相同,但为了更强的比较,将fp16替换为bf16。

C 关于量化的更多信息

我们使用auto gptq包(基于[10])来量化图1中的GPT2模型结果,针对的是bioS数据,以及图2中的GPT2模型结果,针对的是bioD数据。我们简单地使用一小组1000人的传记来执行量化任务。我们的结果在图14中为bioS数据展示,在图15中为bioD数据展示。

结论。将一个混合精度fp16训练的模型量化为int8不会产生变化,但量化为int4会导致容量比损失超过2倍。

观察结果表明:对于bioD数据系列,量化到8位对模型容量的影响微乎其微。
而量化到4位会使得容量减少超过两倍,尤其是对于较大的D(深度)和L(层数),这导致了显著更大的减少,也解释了图15(i)中缺失列的原因。

评论:与图1相比,使用具有32个专家的MoE(混合专家模型)将1000次曝光的容量减少了1.3倍,将100次曝光的容量减少了1.5倍,尽管MoE模型在推理过程中使用的参数数量比原始模型少了11.3倍。对于最佳结果,我们使用了topk=1和容量因子=2;其他变体的结果展示在图17中。

D 关于混合专家模型(Mixture of Experts,MoE)的进一步讨论:


我们使用tutel包来实现GPT2模型上的混合专家(MoE)[18]。在MoE中,参数topk决定了每个标记被路由到的专家数量。一些实践者建议在训练时使用topk=2,在测试时使用topk=1。此外,cap factor参数确保,在有M个专家的情况下,每个专家接收的数据不超过cap factor乘以M的比例。
通常不建议使用topk=1和cap factor=1的配置。因此,为了得到最强的结果,我们在图16中的1000/100次曝光缩放定律中设置了topk=1,cap factor=2。(在测试时,我们将容量因子增加到cap factor=8。)
对于100次曝光的缩放定律,我们还比较了三种配置:(topk, cap factor)=(1, 2),(2, 1),(2, 2),发现它们之间的差异很小,如图17所示。从第7节记得,模型架构的差异通常在训练不足的情况下变得明显;这就是为什么我们选择100次曝光而不是1000次曝光。值得注意的是,对于深度模型,如带有32个专家的GPT2-16-4,(topk, cap factor)=(2, 2)表现最好(在这三者中)。
由于其稀疏性,MoE模型通常需要比密集模型更高的学习率。因此,我们按照以下方式调整优化器参数:
参数9(图16,图17)。在GPT2-MoE模型的1000次曝光设置中,我们略微提高了学习率,同时保持其他参数与参数1几乎相同:

E 更多关于垃圾数据与规模定律

回顾第10节,我们的数据集是混合体,1/8的令牌来自于各种N的bioS(N)(称为“有用数据”),其余7/8来自“垃圾数据”。我们探索了三种情况:

(a) 垃圾数据为N′ = 100M的bioS(N′),代表完全随机的垃圾数据;
(b) 垃圾数据为N′ = 1K的bioS(N′),代表高度重复的数据;
(c) 垃圾数据为N′ = 100M的bioS(N′),但每片有用数据前面都加了一个特殊令牌。(这类似于在数据开头添加像wikipedia.org这样的域名;模型缺乏先验知识,以识别这些特殊令牌数据代表高质量、有用的数据。这取决于模型和训练过程来自主发现这一点。)

为了简化,在每个512令牌的上下文窗口中,我们要么只包含有用数据,要么只包含垃圾数据(由<EOS>令牌分隔)。当在同一上下文窗口中混合有用数据和垃圾数据时,结果类似。在所有三种情况中,我们最初考虑了一个100次曝光的训练设置,其中有用数据在预训练期间每个接受100次曝光——因此,训练令牌的总数大约是图1(b)中的8倍(我们的规模定律是针对没有垃圾数据的100次曝光案例)。

在案例(A)中,呈现一个负面结果,我们还探索了300次曝光、600次曝光和1000次曝光的训练设置。鉴于1000次曝光设置需要的训练令牌是图1(b)的48倍,或是图1(a)的4.8倍,我们限制了实验到bioS(N)且N ≤ 200K,以节约计算资源。同样,对于300次曝光和600次曝光,我们只考虑了N ≤ 500K。

在案例(B)中,呈现一个正面结果,我们将考虑限制在100次曝光且N ≤ 1M的情况。

在案例(C)中,呈现了一个中等正面的结果,我们探索了100次曝光和300次曝光的设置,在300次曝光的设置中,我们再次将N限制在≤ 500K。

总的来说,由于100次、300次、600次和1000次曝光设置中训练持续时间(即训练令牌数量)的显著差异,我们不得不相应地调整它们的批量大小、权重衰减和学习率。这些调整在下面讨论。

参数10(图8)。我们遵循备注A.2中提供的一般建议,为图8中显示的所有实验选择参数。对于负面结果(例如,图8(b),8(c)),我们选择了较小的批量大小,以增加可训练步骤的数量,并探索了更广泛的学习率选项。相反,对于正面结果(例如,图8(f),8(e)),我们有时选择了更大的批量大小,以便于从更快的GPU加速训练时间中受益,并考虑了更窄的学习率选择范围。总的来说,我们已经细致地选定参数,尽可能地加强负面结果,同时有意地不将正面结果优化到同样程度。这种方法确保了更强的比较,并有效地传达了本节的关键信息。具体来说,

- 对于图8(b)即100次曝光的案例(a):
  - 对于N=50K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为12;
  - 对于N=100K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为24;
  - 对于N=200K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为48;
  - 对于N=500K,我们使用wd=0.005,lr=0.00005/0.0001/0.0002/0.0003/0.0005,批量大小为192;
  - 对于N=1M,我们使用wd=0.005,lr=0.00005/0.0001/0.0002/0.0003/0.0005,批量大小为192。

- 对于图8(c)即300次曝光的案例(a):
  - 对于N=50K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为96;
  - 对于N=100K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为192;
  - 对于N=200K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为192;
  - 对于N=500K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为192。

- 对于图8(d)即600次曝光的案例(a):
  - 对于N=50K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为384;
  - 对于N=100K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为384;
  - 对于N=200K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为384;
  - 对于N=500K,我们使用wd=0.002,lr=0.0003/0.0005/0.001,批量大小为768。

- 对于图8(e)即1000次曝

光的案例(a):
  - 对于N=50K,我们使用wd=0.01,lr=0.0005/0.001,批量大小为384;
  - 对于N=100K,我们使用wd=0.01,lr=0.0005/0.001,批量大小为768;
  - 对于N=200K,我们使用wd=0.01,lr=0.0005/0.001,批量大小为1536。

- 对于图8(f)即100次曝光的案例(b):
  - 对于N=50K,我们使用wd=0.01,lr=0.0003/0.0005,批量大小为12;
  - 对于N=100K,我们使用wd=0.01,lr=0.0003/0.0005,批量大小为24;
  - 对于N=200K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为96;
  - 对于N=500K,我们使用wd=0.01,lr=0.0003/0.0005,批量大小为192;
  - 对于N=1M,我们使用wd=0.01,lr=0.0003,批量大小为192。

- 对于图8(g)即100次曝光的案例(c):
  - 对于N=50K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为12;
  - 对于N=100K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为24;
  - 对于N=200K,我们使用wd=0.01,lr=0.0002/0.0003/0.0005/0.001,批量大小为96;
  - 对于N=500K,我们使用wd=0.005,lr=0.0002/0.0003/0.0005,批量大小为192;
  - 对于N=1M,我们使用wd=0.005,lr=0.0002/0.0003/0.0005,批量大小为192。

- 对于图8(h)即300次曝光的案例(c):
  - 对于N=50K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为96;
  - 对于N=100K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为192;
  - 对于N=200K,我们使用wd=0.01,lr=0.0003/0.0005/0.001,批量大小为192;
  - 对于N=500K,我们使用wd=0.005,lr=0.0003/0.0005/0.001,批量大小为384。

F 证明定理3.2

我们提出了一个关键的引理,它建立了编码随机变量所需的位复杂度,这些随机变量基于这些变量与特定参考值匹配的概率。

引理 F.1. 设 Q1, ..., Qk 是固定集合(我们称之为域),并假设对于每个 i ∈ [k],Qi 是从其对应的域 Qi 中独立且随机选择的。记 Q = (Q1, ..., Qk) 并将 Q 视为训练数据。

假设存在一个函数 W(Q) ∈ W,我们将其视为从训练数据 Q 计算(即,训练)出的模型参数。

此外,考虑一个评估函数 Fi,它预测
∀i ∈ [k]: Pi = Fi(W(Q), Q1, Q2, ···, Qi−1, R) 与 pi(Q)
定义 = Pr
R
[Pi = Qi
| Q] 。
这里,F 由 W(Q) 参数化,并且可能依赖于先前的数据 Q1, ..., Qi−1,以及新的随机性 R。然后,可以得出
log |W| ≥ X
i∈[k]
log

引理F.1的证明。由于(F.1)的第二个不等式显然源于詹森不等式,我们只需证明第一个不等式。

当 i = 1 时,我们有 P1 = F1(W(Q), R),并且可以通过一个简单的计数论证来证明引理,使用的属性是∀R, P1 = F1(W(Q), R) 最多有 |W| 个值的选择。

当 i ≥ 2 时,我们可以将数据点 Q1, Q2 合并为一个新的数据点 Q',其域 Q' = Q1 × Q2。我们可以通过对函数 F1, F2 抽样 R1 来生成 P1 = F1(W(Q), R),然后独立抽样 R2 来生成 P2 = F2(W(Q), Q1, R),从而构造 P' = (P1, P2)。我们知道
PrR1,R2[P' = Q'| Q] = PrR1[P1 = Q1 | Q] PrR2[P2 = Q2 | Q] = p1(Q) · p2(Q)。现在引理通过以下等式得到证明:
log(p1(Q)|Q1|) + log(p2(Q)|Q2|) = log(p1(Q)p2(Q)|Q1||Q2|)。□

F.1 预热示例


首先让我们看看引理 F.1 的两个预热应用。

仅值。设 g1, ..., gN ∈ [T],其中每个 gi 是从 [T] 中独立同分布(i.i.d.)均匀随机选择的。将这些视为值。假设一个由 W 参数化的模型,是在训练数据 Z = 上训练的。

立即改变基数就得出了一个位复杂度的下界 \( \log_2 |W| \ge N \log_2 \frac{T}{e} \)。随着损失趋近于零,这与位复杂度的上界相匹配。

仅名称。设 \( g_1, ..., g_N \in [N_0] \) 是从 \( [N_0] \) 中均匀随机采样且不替换的 N 个不同元素,被视为名称。假设一个由 W 参数化的模型 f,是在数据集 Z = 上训练的。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值