Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

不同数据集有不同的Scaling law?而你可用一个压缩算法来预测它

一般而言,训练神经网络耗费的计算量越大,其性能就越好。在扩大计算规模时,必须要做个决定:是增多模型参数量还是提升数据集大小 —— 必须在固定的计算预算下权衡此两项因素。

Scaling law 告诉我们:只要能适当地分配参数和数据,就能在固定计算预算下实现性能最大化。之前已有不少研究探索过神经语言模型的 Scaling law,而这些研究通常得出的结论是参数和训练 token 数应当一比一地扩展。

但是,之前的语言模型 Scaling law 研究都是基于在散乱的网络文本上训练的 Transformer 得到的。这是一种非常特定的数据分布,因此我们自然会问:基于这样的网络文本数据集得到的 Scaling law 是否可以泛化到其它分布?

此外,人们普遍认为,训练数据混合的秘诀在于能让前沿探索的产业界实验室能持续产出当前最佳的 LLM。考虑到提升数据质量能显著提升语言模型的性能,而强化学习的 Scaling law 也会随博弈难度而缩放,也许我们可以假设:当前的语言模型 Scaling law(即 Chinchilla)只是针对网络文本数据的具体案例,其背后还有一个基于训练数据属性的更广义的 Scaling law。
 
那么,神经 Scaling law 对训练用的 token 序列数据集的哪些性质敏感呢?换句话说,如果我们想要准确预测如何以最佳方式为训练过程分配计算量,我们该观测数据的哪些属性?另外,Scaling law 的数据依赖性质仅仅是个理论问题,还是说对真实世界数据集也很重要?

为了探究这些问题,AI 数据公司 Reworkd 的研究者 Rohan Pandey 做了一番调查,得到了这些问题的答案;另外他还提出了一种压缩算法 gzip,可预测数据复杂性对扩展性质的影响。
图片
  • 论文标题:gzip Predicts Data-dependent Scaling Laws
  • 论文链接:https://arxiv.org/pdf/2405.16684

他的研究方法是:在可以直观控制复杂度的文本数据设置下,以信息论方法理解 Scaling law 的数据依赖性的原因。

他最终找到的设置名为概率式上下文无关语法(PCFG,最早由乔姆斯基于 1956 年提出)。该设置相对自然(可以建模自然语言、代码等),句法复杂度可控,遵循一些已被很好理解的信息论原理。

实验中,通过调整 PCFG 的句法性质,他生成了 6 个具有不同复杂度的数据集。对于每个数据集,他又训练了 6 个不同大小的语言模型参数量从 4.4M 到 1.4B),并记录了这些语言模型在 6 种不同训练步数(100K 到 100M token)下的结果。然后,他为每个数据集都拟合了一个 Scaling law,发现 Scaling law 的参数会随句法复杂度而有意义地变化。遵循之前有关形式语法的熵的研究,对于复杂度度量,他使用的是数据集中每个 token 序列的可压缩率(compressibility)中值,这能通过 gzip 轻松计算出来。

结果发现,随着训练数据的可压缩率降低(更加复杂),Scaling law 的计算最优边界也会逐渐从参数量偏向数据大小。然后,他测量了真实世界的代码和自然语言数据集的可压缩率,结果发现前者的可压缩率更大,因此可预测其服从不同的 Scaling law。

通过 PCFG 的句法性质调节数据复杂度

概率式上下文无关语法(PCFG)是计算语言学的一种基础工具,可用于建模自然语言的句法。PCFG 是对标准的上下文无关语法(CFG)的扩展,即在生成规则中关联了概率,从而能以一种可量化的方式表征语言的模糊性和可变性。这些语法会生成树,其中每个节点都表示一个句法类别,每条边则表示用于生成句子的生成规则。在根据 PCFG 生成句子时,会以概率方式采样应用生成规则的序列,直到该树的所有叶节点都是端点(实际的词汇 token)。

我们可以控制 PCFG 的句法性质,以自然方式调节文本数据集的复杂度。具体来说,PCFG 创建函数可接收的参数包括:端点的数量、非端点的数据、生成规则右侧的最大长度、任何非端点允许的生成规则的最大数量(如果这个值为 1,则给定的非端点将始终得到同样的右侧)。直观而言,以上每个值的增长都会导致句法复杂度增大。

为了基于以上参数创建 PCFG,对于每个端点,都随机选取其生成数量(RHS 选项)、这些生成的每个长度,通过从端点和非端点随机采样来实例化生成规则,并为其分配一个概率(根据非端点的总 RHS 选项而进行了归一化)。然后,收集所有为全部非端点生成的生成规则,并使用基于 NLTK 构建的 PCFG 软件包实例化一个语法。

再使用该语法(在给定约束下随机创建的)来概率式地采样句子,以构建 token 序列数据集。为了后面更容易比较在不同语法(生成不同平均长度的句子)上的训练情况,他决定将句子采样到同等 token 数量的文档中。持续基于语法采样句子,直到填满上下文长度,如有溢出,则直接截断句子。

句子由仅为整数的端点构成,因此可以被视为语言模型的 token ID;再使用未被使用的整数 0(可有效对应于自然语言中的句号)将句子连接起来。澄清一下,这里不是生成「看起来」像自然语言的字符串再进行 token 化 ——PCFG 是直接生成 token ID 本身的序列。现在,可以根据 6 组初始语法约束生成 6 个有不同复杂度的 token 序列数据集了。

用 gzip 可压缩率度量句法复杂度

为了估计生成数据集以及真实数据集的复杂度,Rohan Pandey 选择使用一种压缩算法 gzip。

gzip 的一个优点是已有很好的理论研究基础,它们表明:可压缩率(compressibility)与熵成反比,而熵与句法复杂度成正比。具体来说,针对数据集中 1000 个 token 构成的每个 token 序列,使用 gzip 并计算压缩后数据与原始数据的大小(字节数)之比。

然后,计算可压缩率的中值和标准差,确认有更高句法复杂度的语法会得到更难压缩的数据集。

表 1 列出了每个语法的句法参数和测得的压缩率。
图片
可以观察到,随着非端点(语法类别)、端点(token)、右侧选项和右侧长度的增长,gzip 压缩率也会增长,即变得更难压缩。

图 1 绘出了这些数据集以及自然语言和代码数据的情况。
图片
可以看到,在复杂度方面,某些 PCFG 数据集与代码数据相近(易于压缩的部分),而另一些则与自然语言相近。
 
Scaling law 对数据复杂度敏感吗?

为了确定数据集的 Scaling law,该研究者在不同大小的数据子集(100K、1M、5M、20M、50M、100M token)上训练了几个不同大小(参数量为 4.2M、8.8M、20.3M、59.0M、275.3M、1.4B)的模型,表 6 给出了其架构详情;然后他在所得损失结果上进行幂律拟合。大多数实验都是在 4 台有 80 GB VRAM 的英伟达 A100 上完成的,使用了 PyTorch FSDP。

如图 2 所示,如果一个数据集更容易压缩(可压缩率越低),模型的收敛速度就越快。这符合我们的直观认识。
图片
尽管这表明我们需要更多计算量去建模更复杂的数据集,但我们还是需要更多证据才能确定计算最优边界是否会直接根据数据复杂度而变化。为了确立 Scaling law 对数据复杂度的非平凡的敏感性,需要计算每个数据集的 Scaling law 并调查其拟合参数

根据 gzip 可压缩率计算数据敏感的 Scaling law

Hoffmann et al. 在 2022 年提出的 Scaling law 函数形式是将训练损失作为模型和数据大小的函数:
图片
其中 N 是模型的参数量,D 是训练数据集的 token 数量。他们宣称 E 是「自然文本的熵」且 Scaling law「与数据集无关」。但是,当 Rohan Pandey 在 PCFG 数据集上拟合训练结果与该函数时,却发现每个数据集的 Scaling law 大不相同,见表 2。
图片
该 Scaling law 可为参数量得到一个计算最优边界(由 Kaplan et al. [2020] 和 Hoffmann et al. [2022])推导得出,可简化为:
图片
其中 C 是计算预算,单位 FLOPs。

图 3 绘出了 Chinchilla 的计算最优边界以及每个 PCFG 数据集拟合得到的 Scaling law。
图片
可以看到,随着数据越来越难压缩,拟合得到的 Scaling law 的边界逐渐变得偏向于数据,在 0.23 < gzip 可压缩率 < 0.45 区间中某个点时越过 Chinchilla 的一比一边界。

为了根据数据集的可压缩率预测 Scaling law 参数,可在每个数据集的拟合 Scaling law 参数上进行简单的线性回归拟合。之前我们提到,针对数据集 D,计算可压缩率 H 的方法是:先计算每个元素 d 压缩后比特量与原始比特量的比值,然后再计算所有元素的平均值。
图片
一旦从 H 拟合出预测每个参数(E, A, B, α, β)的线,就可以将每个参数重新定义成可压缩率的一个函数:
图片
其中 m_x 和 n_x 是拟合后线性回归参数

表 3 给出了这些拟合后的值(以及回归的 p 值),图 4 则是这些线性回归的可视化结果。
图片
它们几乎都是单调递减的,只是速率不同,而在 H 约 0.27 的位置,α 和 β 相交。需要指出,E(原本设定为常数的「自然语言的熵」)是唯一一个会随 H 增大的参数(但不明显)。

现在就可以将 (1) 式重新参数化为可压缩率 H 的函数:
图片
但是,由于这里的实验规模相当小,并且主要集中于 PCFG 数据集,因此 Pandey 又对该函数进行了扩展 —— 调整 Chinchilla 后得到了数据依赖型的 Scaling law:
图片
其中 ε 是对训练数据的 gzip 压缩率的调整权重,加 ' 的参数是 Chinchilla 常量。
 
将句法参数作为可压缩率的一个混杂变量而消除掉

上面的实验并没有解决这一可能性:这个可压缩率度量混杂了某个底层的句法属性(如词汇库大小)。为了解决这一问题,图 5 给出了另外的结果。
图片
可以看到,当维持词汇库大小稳定不变并改变其它句法性质(表 4)时,gzip 可压缩率依然可以预测 Scaling law 的参数变化情况(相关性甚至强于增加词汇量的设置)。

图 6 则是实证中找到的反例,这表明当句法性质变化范围很大(表 5)但这些数据集的最终 gzip 可压缩率一样时,Scaling law 参数并不会有显著变化。
图片
图片
尽管在这个同等词汇案例中并未观察到图 4 中那样的相交行为,但 α 的斜率依然比 β 陡(A 也比 B 陡),这说明随着 gzip 可压缩率增大,有同样的偏向数据的现象。

因此,可以说这些结果表明:Scaling law 依赖于训练数据,而 gzip 可压缩率可以很好地预测数据复杂度对扩展性质的影响。
工程gzipScaling Law
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

生成树技术

在图论的数学领域中,如果连通图 G的一个子图是一棵包含G 的所有顶点的树,则该子图称为G的生成树(SpanningTree)。生成树是连通图的包含图中的所有顶点的极小连通子图。图的生成树不惟一。从不同的顶点出发进行遍历,可以得到不同的生成树。

神经语言模型技术

语言模型是估计单词序列的联合概率函数,比如给一个长度为m的单词序列,通过使用语言模型,可以获得这m个单词分布的概率P(W1,...,Wm)。对于许多的自然语言处理的应用,可以估计不同短语的概率是极具应用价值的。语言模型可以应用于语音识别,机器翻译,语音标记,解析,手写识别,信息检索等领域。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

信息论技术

信息论是在信息可以量度的基础上,研究有效地和可靠地传递信息的科学,它涉及信息量度、信息特性、信息传输速率、信道容量、干扰对信息传输的影响等方面的知识。通常把上述范围的信息论称为狭义的信息论,又因为它的创始人是香农,故又称为香农信息论。

语言学技术

每种人类语言都是知识和能力的复合体,语言的使用者能够相互交流,表达想法,假设,情感,欲望以及所有其他需要表达的事物。语言学是对这些知识体系各方面的研究:如何构建这样的知识体系,如何获取,如何在消息的制作和理解中使用它,它是如何随时间变化的?语言学家因此关注语言本质的一些特殊问题。比如: 所有人类语言都有哪些共同属性?语言如何不同,系统的差异程度如何,我们能否在差异中找到模式?孩子如何在短时间内获得如此完整的语言知识?语言随时间变化的方式有哪些,语言变化的局限性是什么?当我们产生和理解语言时,认知过程的本质是什么?语言学研究的就是这些最本质的问题。

语言模型技术

统计式的语言模型是借由一个几率分布,而指派几率给字词所组成的字串。语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

暂无评论
暂无评论~