Command Palette
Search for a command to run...
语言模型记忆了多少?
语言模型记忆了多少?
John X. Morris Chawin Sitawarin Chuan Guo Narine Kokhlikyan G. Edward Suh Alexander M. Rush Kamalika Chaudhuri Saeed Mahloujifar
摘要
我们提出了一种新方法来估计模型对数据点的“认知”程度,并利用该方法测量现代语言模型的容量。我们将记忆正式分为两个组成部分:非预期记忆,即模型包含的关于特定数据集的信息;以及泛化,即模型包含的关于真实数据生成过程的信息。通过消除泛化影响,我们可以计算给定模型的总记忆量,从而提供模型容量的估计:我们的测量结果显示,GPT系列模型的近似容量为每参数3.6比特。我们在逐渐增大的数据集上训练语言模型,并观察到模型会持续记忆直到容量填满,此时开始出现“顿悟”现象,非预期记忆随着模型开始泛化而减少。我们训练了数百个参数规模从50万到15亿的Transformer语言模型,并得出了一系列将模型容量和数据大小与成员推理相关联的缩放定律。
一句话总结
来自 Meta 的 FAIR、Google DeepMind、康奈尔大学和 NVIDIA 的研究者提出了一种方法,将语言模型的记忆分解为非预期记忆和泛化,估计 GPT 系列模型每个参数约具有 3.6 比特的容量,并证明一旦容量填满,就会出现 grokking——即非预期记忆开始减少,由此得出了将模型容量和数据规模与成员推理关联起来的缩放定律。
核心贡献
- 一种基于压缩的方法,将非预期记忆与泛化正式分离,允许按样本测量模型关于数据集存储的比特数。
- GPT 系列模型每个参数约有 3.6 比特的容量,记忆先填满,然后进入 grokking 阶段,期间非预期记忆减少而泛化开始。
- 通过训练数百个参数量从 500K 到 1.5B 的 Transformer 模型,得到了将模型容量和数据规模与成员推理关联的缩放定律。
引言
现代大型语言模型训练时使用的数据集远远超过其参数量,这加剧了关于模型是否以及如何记忆单个训练样本的疑问。先前的定义通常依赖于抽取——测试模型是否能根据提示重新生成特定字符串——或依赖于成员推理,但这些方法无法干净地将对某个数据点的真正回忆与模型从众多示例中学习的泛化模式分开。作者将记忆重新定义为压缩问题:如果模型能够用比通用压缩方案更少的比特数对一个样本进行编码,则认为该样本已被记忆。他们进一步将这一量度分解为非预期记忆(关于特定数据集实例保留的信息)和泛化(关于底层数据生成过程的知识),从而构建了一个实用的、实例级别的框架,将二者解耦,并揭示了记忆如何随模型容量和数据量变化而缩放。
方法
作者利用信息论为理解机器学习模型中的记忆建立了一个统计框架。他们首先通过互信息的视角定义记忆,区分对应泛化的预期记忆与非预期记忆。为了在实例级别实际测量这些量(在训练好的模型和数据集的单例性质下,基于熵的定义会失效),作者转向了柯尔莫哥洛夫复杂度。该方法将字符串的信息内容定义为其在给定计算模型下最短表示的长度。
为了实际估计柯尔莫哥洛夫复杂度,作者采用了压缩算法,特别是算术编码,它将压缩率与模型似然联系起来。他们使用目标模型下数据的负对数似然来近似条件柯尔莫哥洛夫复杂度 HK(x∣θ^),并使用目标模型与参考模型之间的最大似然来近似 HK(x∣θ^,θ)。该参考模型通常是同一架构但在更广泛数据分布上训练的更大模型。
基于此,作者形式化了记忆的模型容量概念。容量定义为学习算法能在其参数中存储的最大记忆量。当模型达到其容量时,总记忆量不再随数据集大小增加。该容量通过在不同数据集大小上将模型训练至饱和,并测量最大非预期记忆来计算。
作者进一步探究了模型容量、数据集大小和成员推理成功率之间的关系。他们观察到,对于固定的模型容量,成员推理成功率相对于数据集大小呈近似 S 形。直观解释是:成员推理对于过拟合在小数据集上的大型模型来说很容易,但随着数据集增大而变得越来越困难,最终退化为随机性能。作者使用以下方程对这一关系进行建模: MembershipF1(θ,D)=21(1+c1σ(c2(∣D∣Capacity(θ)+c3))) 其中 σ(x)=1+e−x1。
作者使用非线性最小二乘求解器在经验数据上拟合了这一缩放定律,证明该 S 形函数能准确预测不同模型大小和数据集配置下的成员推理分数。
如下图所示:
这一经验模型为解释为什么成员推理攻击在极其庞大的数据集上训练的模型上会失败提供了证据,因为当每个参数的 token 数足够高时,预测性能会接近 0.5。
实验
评估首先通过训练均匀采样的合成 token 来测量 Transformer 的容量,结果显示模型大约每个参数记忆 3.5 比特,并且一旦容量饱和,就会达到明显的平台期。转至完全去重的文本后,该研究将非预期记忆与泛化解耦,显示抽取率收敛到测试集抽取水平,并且当数据集大小超过模型容量时恰好出现双重下降。在合成数据和文本数据上的成员推理实验表明,随着训练集增大,基于损失的攻击变得无效,而推导出的 S 形缩放定律预测,对于在足够庞大的语料上训练的模型,成员推理将收敛至随机猜测水平。
以比特计的模型容量随参数量增加而增加,但每个参数的比特数随宽度或深度增加而下降,这意味着更大的模型每个参数存储的信息量更少。从半精度(bfloat16)切换到全精度(float32)只能带来每个参数比特数的微小增加,平均值保持在约 3.5 至 3.8 比特/参数。这些容量估计为将模型大小和数据集大小与成员推理风险关联的缩放定律提供了信息。将单层模型的隐藏单元从 32 个增加到 256 个,导致 fp32 下每个参数的比特数从 4.23 降至 3.12,两层结构中也观察到类似的下降。在所有宽度和深度配置下,bfloat16 和 float32 之间每个参数比特数的差距都很小,表明将数值精度翻倍仅能为每个参数的有效容量带来微小的提升。
对于 GPT-2 Medium 和 XL,该缩放定律准确预测了达到目标成员推理 F1 分数所需的数据集大小,观测值与预测值的偏差在 1.5 个百分点以内。最大误差出现在 F1 为 0.75 时,这是由 S 形关系的陡峭程度导致的。模型在足够庞大的数据集上训练时,其成员推理 F1 会收敛到 0.5(随机猜测),这支持了大规模语料上训练的模型能抵抗此类攻击的观察。
实验首先量化了以每个参数比特数计算的模型容量,揭示了更宽的模型(更大的宽度或深度)每个参数存储的信息更少,并且从半精度到全精度仅能带来微小的容量增加。这些容量估计为模型和数据集大小与成员推理风险之间的缩放定律提供了信息。在 GPT-2 Medium 和 XL 上的验证显示,该缩放定律能准确预测达到目标 F1 分数所需的数据集大小,偏差低于 1.5 个百分点,并确认了足够大的训练集会使成员推理 F1 趋向于随机猜测水平。