Model Collapse
Коллапс модели — это потеря редких данных и разнообразия, когда генеративные модели обучаются на результатах более ранних моделей — поколение за поколением.
Коллапс моделей — это деградационный процесс, при котором генеративные модели, обученные на данных, созданных более ранними моделями, с каждым поколением теряют информацию об исходном распределении данных. Сначала исчезают редкие случаи в хвостах распределения, а после достаточного числа итераций результаты сходятся к узкому, повторяющемуся набору наиболее распространённых шаблонов. В статье, опубликованной в Nature в 2024 году, Шумайлов и соавторы продемонстрировали этот эффект для больших языковых моделей (LLM), вариационных автоэнкодеров и моделей гауссовых смесей. Риск растёт по мере того, как тексты, сгенерированные ИИ, и изображения занимают всё большую часть веб-данных, на которых обучаются будущие модели.
Почему происходит коллапс#
Каждое поколение обучает модель на конечной выборке, а затем создаёт данные для следующего поколения, выбирая образцы из полученного распределения. Шумайлов и соавторы выделяют три ошибки, которые накапливаются от поколения к поколению: ошибка статистического приближения, поскольку конечная выборка не охватывает редкие события; ошибка выразительности модели, поскольку она не может точно представить истинное распределение; и ошибка функционального приближения, поскольку процедуры обучения, такие как стохастический градиентный спуск, несовершенны. Если редкое событие исчезает из данных одного поколения, следующая модель присваивает ему нулевую вероятность, и оно больше не возвращается. Авторы различают ранний коллапс, при котором исчезают хвосты распределения, и поздний коллапс, при котором распределение сужается до нескольких распространённых вариантов с низкой дисперсией.
В следующей симуляции таблица частот слов служит моделью. Каждое поколение подсчитывает 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")В человеческой выборке есть 916 из 1000 слов. После 20 поколений, каждое из которых обучается только на результатах предыдущего поколения, остаётся 302 слова; остальные 614, преимущественно из длинного хвоста, исчезают навсегда. Если же каждое поколение добавляет свои выборки к человеческим данным, сохраняются все 916 слов, поскольку реальные данные остаются в каждом обучающем наборе.
Доказательства и ограничения#
Различие между заменой и накоплением данных подтверждается и на реальных моделях. Герстграссер и соавторы (2024) предварительно обучили последовательности языковых моделей и обнаружили, что замена реальных данных на синтетические данные каждого следующего поколения ведёт к коллапсу, тогда как накопление синтетических данных вместе с исходными реальными данными предотвращает его. Аналогичные результаты получены для диффузионных моделей и вариационных автоэнкодеров. Для генераторов изображений Алемохаммад и соавторы выяснили, что без достаточного количества свежих реальных данных в каждом поколении самопоглощающего цикла качество или разнообразие постепенно снижается. Смещение выборок в сторону качества, например отбор лучших результатов, позволяет сохранить качество за счёт разнообразия. Намеренно сгенерированные и отфильтрованные синтетические данные широко применяются, например при дистилляции знаний от более сильной модели-учителя. Коллапс возникает из-за бездумного рекурсивного использования собственных нефильтрованных результатов модели.
Коллапс моделей и смежные понятия#
- Коллапс мод: генератор генеративной состязательной сети (GAN) за один цикл обучения учится выдавать лишь несколько типов результатов, например раз за разом генерировать одно и то же лицо. Коллапс моделей развивается между последовательными моделями, обученными на данных друг друга.
- Катастрофическое забывание: модель утрачивает ранее освоенную задачу после обучения новой. При коллапсе моделей задача остаётся прежней, а качество обучающих данных ухудшается.
- Переобучение: модель запоминает обучающую выборку и плохо обобщает. Коллапсировавшая модель может хорошо соответствовать обучающим данным, но эти данные уже не отражают реальное распределение.
- ИИ-мусор: низкокачественный контент, созданный ИИ и опубликованный в интернете; он может способствовать коллапсу, когда попадает в обучающие наборы после сбора данных.
Как предотвратить коллапс моделей#
Обучение на данных масштаба всего интернета замыкает цикл между моделями и данными, на которых они обучаются:
Основные меры защиты следуют из полученных данных: сохраняй исходные данные, созданные людьми, в каждом обучающем наборе и добавляй синтетические данные, а не заменяй ими исходные; отслеживай происхождение данных, чтобы выявлять сгенерированные образцы, используя такие средства, как водяные знаки ИИ и учётные данные контента C2PA; фильтруй синтетические образцы или проверяй их перед обучением. Платформа Ultralytics применяет подход с накоплением данных к наборам данных для компьютерного зрения: действие «Создать похожие изображения» создаёт от 1 до 16 вариантов существующего изображения. Варианты, которые пользователь оставляет, добавляются рядом с реальными изображениями как новые изображения без меток, готовые к аннотированию.










