Model Collapse
模型坍塌是指生成式模型一代又一代地使用早期模型的输出进行训练时,稀有数据和多样性逐渐流失的现象。
模型崩溃是一种退化过程:使用早期模型生成的数据训练的生成模型,会在一代又一代的迭代中逐渐丢失有关原始数据分布的信息。分布尾部的罕见案例最先消失,经过足够多轮迭代后,输出会收敛到更常见模式的狭窄、重复版本。Shumailov 等人在 2024 年发表于《自然》的一篇论文中展示了这种现象,涉及大型语言模型 (LLM)、变分自编码器和高斯混合模型。随着AI 生成的文本和图像在未来模型训练所用的网络数据中占比增加,风险也随之上升。
模型崩溃为何发生#
每一代模型都根据有限样本进行拟合,然后从拟合结果中采样,生成下一代数据。Shumailov 等人指出,三种误差会逐代累积:统计近似误差,因为有限样本会遗漏罕见事件;函数表达能力误差,因为模型无法精确表示真实分布;以及函数近似误差,因为随机梯度下降等训练过程并不完美。一旦某一代数据中缺少某个罕见事件,下一代模型就会为其分配零概率,该事件也永远不会再出现。他们将早期崩溃定义为分布尾部消失,将晚期崩溃定义为分布逐渐收窄到少数常见输出,且几乎没有变化。
下面的模拟将词频表视为模型。每一代从前一代模型中抽取样本并统计 10,000 个词,要么替换先前的数据,要么将其添加到先前数据中:
import torch
torch.manual_seed(0)
vocab = 1000
human = 1 / torch.arange(1, vocab + 1) # Zipf-like word frequencies: a few common words, a long tail
human = human / human.sum()
real = torch.multinomial(human, 10_000, replacement=True) # human-written training text
print(f"Human data: {real.unique().numel()} distinct words")
for mode in ("replace", "accumulate"):
data = real
for generation in range(20):
# "Train" a model by counting word frequencies, then sample the next generation's text from it
model = torch.bincount(data, minlength=vocab) / len(data)
samples = torch.multinomial(model, 10_000, replacement=True)
data = samples if mode == "replace" else torch.cat([data, samples])
print(f"{mode}: {data.unique().numel()} distinct words after 20 generations")人类样本包含 1,000 个词中的 916 个。连续 20 代仅使用上一代输出进行训练后,剩下 302 个词,另外 614 个(大多来自长尾)则永久消失。如果每一代的样本都添加到人类数据中,则 916 个词全部保留下来,因为真实数据始终包含在每个训练集中。
证据与局限#
替换与累积之间的区别在真实模型中同样成立。Gerstgrasser 等人(2024)对一系列语言模型进行了预训练,发现用每一代的合成数据替换真实数据会导致模型崩溃,而将合成数据与原始真实数据一同累积则可避免这种情况;扩散模型和变分自编码器的实验结果也相同。对于图像生成器,Alemohammad 等人发现,如果自我消耗循环中的每一代都没有足够的新鲜真实数据,质量或多样性就会逐渐下降;偏向高质量的样本(例如挑选最佳输出)可以保住质量,但会牺牲多样性。经过刻意生成和筛选的合成数据仍被广泛使用,例如从更强大的教师模型进行知识蒸馏;模型崩溃源于不加区分地递归复用模型自身未经筛选的输出。
模型崩溃与相关概念#
- 模式崩溃: 生成对抗网络 (GAN)的生成器在一次训练过程中学会只生成少数几种输出,例如反复生成同一张脸。模型崩溃则发生在连续多个模型之间,这些模型使用彼此生成的数据进行训练。
- 灾难性遗忘: 模型在学习新任务后忘记了先前任务。模型崩溃中,任务保持不变,退化的是训练数据。
- 过拟合: 模型记住训练集,却无法很好地泛化。崩溃的模型可能很好地拟合其训练数据,但这些数据已无法代表真实分布。
- AI 垃圾内容: 发布在网上的低质量 AI 生成内容;当这类内容被抓取到训练集中时,就可能成为导致模型崩溃的数据来源之一。
防止模型崩溃#
网络规模训练使模型与其训练数据之间形成了闭环:
主要防范措施可从证据中得出:在每个训练集中保留原始人类数据,并在其上添加合成数据,而不是将其替换;追踪数据溯源,以便识别生成的样本,可使用AI 水印和 C2PA 内容凭证等信号;并在使用合成样本训练前对其进行筛选或验证。Ultralytics Platform将累积模式应用于视觉数据集:其生成相似图像操作会根据现有图像生成 1 到 16 个变化版本;用户保留的图像会作为新的未标注图像添加到真实图像旁,以便进行标注。










