Scaling Laws with Vocabulary: Larger Models Deserve Larger Vocabularies
Scaling Laws with Vocabulary: Larger Models Deserve Larger Vocabularies
作者/机构: Chaofan Tao1,2, Qian Liu2†, Longxu Dou2†, Niklas Muennighoff 3,4, Zhongwei Wan5, Ping Luo1, Min Lin2, Ngai Wong1†
1香港大学 2Sea AI Lab 3Contextual AI 4斯坦福大学 5俄亥俄州立大学
A1 主要贡献
大型语言模型(LLM)的缩放研究主要集中在模型参数和训练数据大小上,而忽略了词汇表大小的作用。本文旨在探究词汇表大小如何影响LLM的缩放法则,并回答核心研究问题:对于一个LLM而言,计算最优的词汇表大小是多少?
核心问题与研究目标:
现有的缩放法则通常忽略词汇表大小的影响,导致当前LLM的词汇表大小存在显著差异(例如,Llama2-7B使用32K词汇表,而参数量相似的Gemma-7B则采用256K)。这种差异引发了对计算最优词汇表大小的探究。直观上,最优词汇表大小不应过大(导致稀有词元欠拟合)也不应过小(影响分词效率和概念覆盖范围)。因此,本文的目标是量化词汇表对缩放法则的影响,并为给定计算预算预测最优词汇表大小。
创新点与主要贡献:
1. 提出归一化损失函数:为公平比较不同词汇表大小的模型,本文提出了一种归一化的损失函数(unigram-normalized loss),消除了词汇表大小对损失值的直接影响。
2. 提出三种互补的预测方法:
* 方法1(基于IsoFLOPs的幂律估计):通过在相同FLOPs预算下训练不同词汇表配置的模型,拟合出FLOPs与非词汇表参数、词汇表参数和训练数据之间的幂律关系。
* 方法2(基于导数的估计):提出一种基于导数的方法,通过求解FLOPs关于词汇表大小的导数的零点来估计最优词汇表大小。
* 方法3(损失公式的参数化拟合):修改Chinchilla缩放法则,将词汇表纳入其中,并拟合一个参数化公式来联合预测非词汇表参数、词汇表参数和训练字符数对归一化损失的影响。该方法不仅适用于计算最优场景,还能预测次优场景(如“过训练”或“欠训练”)下的最优词汇表。
-
核心发现与预测:
- 研究发现,最优词汇表参数($N_{v}^{opt}$)与非词汇表参数($N_{nv}$)之间存在幂律关系:$N_{v}^{opt} \propto N_{nv}^{\gamma}$,其中 $\gamma \approx 0.83 < 1$。这意味着词汇表参数的增长速度应慢于非词汇表参数。
- 大多数现有LLM的词汇表大小配置不足。例如,预测Llama2-70B的最优词汇表大小应至少为216K,是其现有32K词汇表的7倍。
-
实验验证:
- 在3B参数规模的模型上进行了实证验证。结果表明,在计算最优、数据不足(“欠训练”)和数据过量(“过训练”)等多种情况下,采用本文预测的最优词汇表大小的模型,在相同的FLOPs预算下,其下游任务性能均优于采用传统词汇表大小(如32K)的基线模型。
A3 背景知识
2.1 缩放法则
计算预算分配。缩放法则考虑一个以FLOPs为单位的计算预算$C$。目标是在模型参数$N$和训练词元数$D$之间最优地分配这个计算预算【索引30,Scaling laws for neural language models,2020,arXiv】、【索引6,Explaining neural scaling laws,2021,arXiv】、【索引26,Training compute-optimal large language models,2022,arXiv】、【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】。这可以表示为:
$$(N^{\mathrm{opt}}, D^{\mathrm{opt}}) = \arg \min_{N, D} \mathcal{L}(N, D) \quad \text{s.t. FLOPs}(N, D) = C,$$语言建模损失。遵循Radford等人【索引51,Improving language understanding by generative pre-training,2018】的工作,评估语言模型时通常使用语言建模损失函数,可以写成:
$$\mathcal{L} = -\frac{1}{T} \sum_{i=1}^{T} \log p(w_i | w_{1:i-1}, V),$$其中,$p(w_i|w_{1:i-1}, V)$ 是在给定上下文$w_{1:i-1}$和词汇表大小为$V$的分词器的情况下,词$w_i$的输出概率。通常,较低的$\mathcal{L}$表示语言模型性能更好。然而,由于$\mathcal{L}$对$V$的依赖性,它不能用于比较具有不同词汇表大小的语言模型。因此,我们在§2.2中提出了一种调整。拟合缩放法则通常需要训练具有不同配置的各种模型【索引23,Language models scale reliably with over-training and on downstream tasks,2024,arXiv】。一种常见的方法是选择几个计算预算,并为每个预算训练具有不同$N$和$D$的模型,以找到最佳模型,即损失最低的模型(“IsoFLOPs”)【索引26,Training compute-optimal large language models,2022,arXiv】。使用拟合技术,我们可以估计一个函数,将计算预算映射到$N$和$D$的最优分配。
2.2 带词汇表的缩放法则
调整缩放法则属性。由于先前的工作通常假设词汇表大小是固定的,我们不能直接采用其缩放法则中的属性和评估指标。因此,我们详细说明了几个考虑因素,以便研究词汇表缩放法则。缩放法则通常处理模型参数($N$)和训练词元数($D$)这两个属性【索引26,Training compute-optimal large language models,2022,arXiv】、【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】。我们针对词汇表大小的分析对它们进行了调整。(1) 我们将总模型参数($N$)分解为非词汇表参数($N_{nv}$)和词汇表参数($N_v$)。为了理解词汇表参数的重要性,我们将其与其他模型参数分离开来,其中 $N = N_{nv} + N_v$。我们使用 $N_v = Vd$ 来表示输出层中的词汇表参数1。值得注意的是,为了改变$N_v$,我们只改变词汇表大小$V$,并根据经验将嵌入维度$d$视为基于$N_{nv}$给定的,详见§A.7.2。这是基于Kaplan等人【索引30,Scaling laws for neural language models,2020,arXiv】的观察,即具有不同深度-宽度比的模型性能会收敛到单一趋势。我们还在§A.6中从参数增长的角度提供了为什么我们分解模型参数的进一步分析。(2) 我们用训练字符数($H$)而不是词元数($D$)来衡量数据。词元数取决于分词器的词汇表。通过研究训练字符数,我们可以更好地看到数据量如何影响性能,而不管词汇表大小如何。
从训练字符数(H)到词元数(D)的映射。如上所述,我们以训练字符数($H$)来衡量训练数据。然而,为了将我们的发现与现有的缩放法则研究【索引26,Training compute-optimal large language models,2022,arXiv】、【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】联系起来,我们需要能够从$H$映射到$D$。这个映射是分词器的压缩率,可以通过$D/H$计算。分词器表示$H$所需的词元越多,$D$就越大,因此压缩率越低。我们开发了一个简单的函数$f(V)$,仅从所选的词汇表大小$V$来估计这个比率。具体来说,我们发现对$V$的对数值使用二次函数可以实现准确的预测:
$$f(V)=a\log^{2}(V)+b\log(V)+c$$通过拟合$V$从1K到1024K的多个分词器,我们得到 $a = 0.0064$, $b = -0.1581$ 和 $c = 1.2047$。我们发现我们的函数能准确预测压缩率,具有较低的相对均方根误差(RMSE)和较高的决定系数($R^2$)。在§A.9中,我们可视化了拟合结果,并表明我们的近似方法适用于不同的分词器,并且对不同的$V$具有鲁棒性。在我们所有的主要实验中,我们使用BPE算法进行分词【索引59,Neural Machine Translation of Rare Words with Subword Units,2016,ACL】。
词汇表无关的损失函数。为了公平评估$V$不同的模型,公式2中常用的语言模型损失是不合适的。用较大$V$训练的模型自然会有更高的损失,因为词汇表中有更多可能性需要预测。然而,这并不意味着模型更差。因此,我们需要根据词汇表大小对损失进行归一化。我们将unigram-normalized度量【索引54,Unigram-normalized perplexity as a language model performance measure with different vocabulary sizes,2020,arXiv】重新表述为一个损失函数。假设我们有一个长度为$T$的序列$w_{1:T}$,我们设计的unigram-normalized语言模型损失为:
$$\mathcal{L}_{u}=-\frac{1}{T} \sum_{i=1}^{T} \log \frac{p\left(w_{i} | w_{1: i-1}, V\right)}{p\left(w_{i} | V\right)},$$其中$p(w_i|V)$是在给定词汇表大小为$V$的分词器的情况下,词$w_i$在分词后语料库中的频率。该损失表示了上下文感知的语言模型相比于无上下文的unigram模型所提供的概率提升,使我们能够评估语言模型的效能。基于先前工作【索引54,Unigram-normalized perplexity as a language model performance measure with different vocabulary sizes,2020,arXiv】的理论,对于一个给定的、具有固定非词汇表部分的模型,归一化损失$L_u$在不同词汇表大小下保持一致。$L_u$的差异来自于语言模型本身的能力。与$\mathcal{L}$相比,$L_u$的值要小得多,并且可以为负,因为$L_u$增加了一个负项$\frac{1}{T} \sum_{i=1}^{T} \log p(w_i|V)$。也可以使用平均每字符比特数(BPC),一个常见的文本压缩度量【索引27,Compression Represents Intelligence Linearly,2024,CoRR】,作为词汇表无关的损失。唯一的区别在于归一化方式。BPC表示语料库上原始的每字符语言模型损失,而我们的$L_u$等同于按每个字符频率归一化的每字符语言模型损失。在实践中,我们发现BPC和$L_u$这两个度量呈现出显著的正相关关系,这在实验上验证了我们的说法,详见§A.5。
3 分析:为什么最优词汇表大小受计算限制
分析1:固定归一化损失的视角。根据Kaplan等人【索引30,Scaling laws for neural language models,2020,arXiv】的研究,Transformer模型的FLOPs($C$)可以估算为$C \approx 6ND$,可以重写为:
$$C \approx 6ND \approx 6(N_{\mathrm{nv}}+Vd)Hf(V),$$其中$N = N_{nv} + N_v$,$D = Hf(V)$,基于§2.2。模型性能随着词汇表大小的增长先增后减的原因是:(1) 当$V$较小时,增加词汇表大小可以轻易地通过$f(V)$提高分词效率。随后,模型可以在固定数量的词元内学习更多的字符,从而提高模型性能。(2) 当$V$非常大时,分词效率的增益减小,而扩大词汇表带来的参数在有限的数据下无法得到充分训练,导致模型性能下降。我们在§A.1中提供了扩展的推导,并在图3(左)中展示了相应的FLOPs如何随词汇表大小变化。
分析2:固定FLOP预算的视角。在给定固定FLOPs预算的情况下,我们分离出FLOPs并研究词汇表如何影响损失。为简便起见,我们训练具有固定$N_{nv}$和不同词汇表大小的模型,训练相同的步数,然后使用插值法根据观察到的FLOPs和损失点来预测当FLOPs达到预算时的损失。对于每个预算,我们采用一组总参数相似但词汇表大小不同的模型。在图3(右)中,我们绘制了损失与词汇表大小的关系。它揭示了随着FLOPs预算的增加,对应于损失曲线上最低点的词汇表大小也在增加。这表明,随着计算资源的增多,LLM可以利用更大的词汇表来降低损失。然而,仅仅扩大词汇表并不总是能降低损失。对于固定的FLOPs预算,损失随着词汇表的增加先是减少,然后开始上升,这表明词汇表存在一个最优点。
A2 方法细节
4.1 方法1:通过IsoFLOPs估计幂律
实验设计。我们定义了6组模型,其非词汇表参数$N_{nv}$从33M到1.13B不等。在每一组内,我们只改变词汇表大小$V$,范围从4K到96K,并在相同的FLOPs预算下评估不同的模型。我们在一个留出的验证数据集上评估归一化损失$L_u$。这种方法使我们能够直接回答这个问题:对于给定的FLOPs预算,非词汇表参数、词汇表参数和训练数据的最优分配是什么?
实验设置。给定一个特定的$N_v$,嵌入维度$d$是固定的,因此$N_v$随着$V$的增加而增加。对于所有实验,我们从SlimPajama数据集【索引61,SlimPajama: A 627B token cleaned and deduplicated version of RedPajama,2023】的不同领域中均匀采样训练数据。所有其他超参数都是固定的,更多细节在§A.7中。
拟合过程。我们为每个FLOPs预算选择具有最小$L_u$的数据点,所有运行情况如图4所示。这些点是($N_{nv}$, $N_v$, $H$)的计算最优分配。遵循Kaplan等人【索引30,Scaling laws for neural language models,2020,arXiv】和Hoffmann等人【索引26,Training compute-optimal large language models,2022,arXiv】的方法,我们假设最优词汇表参数$N_v$与FLOPs $C$满足幂律关系,就像非词汇表参数和训练数据量一样。具体来说,$N_{nv} = k_1C^{\alpha_1}$,$N_v = k_2C^{\alpha_2}$以及$H = k_3C^{\alpha_3}$。由于模型大小和训练数据应为计算最优训练而同等扩展【索引26,Training compute-optimal large language models,2022,arXiv】,我们设置$\alpha_1 = \alpha_3$。由于我们的新属性$V$显著增加了可能的实验配置数量,我们采用数据点间的插值来廉价地获得更多配置。拟合的细节在§A.7.4中。
结果与应用。在图5中,我们展示了拟合的幂律关系:$N_{nv} = 0.08 * C^{0.50}$,$N_v = 0.20 * C^{0.42}$ 和 $H = 6.42 * C^{0.50}$,其中$C$是FLOPs预算。较低的RMSE和较高的$R^2$值表明我们的拟合效果很好。给定一个特定的FLOPs预算,我们可以利用上述关系来获得最优分配($N_{nv}$, $N_v$, $H$)。我们还得出以下结论:(1) LLM是数据饥渴的。与非词汇表参数$N_{nv}$相比,从业者应将更多的计算分配给训练数据【索引80,To repeat or not to repeat: Insights from scaling llm under token-crisis,2024,Advances in Neural Information Processing Systems】、【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】。(2) 词汇表参数与FLOPs呈幂律关系($N_v \propto C^{0.42}$)。随着模型计算密集度的增加,更大的词汇表增强了模型理解更多样化文本的能力,因此词汇表大小对扩展至关重要。(3) 词汇表参数$N_v$的扩展速度应慢于非词汇表参数$N_{nv}$。这种差异可以从它们的幂律指数中看出,即 $\gamma = 0.42/0.50 = 0.84 < 1$。我们推测其原因是:一旦通过大词汇表建立了一个足够丰富的嵌入空间,扩展非词汇表参数以通过Transformer模块学习复杂的句法和语义结构就变得更为关键。
4.2 方法2:基于导数的快速估计
基本思路。我们提出了一种替代方法,利用对FLOPs本身估计的见解。先前的工作【索引26,Training compute-optimal large language models,2022,arXiv】、【索引30,Scaling laws for neural language models,2020,arXiv】通常考虑一个固定的FLOPs计算预算,然后通过找到模型参数$N$和训练词元$D$的最优分配来最小化损失。在这里,我们遵循最近的工作【索引57,Beyond chinchilla-optimal: Accounting for inference in language model scaling laws,2023,arXiv】,反其道而行之。我们的目标是通过对词汇表大小$V$进行最优分配,找到达到特定损失$L_u(N_{nv}, V, H) = \ell$所需的最小FLOPs:
$$V = \mathop{\arg\min}_{V | \mathcal{L}_u(N_{\text{nv}}, V, H) = \ell} C(N_{\text{nv}}, N_v, H).$$推导过程。通过计算FLOPs $C$相对于$V$的最小点,即通过导数:
$$\frac{\partial C}{\partial V}=6 H\left[\left(N_{\mathrm{nv}}+V d\right) \frac{2 a \log (V)+b}{V}+\left[a(\log (V))^{2}+b \log (V)+c\right] d\right],$$我们可以估计在假设能够达到特定损失$L_u(N_{nv}, V, H) = \ell$的情况下的最优$V$。参数$a, b, c$可以很容易地通过构建$f(V)$(§2.2)获得。理论上,只要提供了非词汇表参数$N_{nv}$,就可以通过求解$\frac{\partial C}{\partial V} = 0$的解来数值搜索$V$。更多细节在§A.1中。
应用方法。当计算分配接近最优时,损失与FLOPs预算呈现幂律关系,如缩放法则【索引30,Scaling laws for neural language models,2020,arXiv】所述。这种关系使我们能够使用FLOPs作为观察最优词汇表参数缩放行为的可靠代理。在实践中,我们可以首先在低成本设置下确定一个经验上的最优词汇表大小(例如,在小模型上找到计算最优的词汇表参数)。然后,我们可以根据$\gamma$按比例缩放最优词汇表参数。具体来说,我们为不同的非词汇表参数$N_{nv}$获得一组基于导数的最优词汇表参数$N_v$,表示为$\{(N_{nv}^i, N_v^i)|i=1, \dots, n\}$。然后,我们使用幂律函数$N_v \propto N_{nv}^\gamma$来拟合$N_{nv}$和$N_v$之间的关系。这得到了缩放方程:$N_v/N_v^0 = (N_{nv}/N_{nv}^0)^\gamma$,其中$N_{nv}^0$是一个小模型(例如33M),$N_v^0$是搜索到的最优词汇表参数。通过结合导数得出的$\gamma$和在小模型上的经验解,我们可以估计最优词汇表:
$$N_{\mathrm{v}}^{\mathrm{opt}}=N_{\mathrm{v}}^{0} *\left(\frac{N_{\mathrm{nv}}}{N_{\mathrm{nv}}^{0}}\right)^{\gamma},$$其中,经过我们的拟合,缩放比例$\gamma = 0.83$。与方法1中的观察一致,我们发现非词汇表参数的扩展速度应快于词汇表参数,以实现最优分配。
4.3 方法3:损失公式的参数化拟合
损失公式设计。最后,我们直接预测给定非词汇表参数、词汇表参数和训练字符数量下的损失。然后,可以通过找到损失相对于词汇表的最小点来预测最优词汇表配置。遵循Hoffmann等人【索引26,Training compute-optimal large language models,2022,arXiv】使用的经典风险分解,我们设计了依赖于词汇表的损失公式:
$$\mathcal{L}_{u}=-E+\frac{A_{1}}{N_{\mathrm{nv}}^{\alpha_{1}}}+\frac{A_{2}}{N_{\mathrm{v}}^{\alpha_{2}}}+\frac{B}{D^{\beta}},$$其中$D = Hf(V)$。第一项捕捉了理想生成过程的归一化损失。随后的项分别反映了非词汇表参数、词汇表参数和训练数据量对损失的影响。$E, A_1, A_2, B, \alpha_1, \alpha_2, \beta$是学习得到的参数。
拟合过程。我们使用为§4.1中的实验收集的点($N_{nv}$, $N_v$, $H$)。请注意,我们不仅考虑每个FLOPs预算下损失最低的点,因为我们希望预测任何($N_{nv}$, $N_v$, $H$)组合的损失。我们遵循Muennighoff等人【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】添加了约束$\alpha_1 = \beta$。我们还遵循Hoffmann等人【索引26,Training compute-optimal large language models,2022,arXiv】的做法,过滤掉了FLOPs非常小的点。拟合得到$A_1 = 1.831$, $A_2 = 0.196$, $B = 2.124$, $E = 5.533$, $\alpha_1 = \beta = 0.447$, $\alpha_2 = 0.671$。详细的拟合过程写在§A.7.4中。
应用方法。在拟合了公式8中的参数后,可以通过在FLOPs预算的约束下,找到关于词汇表大小的最低损失来获得最优词汇表大小。例如,给定$N_{nv}$和FLOPs预算$C$,用$C/(6(N_{nv} + N_v))$替换[$Hf(V)$],并通过数值搜索找到$\frac{\partial L_u}{\partial V} = 0$的解,我们就可以得到预测结果。$\frac{\partial L_u}{\partial V}$的细节写在§A.2中。请注意,所有提出的方法都可以用于同时优化分配($N_{nv}$, $N_v$, $H$),而方法3在预测当($N_{nv}$, $H$)不遵循Chinchilla定律【索引26,Training compute-optimal large language models,2022,arXiv】(即等比例缩放定律)时的局部最优$N_v$方面更为灵活。原因在于,方法3中的损失公式不仅考虑了在给定训练预算下达到最优的($N_{nv}$, $N_v$, $H$)组合。通过在方法3中固定$N_{nv}$并改变$C$,我们可以预测不同训练字符量下的局部最优词汇表大小。这一特性使得方法3更有价值,因为现代LLM【索引70,Llama 2: Open foundation and fine-tuned chat models,2023,arXiv】、【索引67,Gemma: Open models based on gemini research and technology,2024,arXiv】、【索引3,SantaCoder: don’t reach for the stars!,2023,arXiv】、【索引4,The falcon series of open language models,2023,arXiv】、【索引7,DeepSeek LLM: Scaling Open-Source Language Models with Longtermism,2024,CoRR】通常利用过度充足的训练数据来构建推理成本相对较低的强大模型。
实际场景下的预测。在图6中,我们出于实际原因,移除了参数和训练数据等比例缩放的假设【索引26,Training compute-optimal large language models,2022,arXiv】。然后,我们预测了局部最优的词汇表参数。可以观察到,词汇表参数的分配通常被低估了。
A4 实验结果
预测更大模型的分配。表1报告了基于所提出的三种方法预测的最优词汇表参数和大小,其中训练数据量被最优分配,即与非词汇表参数等比例缩放【索引26,Training compute-optimal large language models,2022,arXiv】。与图1所示的趋势一致,所有提出方法的预测都非常接近。$N_{nv}$的缩放速度应该快于$N_v$。值得注意的是,主流LLM通常分配给词汇表的参数少于最优值。然而,社区正开始转向更大的词汇表,例如Llama3【索引41,Meta LLaMA-3: The most capable openly available LLM to date,2024】的词汇表大小从Llama2【索引70,Llama 2: Open foundation and fine-tuned chat models,2023,arXiv】的32K增加到128K。然而,扩展数据仍然是最关键的部分,解决数据稀缺问题应成为未来工作的重点【索引72,Will we run out of data? an analysis of the limits of scaling datasets in machine learning,2022,arXiv】。
表1:我们报告了在给定Nnv的情况下,由三种提出的方法预测的最优词汇表参数Nv和词汇表大小V。我们假设训练FLOPs被最优分配,即非词汇表参数和训练数据被等比例缩放。“App”表示方法。
2.87B模型上的实验验证。为了经验性地验证我们的预测,我们在一个计算最优的训练FLOPs预算下训练了$N_{nv} = 2.87B$的模型,并使用lighteval 2进行评估。对于基线模型,我们使用常见的词汇表大小$V = 32K$。另一个模型使用由方法3预测的最优词汇表大小$V^{opt}$。在表2中,我们显示了根据我们的词汇表预测进行分配的模型在多个下游任务上取得了更好的性能。这验证了我们的预测在更大规模上仍然成立。
表2:Nnv = 2.87B模型的零样本性能比较,比较了常用的V=32K和我们预测的最优词汇表Vopt。我们考虑训练数据数量与非词汇表参数等比例缩放的场景。我们报告了准确率和标准差(百分比)。准确率经过归一化处理:预测的似然度除以每个选项的长度,以消除文本长度对预测的影响。
数据稀缺和过量情况下的实验。我们之前的实验主要关注训练计算预算是主要约束的设置,我们寻求将其最优地分配给参数和训练数据。这是缩放法则研究中的典型设置【索引30,Scaling laws for neural language models,2020,arXiv】、【索引26,Training compute-optimal large language models,2022,arXiv】、【索引52,Scaling language models: Methods, analysis & insights from training gopher,2021,arXiv】。然而,在现实世界中,我们经常处理数据稀缺(“数据受限【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】”)的情况,这迫使我们进行次优训练,或者我们希望利用过量数据来训练一个使用成本更低的小型模型【索引84,Tinyllama: An open-source small language model,2024,arXiv】。为了验证我们的方法3可以处理这些实际场景,我们比较了$V = 32K$的模型和由方法3预测的词汇表大小为$V^{opt}$的模型。如表3所示,我们的预测通过仅调整不同FLOPs预算下的词汇表大小,实现了更好的模型性能。
表3:Nnv = 2.87B模型在欠训练或过训练时的零样本性能比较,比较了常用的V=32K和我们预测的最优词汇表Vopt。
最优词汇表随训练数据变化的趋势研究。在图7中,我们进一步研究了最优词汇表大小如何随着不同数量的训练数据而变化的趋势。我们只改变数据量,保持非词汇表参数固定。词汇表大小的选择是8K、10K、16K、24K、32K和48K。以$N_{nv} = 302M$为例,当可用数据是瓶颈时,最优词汇表大小在经验上会减小,即16K → 10K。这是一种防止过拟合的机制。相反,当在过量数据上训练时,例如,Llama3-8B使用的训练词元远多于其预算下的计算最优值,最优词汇表大小会增加,即16K → 24K。请注意,这里我们只关注训练计算最优。同样重要的是要注意,扩大词汇表大小也会增加推理时的计算需求。因此,我们建议即使在可能发生过训练的情况下,也使用与给定$N_{nv}$对应的最优词汇表大小,假设训练数据被最优分配。
A4 实验环境
- 数据集:SlimPajama数据集【61】,一个包含6270亿词元的经过清洗和去重的数据集。
- 模型架构:采用Llama架构【69】,模型参数规模从33M到2.87B不等。具体架构参数见附录表4。
-
硬件配置:
- GPU:NVIDIA A100 (40GB)。
- 训练规模:对于小于1.13B参数的模型,使用单节点8个GPU;对于2.87B参数的模型,使用多节点训练,总共64个GPU。
-
软件配置:
- 优化器:AdamW【37】。
- 学习率:最大学习率为4e-4,衰减至4e-5。
- 精度:使用bfloat16混合精度训练。
- 框架:对于多节点训练,采用Megatron-LM框架【60】。
- 全局批量大小(Global Batch Size):512。
A7 补充细节
相关工作
语言模型。Transformer【索引71,Attention is all you need,2017,Advances in neural information processing systems】已被证明是语言模型,尤其是大型语言模型(LLMs)的可扩展架构【索引11, 14, 52, 47, 20, 29, 53, 70, 73, 41, 8, 4, 38, 25, 62, 67, 7, 39, 32, 88】。这些模型通常在预训练阶段和可选的微调阶段后,获得对语言的深刻理解,从而能够执行多项任务。它们的能力包括代码生成【索引33, 3, 43, 87, 86】、数学推理【索引76, 5】、问答【索引48, 45】等。鉴于语言模型所需的高昂部署成本,可以采用各种技术进行高效推理【索引64, 65, 78, 74, 36】。在我们的工作中,我们从头开始在英语语料库上预训练大型语言模型,并关注它们训练后的验证损失和下游性能。
缩放法则。缩放法则旨在开发一个预测框架,以找到计算资源的最佳分配,从而最大化模型性能。除了语言模型,它们也已在其他领域进行了研究【索引40, 68, 13】。对于语言模型,Kaplan等人【索引30,Scaling laws for neural language models,2020,arXiv】表明,随着更多计算分配给参数或数据,性能会呈幂律改进。Hoffmann等人【索引26,Training compute-optimal large language models,2022,arXiv】表明,参数和数据的计算分配应等比例扩展。其他工作考虑了各种情况,如下游性能【索引23, 28, 55】、推理时间【索引57,Beyond chinchilla-optimal: Accounting for inference in language model scaling laws,2023,arXiv】或数据约束【索引44, 80】。然而,词汇表大小的影响先前通常被忽略了。
A5 结论
本文研究了词汇表大小在语言模型中的影响。我们分析并验证了对于给定的FLOPs预算,存在一个最优的词汇表大小。随后,我们开发了3种方法来预测最优词汇表大小。我们的第一种方法使用跨不同IsoFLOPs机制的经验训练运行来拟合一个缩放法则。第二种方法研究了FLOPs相对于词汇表大小的关系,并用导数估计了词汇表大小。第三种方法由一个参数化函数组成,用于预测不同属性对损失的影响。在所有方法中,我们发现虽然词汇表参数的扩展速度应慢于其他参数,但它们对性能仍然至关重要,我们可以准确地预测它们的最优分配。我们对更大的模型进行了预测,并在高达3B参数和不同数量的训练数据上对我们的方法进行了经验验证。我们表明,在相同的FLOPs预算下,使用我们方法预测的最优词汇表大小训练的模型,其性能优于使用传统词汇表大小的模型。
A6 附录
A.1 方法2中FLOPs关于词汇表大小的导数推导
推导过程。此处我们提供计算FLOPs $C$相对于$V$的极值点的详细过程。根据Kaplan等人【索引30,Scaling laws for neural language models,2020,arXiv】,我们知道:
$$C \approx 6ND \approx 6(N_{\mathrm{nv}}+Vd)Hf(V).$$然后我们计算导数$\frac{\partial C}{\partial V}$如下:
$$\begin{aligned} \begin{aligned} \frac{\partial C}{\partial V} & = \frac{\partial}{\partial V} [6(N_{\mathrm{nv}} + dV) H (f(V))] \\ & = \frac{\partial}{\partial V} [6(N_{\mathrm{nv}} + dV) H (a(\log(V))^2 + b\log(V) + c)] \\ & = 6H \left[ (N_{\mathrm{nv}} + dV) \frac{d}{dV} (a(\log(V))^2 + b\log(V) + c) \right. \\ & \quad \left. + (a(\log(V))^2 + b\log(V) + c) \frac{d}{dV} (N_{\mathrm{nv}} + dV) \right] \\ & = 6H \left[ (N_{\mathrm{nv}} + Vd) \frac{2a\log(V) + b}{V} + (a(\log(V))^2 + b\log(V) + c)d \right]. \end{aligned} \end{aligned}$$$\frac{\partial C}{\partial V} = 0$的解对应于FLOPs的最小点。由于该方程中的变量$V$不便于分离,我们使用数值搜索方法,特别是scipy.optimize.fsolve来找到解。
示例演示。图8展示了FLOPs关于词汇表大小$V$的导数与$V$本身的关系。将$V$设为$\frac{\partial C}{\partial V} = 0$的解,我们找到了FLOPs最小化的点。如图8(右)所示,FLOPs预算是固定的,我们观察训练字符数如何随$V$变化。值得注意的是,在最优词汇表大小$V$处,模型在给定预算下消耗了最大数量的训练字符。这一观察为为什么在给定FLOPs预算下存在一个最优词汇表大小提供了见解。
A.2 方法3中损失关于词汇表大小的导数推导
推导过程。此处我们提供在方法3中,给定FLOPs预算$C$时,如何推导损失关于词汇表大小的导数。根据公式9,用$C/(6(N_{nv} + N_v))$替换[$Hf(V)$]后:
$$\mathcal{L}_{u}=-E+\frac{A_{1}}{N_{\mathrm{nv}}^{\alpha_{1}}}+\frac{A_{2}}{N_{v}^{\alpha_{2}}}+\frac{B}{\left[C /\left(6\left(N_{\mathrm{nv}}+N_{v}\right)\right)\right]^{\beta}} .$$在给定$N_{nv}$的情况下,损失仅依赖于$N_v = Vd$。关于$V$的导数是:
$$\begin{aligned} \begin{aligned} \frac{\partial \mathcal{L}_{u}}{\partial V} & =\frac{\partial}{\partial V}\left(\frac{A_{2}}{(V d)^{\alpha_{2}}}\right)+\frac{\partial}{\partial V}\left(\frac{B}{\left(\frac{C}{6\left(N_{\mathrm{nv}}+V d\right)}\right)^{\beta}}\right) \\ & =-\alpha_{2} \frac{A_{2} d}{(V d)^{\alpha_{2}+1}}+\beta \frac{B \frac{C d}{6\left(N_{\mathrm{nv}}+V d\right)^{2}}}{\left(\frac{F}{6\left(N_{\mathrm{nv}}+V d\right)}\right)^{\beta+1}} . \end{aligned} \end{aligned}$$$\frac{\partial L_u}{\partial V} = 0$的解对应于最优的$V$。与方法2类似,我们使用scipy.optimize.fsolve来找到解。
A.3 更多分析可视化:为什么最优词汇表大小受计算限制
受限FLOPs下,大词汇表的词嵌入难以学习。先前的研究表明,嵌入会遭受表示退化的问题,即低频词的嵌入由于参数更新有限而聚集在一起【索引24,Representation degeneration problem in training natural language generation models,2019,arXiv】。在图9中,我们可视化了使用不同词汇表大小时词嵌入的分布情况。我们使用所有嵌入之间的平均欧几里得距离$D_{avg}$来量化聚类程度,对于$V = 4K$、$V = 16K$和$V = 64K$,$D_{avg}$分别为1.067、1.011和0.952。更大的词汇表(64K)导致嵌入的聚类更严重,特别是对于不常见的词。这种聚类表明它们没有得到充分的训练。相反,小尺寸词汇表(4K)和中等尺寸词汇表(16K)显示出更分散的嵌入分布。这些观察表明,存在一个最优的词汇表大小,它平衡了词汇覆盖率和词嵌入的充分更新。具有大词汇表大小的语言模型可能有更好的词汇覆盖率,但另一方面,这会阻碍模型充分更新词嵌入的能力,特别是对于低频词。
A.4 更大范围词汇表大小的探索
更大范围词汇表的验证。由于计算资源的限制,我们用来拟合缩放法则的词汇表大小在4K到96K的范围内。这个范围足以进行拟合,因为我们使用的所有训练配置的最优词汇表大小都落在这个范围内。为了进一步验证对于更大范围的词汇表列表,始终存在一个最优词汇表大小,我们将词汇表大小的范围从0.5K增加到512K,同时将$N_{nv}$固定为33M。如图10所示,当词汇表大小超过最优配置时,模型的性能持续下降。该图显示了在特定FLOPs预算下,词汇表大小高达512K时的损失曲线。数据表明,随着词汇表大小偏离最优值,模型性能持续恶化。这表明存在一个临界点,超过该点后,模型处理词汇表的效率会降低。这一探索强调了在给定计算预算的约束下,仔细选择词汇表大小以保持最优模型性能的重要性。
A.5 词汇表无关度量:Lu和BPC
Lu与BPC的比较。BPC反映了压缩外部文本语料库的能力【索引27,Compression Represents Intelligence Linearly,2024,CoRR】,而unigram归一化损失则反映了模型预测词元的能力(按词元频率归一化)。图11显示了Unigram归一化损失$L_u$和每字符比特数(BPC)之间的关系以及线性拟合。我们为每个$N_{nv}$和每个词汇表大小选择了模型最终训练步骤的数据。高相关系数($\rho = 0.9888$)和低误差($e = 0.0683$)表明这两种度量之间通常存在很强的线性关系。然而,由于归一化方式不同,存在轻微的趋势差异。
A.6 更多关于为什么我们将词汇表参数与总模型参数分开的解释
不同参数的扩展方式差异。传统上,扩展语言模型参数的方法有两种:增加深度(即层数)或宽度(即隐藏层大小)。虽然对这些方法进行了广泛研究,但目前的经验实践通常是同时扩展两者【索引66,Scaling Laws vs Model Architectures: How does Inductive Bias Influence Scaling?,2023,EMNLP】。然而,这种方法可能忽略了不同参数如何从这些扩展中受益的关键区别。非词汇表参数可以从深度和宽度的增加中受益,从而实现更复杂的层次表示和更广泛的特征捕获。相比之下,与词嵌入和语言模型头相关的词汇表参数通常局限于单层,这限制了它们从模型深度增加中受益的能力。它们扩展的主要途径是增加宽度。非词汇表参数和词汇表参数在增长潜力上的这种差异表明,为了保持平衡的增长率,可能有必要在增加深度的同时扩大词汇表大小。这将使词汇表参数能够跟上非词汇表参数的增长。
A.7 实现细节
A.7.1 模型架构、词汇表大小和训练字符数的设置
模型与数据配置。我们在表4中列出了模型的架构以及相应的训练字符数。对于每个模型系列,我们固定非词汇表参数$N_{nv}$并改变词汇表大小。我们采用了Llama架构【索引69,Llama: Open and efficient foundation language models,2023,arXiv】,但词汇表大小除外。对于词汇表大小,我们使用能被128整除的数字,以便与NVIDIA的张量核心兼容,从而加速矩阵乘法。具体来说,我们为每个模型系列采用的词汇表大小是4096, 6144, 8192, 10240, 16384, 24576, 32768, 48128, 64512和96256。在给定的非词汇表参数和FLOPs预算下,预期的训练词元数$D$和字符数$H$会略有不同。我们使用中等大小的$V=16384$来确定训练字符数和相应的FLOPs预算,但对于$N_{nv}=2870M$,我们使用$V=32K$。
表4:我们实验中采用的模型架构及相应的训练字符数。
A.7.2 非词汇表参数和嵌入维度之间的关系
嵌入维度设定。根据Kaplan等人【索引30,Scaling laws for neural language models,2020,arXiv】的观察,在给定总非词汇表参数的情况下,深度-宽度比对性能的影响相对较小。因此,为了简化我们在考虑词汇表大小时的缩放法则建模,我们遵循先前的工作【索引30,Scaling laws for neural language models,2020,arXiv】、【索引26,Training compute-optimal large language models,2022,arXiv】、【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】、【索引70,Llama 2: Open foundation and fine-tuned chat models,2023,arXiv】、【索引84,Tinyllama: An open-source small language model,2024,arXiv】,将宽度(即嵌入维度)视为给定值。我们实验中使用的非词汇表参数$N_{nv}$和嵌入维度$d$之间的关系见表5。
表5:我们实验中使用的非词汇表参数Nnv与嵌入维度之间的关系。
A.7.3 训练细节
训练超参数。最大学习率设置为4e-4,并衰减至10%,即4e-5,这与之前的缩放工作【索引26,Training compute-optimal large language models,2022,arXiv】、【索引44,Scaling data-constrained language models,2024,Advances in Neural Information Processing Systems】类似。我们使用AdamW【索引37,Decoupled weight decay regularization,2017,arXiv】作为优化器,并使用bfloat16混合精度训练来加速训练。对于$N_{nv} < 1130M$的模型,我们使用单个节点上的8个GPU进行训练。否则,我们采用Megatron-LM框架【索引60,Megatron-lm: Training multi-billion parameter language models using model parallelism,2019,arXiv】进行多节点训练,每个节点上有8个GPU。对于我们$N_{nv} = 2870M$的实验,使用总共64个GPU在超过500B的训练字符上训练大约需要120小时。我们对所有运行使用512的全局批量大小,并在40GB的Nvidia-A100 GPU上运行所有实验。
A.7.4 拟合技术
方法1。为避免拟合参数的数值下溢和上溢,我们受Hoffmann等人【索引26,Training compute-optimal large language models,2022,arXiv】的启发,以对数形式拟合数据。以$N_{nv}$为例,我们通过最小化以下公式来学习参数$k_1, \alpha_1$:
$$\min _{K_{1}, \alpha_{1}} \operatorname{Huber}_{\delta}\left(K_{1}+\alpha_{1} \log (C), \log \left(N_{\mathrm{nv}}\right)\right),$$其中$K_1 = \log(k_1)$,Huber$\delta$表示delta值为$\delta$的Huber损失(本文中$\delta$为0.001)。我们使用LBFGS算法找到函数的局部最小值。后面的方法2和3使用相同的优化算法。我们从同一个均匀网格中初始化所有属性,其中$K \in [-20, 15]$和$\alpha \in [0, 1]$,分别有20个初始猜测。拟合过程耗时不到半分钟。为了廉价地获得更多的实验数据点,我们在对数尺度上对($N$, $N_v$, $H$)三元组进行插值,并基于真实数据点预测验证损失。然后,我们使用公式5为每个数据点计算所需的FLOPs。
方法2。通过使用不同的$N_{nv}$并基于公式7获得相应的最优$N_v$,我们得到一组${(N_{nvi}, N_{vi})|i = 1, ..., n}$。记$D_{nvi} = N_{nvi}/N_{nv0}$和$D_{vi} = N_{vi}/N_{v0}$,我们通过最小化以下公式来学习缩放比例$\gamma$:
$$\min _{\gamma} \operatorname{Huber}_{\delta}\left(\gamma * \log \left(\mathcal{D}^{n v_{i}}\right), \log \left(\mathcal{D}^{v_{i}}\right)\right),$$$\gamma$的初始猜测值从[0, 1]中均匀采样。
方法3。我们在此重述设计的依赖于词汇表的损失公式:
$$\mathcal{L}_{u}=-E+\frac{A_{1}}{N_{\mathrm{nv}}^{\alpha_{1}}}+\frac{A_{2}}{N_{v}^{\alpha_{2}}}+\frac{B}{[H f(V)]^{\beta}},$$其中$\beta = \alpha_1$。在实践中,我们尝试最小化:
$$ \min_{a_1, a_2, b, e, \alpha_1, \alpha_2} \text{Huber}_\delta ( - \exp(e) + \exp(a_1 - \alpha_1 * \log(N_{\text{nv}}) + \exp(a_2 - \alpha_2 * \log(N_{\text{v}}) + \exp(b - \beta * \log([Hf(V)])), \quad \mathcal{L}_u), $$其中$A_1 = \exp(a_1)$, $A_2 = \exp(a_2)$, $B = \exp(b)$, $E = \exp(e)$。我们从同一个均匀网格中初始化所有属性,其中$a_1 \in [0, 5]$, $a_2 \in [0, 5]$, $b \in [0, 5]$, $e \in [0, 2]$, $\alpha_1 \in [0, 1]$和$\alpha_2 \in [0, 1]$,分别有3个初始猜测。鉴于先验知识,即缩放因子通常在0到1之间【索引26,Training compute-optimal large language models,2022,arXiv】,我们在拟合过程中添加了约束$0.1 < \alpha_1, \alpha_2 < 1$。拟合过程也耗时不到半分钟。
A.8 拟合词元-字符关系函数f(V)的细节
f(V)拟合过程。我们训练了25个分词器,词汇表大小如下:1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 12288, 16384, 20480, 24576, 28672, 32768, 48128, 64512, 78848, 96256, 128000, 256000, 512000, 1024000。然后,我们在Slimpajama数据集的一个均匀采样版本上训练这些分词器。之后,我们将训练好的分词器应用于Slimpajama数据集的验证集,并收集每个词汇表大小为$V$的分词器的词元数$D$。我们使用scipy.optimize.curve_fit来拟合$f(V)$中的参数$a, b, c$(§2.2)。
A.9 词元-字符关系函数f(V)的鲁棒性
对分词器类型的鲁棒性。除了我们实验中广泛采用的BPE分词器,我们还考虑了unigram分词器和基于词的分词器。我们在图12中可视化了它们的词元-字符比率和相应的预测函数。我们发现,我们提出的$f(V)$公式是词元-字符比率的一个很好的预测器,无论使用哪种分词器。这验证了我们提出的公式的有效性。unigram分词器的分词效率接近于BPE分词器,从它们相似的y轴值可以看出,因为它们都采用基于子词的分词。同时,基于词的分词的分词效率较差,因此平均需要更多的词元来压缩字符。
对词汇表大小范围的鲁棒性。我们提出的关于词汇表大小对数值的二次函数可以精确地预测词元-字符比率,RMSE为1.5e-6,$R^2$为0.99。然而,由于二次函数是单峰的,当$V$非常大时,例如在我们的情况下$V > \exp(-b/2a) \approx 218K$,增加$V$会增加$f(V) = a \log^2(V) + b \log V + c$的输出值。幸运的是,当$V$足够大时,分词器分词效率的提高会急剧衰减,导致$f(V)$的值几乎没有变化。这是因为当词汇表大小足够大时,训练语料库中的词已经可以被词汇表列表有效地覆盖。在这种极端情况下,相应分词器的分词效率接近饱和,因此进一步增加词汇表大小几乎不会提高分词效率。例如,Slimpajama语料库的验证集中约有23亿个字符。使用2K词汇表大小的分词器比1K的对应分词器少产生1.4亿个词元,但当词汇表大小从256K增加到257K时,词元数仅减少0.7M。因此,我们在计算$f(V)$之前添加了$\min(V, 200K)$以确保其递减性。根据我们的预测,一个拥有300B参数的模型,在有充足训练数据的情况下,其最优词汇表大小不超过400K。如果未来需要考虑极大的$V$,我们可以在拟合$f(V)$的过程中用更大的$V$训练分词器,以获得更精确的预测。
A.10 unigram归一化语言建模损失的公平性实验验证
Lu的公平性验证。在§2.2中,我们解释了使用unigram归一化损失$L_u$来公平评估不同词汇表大小的模型。这里我们通过实验验证这一选择。我们训练的模型具有固定的非词汇表参数$N_{nv}$和嵌入维度$d$,但词汇表大小$V$不同。因此,它们的词汇表参数$N_v$也不同。我们在图13中绘制了这些模型的最终语言模型损失和unigram归一化损失与下游性能的对比。语言建模损失与下游性能呈正相关:语言建模损失越高的模型,下游性能越好。这是因为我们词汇表较大的模型由于目标函数的原因自然会有更高的损失,但它们实际上可能是更好的模型,具有更好的下游性能。我们的unigram归一化损失解决了这个问题,并显示出损失与下游性能之间预期的负相关关系:损失越低,下游性能越好。这从经验上证明了我们在整个工作中使用$L_u$的合理性。
A.11 对Llama3的预测
Llama3最优词汇表预测。虽然我们的主要实验集中在Llama2的词汇表大小上,但我们也将我们的结论扩展到Llama3,预测其在最优计算分配下的最优词汇表。如图14所示,我们为各种大小的Llama3模型提供了详细的预测。尽管Llama3将其词汇表大小从32K显著增加到128K,但我们的研究表明,对于70B和400B这样更大的模型尺寸,这可能仍然不足。
A.12 更多相关工作
语言模型中的词汇表。语言模型的词汇表显著影响其性能【索引63, 75, 79】。更大的词汇表大小有助于覆盖更多单词,从而减少未登录词(OOV)的情况【索引21,Automatic speech recognition with very large conversational finnish and estonian vocabularies,2017,IEEE/ACM Transactions on audio, speech, and language processing】。Takahashi和Tanaka-Ishii【索引63,Do neural nets learn statistical laws behind natural language?,2017,PloS one】发现,更大的词汇表能更好地捕捉语言的真实统计分布。同样,在多语言模型中扩展词汇表【索引75, 15, 85, 34】可以提高性能,特别是对于低资源语言。然而,大词汇表【索引31,Bloom: A 176b-parameter open-access multilingual language model,2023】会增加训练和生成阶段的计算开销。例如,Liao等人【索引35,Efficient estimate of low-frequency words’ embeddings based on the dictionary: a case study on Chinese,2021,Applied Sciences】证明,当词汇表过大时,低频词通常缺乏足够的样本来学习稳健的表示。Dou等人【索引19,Sailor: Open Language Models for South-East Asia,2024,CoRR】揭示,在持续预训练期间扩展词汇表可能导致低资源语言的性能显著下降。最近,Dagan等人【索引18,Getting the most out of your tokenizer for pre-training and domain adaptation,2024,CoRR】探讨了与词汇表大小相关的权衡,为代码生成任务提出了兼顾内存效率和推理速度的最优词汇表大小。我们的工作通过关注词汇表大小对各种任务下游性能的更广泛影响来补充这些努力。具体来说,我们解决了一个关键但未被充分探索的问题:我们如何能最优地分配词汇表大小,以在相同的计算预算下最大化下游性能?
字节级语言模型。最近的工作探索了字节级语言模型【索引82, 77】,与词元级模型相比,它们在解码效率和噪声鲁棒性方面具有优势。然而,这些模型通常参数限制在1B以下,尚未被有效地扩大规模。我们的缩放法则表明,有限的词汇表(即字节级语言模型中的256)可能会限制其性能,特别是对于更大的模型。这一见解为字节级模型扩展困难提供了一个潜在的解释,并暗示语言模型的成功扩展可能需要词汇表大小的成比例增加。
B 局限性与未来工作
B.1 我们提出的方法的局限性
方法1。方法1通过基于实验数据点预测非词汇表参数、词汇表参数和训练数据之间的计算资源分配,提供了一个更广泛的解决方案。该方法的优势在于其整体视角,允许平衡的资源分配,从而可能提高模型效率和性能。然而,该方法受限于可用实验数据点的粒度和范围,这可能在拟合过程中引入误差。进行这些拟合需要大量的计算资源,也可能限制其可及性和可扩展性。尽管存在这些挑战,当实验数据充足且计算资源足够时,方法1可以显著提高大规模语言模型开发中资源分配决策的精度。
方法2。通过计算FLOPs相对于词汇表大小的导数并求解零点,该方法从根本上依赖于FLOPs方程和我们的词元-字符关系函数的精确性。此外,该方法不允许我们独立确定非词汇表参数和训练数据大小的最优分配。因此,它需要从实验拟合的缩放法则中获取有关这些属性与FLOPs预算之间关系的信息,使得该方法在实践中用处较小。尽管存在这些限制,基于导数的方法具有显著优势,包括其预测与从方法2的实际实验数据中得出的缩放法则紧密匹配。此外,它依赖于数值解而非详尽的深度学习实验,使其快速且广泛适用于各种分词器,凸显了其在初步模型配置阶段(快速估算至关重要)的实用性。
方法3。与方法1类似,提出的方法3需要在不同的非词汇表参数、词汇表大小和训练数据数量下进行多次实验运行。因此,该方法在一定程度上受限于可用实验数据点的粒度和范围。然而,提出的方法3是灵活的,它考虑了在现实应用中,非词汇表参数和训练数据数量并不总是遵循计算最优缩放法则【索引26,Training compute-optimal large language models,2022,arXiv】(即等比例缩放)这一事实。
B.2 更大的模型和不同的架构
模型规模与架构。我们已经证明,我们的预测对于高达三十亿参数的模型是成立的(§5)。然而,LLM通常要大几个数量级,例如4000亿参数的Llama-3模型【索引41,Meta LLaMA-3: The most capable openly available LLM to date,2024】。此外,我们决定专注于密集的Transformer语言模型,因为它们是LLM最常用的模型。然而,许多非Transformer模型已经被提出并扩展到数十亿参数【索引49, 50】。探索我们的发现在更大模型和不同架构中成立的程度是未来工作的一个有希望的方向。
B.3 考虑词汇表的损失参数化函数
更复杂的损失函数。研究人员【索引26, 44】考虑用$L = P_1 + P_2/N^\alpha + P_3/D^\beta$形式的参数函数来建模语言建模损失,其中$\{P_1, P_2, P_3, \alpha, \beta\}$是可学习的变量。损失的第一项代表可实现的最小损失,第二和第三项代表模型大小$N$和训练词元数$D$对损失的贡献。该参数函数允许在即使($N, D$)未被最优分配的情况下预测损失$L$。在先前的工作中,这个损失公式考虑了模型大小和训练数据的变化,但没有明确解决由不同词汇表大小引入的复杂性。将词汇表大小纳入损失预测器是具有挑战性的:词汇表大小直接影响模型,也影响训练词元的数量和分词器的分词质量。具有大词汇表大小的分词器更容易捕捉原始文本中的语义信息,并减少未登录词的频率。例如,大词汇表大小可能覆盖常用短语、常见子词和专业术语。因此,即使训练了相同数量的词元,在不同质量的词元上训练的模型的性能也会不同。该领域的未来工作可以探索各种参数化非线性损失函数,以预测在不同计算分配下词汇表大小、模型大小和训练数据之间的相互作用,而不仅仅是计算最优分配的情况。此外,对不同数据集的实证研究可以帮助理解在不同数据条件下词汇表大小如何影响损失,从而指导开发更具适应性的损失预测模型。
B.4 扩展到多语言和多模态场景
多语言与多模态扩展。未来的工作可以将所提出的方法扩展到多语言和多模态场景。多语言模型由于语言多样性,需要对词汇表有细致的理解,这可能会不同地影响不同语言的最优词汇表大小和FLOPs的计算。调整这些方法以考虑语言特征和分词变化,可能会为多语言模型带来更量身定制和高效的资源分配。不同的语言相互竞争模型分配给该语言的能力【索引10,Breaking the Curse of Multilinguality with Cross-lingual Expert Language Models,2024,arXiv】,这使得在多语言场景中为不同语言设置词表大小时,必须考虑不同语言之间的关系。对于将文本与图像或视频等其他数据类型集成的多模态模型,最优词汇表大小可能与非语言参数发生独特的相互作用。最近的工作【索引1, 68】以自回归的方式建模视觉概念,其分词方式类似于文本数据的处理。探索视觉任务和视觉-语言任务中视觉词汇表的大小,即码本大小【索引22,Taming transformers for highresolution image synthesis,2021,Proceedings of the IEEE/CVF conference on computer vision and pattern recognition】,是一个有趣的问题。如何为不同模态有效设置词汇表大小和计算资源仍然是一个悬而未决的问题。
C 潜在的社会影响
积极影响。这项关于语言模型缩放中词汇表大小的研究具有巨大的潜在积极社会影响。通过联合考虑词汇表大小和其他属性来优化大型语言模型,该论文提供了一个基础性的理解,可以导致更轻量级和成本效益更高的预训练大型语言模型。这种效率可以使先进的语言处理技术民主化,使小型组织和公众能够从强大的人工智能工具中受益。这些进步可以惠及各个领域,例如,改善残疾人士的无障碍功能,其中高效的语言模型可用于分析医疗记录和辅助诊断。此外,训练这些模型所需的计算需求的减少可以导致能源使用的减少,从而为环境可持续性努力做出积极贡献。
负面风险。另一方面,预训练语言模型的滥用可能带来风险,包括创建高度逼真的深度伪造品,这些伪造品可以传播虚假信息,破坏对媒体和机构的信任。这些模型可以生成误导性内容,通过令人信服的网络钓鱼方案自动化网络攻击,并产生大规模的垃圾邮件,降低在线通信的质量。此外,它们还可用于生成有害或滥用内容,如仇恨言论,这会加剧歧视并伤害弱势群体。为了减轻这些风险,开发可信赖的语言模型、实施强大的监控系统以及促进研究人员、政策制定者和用户之间的合作至关重要。
💬 评论讨论
欢迎在这里分享您的想法和见解!