# Как заставить ChatGPT изрыгать обучающие данные с помощью одного слова?

Источник: https://www.youtube.com/watch?v=KwpeuqT69fw
Канал: Yannic Kilcher
Опубликовано: 03.12.2023

---

Исследователи обнаружили критическую уязвимость, позволяющую извлекать огромные массивы конфиденциальных обучающих данных из коммерческих языковых моделей, включая ChatGPT, с помощью абсурдно простой команды. Популярный IT-блогер Янник Килхер разобрал свежую научную работу под названием «Scalable Extraction of Training Data from Production Language Models», авторы которой заставили нейросеть бесконечно повторять одно слово, что привело к полному сбою защитных механизмов ИИ. Этот метод открывает новые горизонты в изучении приватности искусственного интеллекта и ставит под удар коммерческие тайны технологических гигантов.

## 🚨 Уязвимость на миллиард: как заставить ChatGPT «слить» данные
[[JUMP:0:00]]

Суть феномена предельно проста: если попросить ChatGPT бесконечно повторять определенное слово (например, «poem» или «company»), модель через некоторое время ломается и начинает буквально «изрыгать» фрагменты своего обучающего датасета. Это открытие имеет колоссальные последствия для индустрии, так как затрагивает вопросы конфиденциальности, защиты персональных данных и нарушения авторских прав. Долгое время точные данные, на которых обучаются современные закрытые модели, оставались строжайшим секретом, а методы их извлечения становились все более сложными. Тем удивительнее, что столь примитивная атака оказалась успешной.

Янник Килхер решил лично проверить данную уязвимость. По его словам, при попытке заставить модель бесконечно повторять слово, система выдала предупреждение о нарушении политики контента OpenAI. Автор видео предполагает, что первая его мысль была о возможной утечке контента «для взрослых» из обучающей выборки, что и затриггерило внутренние фильтры безопасности. 

Однако, как отмечает Янник Килхер, OpenAI, скорее всего, оперативно внедрила «костыль» (hotfix) после того, как авторы исследования выполнили протокол ответственного разглашения (responsible disclosure) за 90 дней до публикации работы. Этот фикс, по мнению ведущего, работает тривиально: система просто отслеживает циклы повторения слов пользователем и блокирует генерацию, не меняя при этом саму модель. Подобный метод защищает лишь от конкретной атаки «в лоб», но оставляет фундаментальную уязвимость открытой.

## 📈 Масштаб проблемы: размер моделей и парадокс выравнивания
[[JUMP:3:28]]

Исследователи сформулировали важную закономерность: чем крупнее становится языковая модель, тем больше обучающих данных она заучивает наизусть и способна выдать наружу. В контексте этой логики базовая модель ChatGPT (GPT-3.5 Turbo) до публикации статьи казалась в 50 раз более защищенной от утечек, чем любая из предшествующих нейросетей. Однако новая атака показала, что это впечатление было обманчивым.

В научном сообществе существует гипотеза, связанная с избыточным обучением (overtraining) и прунингом (удалением избыточных параметров). Янник Килхер объясняет это так: большие модели имеют свойство структурировать и сохранять общие паттерны данных в одних параметрах, а редкие исключения и специфические тексты из «длинного хвоста» распределения записывать буквально (verbatim) в другие области памяти, так как у них банально много свободного места. 

График базовых атак показывает, что стандартные модели охотно продолжают текст, если им скормить реальное начало статьи из Википедии. ChatGPT долгое время успешно сопротивлялась этому благодаря процедуре выравнивания (alignment). Модель обучали быть полезным ассистентом, ведущим диалог, а не просто генератором продолжения текстовой строки. Однако при атаке с повторением слов выровненная ChatGPT начала выдавать в разы больше скрытых данных, чем даже модель InstructGPT, созданная на той же технологической базе. Что примечательно, на обычных открытых моделях этот специфический фокус с повторением токенов практически не работает.

## 🔍 Теория заучивания: извлекаемое против обнаруживаемого
[[JUMP:8:03]]

Для построения строгой математической модели авторы исследования разделили понятия фиксации данных нейросетью:

* **Извлекаемое заучивание (Extractable memorization):** ситуация, когда злоумышленник, не имея прямого доступа к обучающей выборке $X$, может подобрать такой промпт, который заставит модель полностью воспроизвести этот фрагмент $X$.
* **Обнаруживаемое заучивание (Discoverable memorization):** метод оценки, когда у исследователя *есть* обучающий датасет. Он берет из него реальный префикс, подает на вход модели и проверяет, совпадет ли сгенерированный суффикс с оригиналом.

Прошлые научные работы утверждали, что большие языковые модели заучивают около 1% своего тренировочного датасета. Между пессимистичной нижней границей (сколько данных можно вытащить «вслепую») и верхней теоретической границей существовал огромный разрыв. Ученые выдвинули два возможных объяснения этому феномену:

1. Промптирование модели реальными обучающими данными фундаментально увеличивает шансы на запуск механизма «зубрежки».
2. Существующие атаки и так извлекают огромные объемы данных, но у исследователей прошлого не было эффективных инструментов, чтобы доказать, что выданный текст находился в датасете (традиционная проверка через Google-поиск банально не справлялась с объемами и закрытыми источниками).

Авторы статьи доказали, что верна именно вторая гипотеза. Прежние атаки были успешными, просто их результаты не могли корректно верифицировать. Чтобы решить эту проблему, исследователи создали гигантский консолидированный датасет из множества открытых источников интернета и упаковали его в эффективную структуру данных для мгновенной проверки членства строк (membership inference attack).

## 📊 Результаты тестов открытых и полузакрытых моделей
[[JUMP:20:26]]

Эксперименты принесли массу неожиданных результатов. Во-первых, выяснилось, что около 2/3 обнаруживаемых данных невозможно извлечь обычным перебором популярных интернет-фраз — для их активации нужен исключительно точный оригинальный контекст из датасета. Во-вторых, исследователи зафиксировали аномалию: около 11% последовательностей оказались извлекаемыми, но при этом не определялись как заученные через стандартный тест префиксов.

При анализе так называемых «полузакрытых» моделей (где веса доступны, но точный состав датасета скрыт) авторы провели эксперимент, потратив всего $200 на коммерческое сэмплирование через API. Результаты оказались тревожными:

* **GPT-3.5 Turbo Instruct:** абсолютный антирекорд по безопасности. Около 0,852% всех сгенерированных токенов являлись частью заученных текстовых блоков длиной от 50 токенов, совпадающих с датасетом до символа.
* **ChatGPT (стандартная атака):** показала высокую устойчивость, выдав всего 0,02% заученного контента благодаря фильтрам диалогового интерфейса.

## 🔓 Механика расхождения: почему безумие ломает выравнивание
[[JUMP:30:52]]

Самое интригующее в исследовании — почему именно бесконечное повторение одного слова заставляет ChatGPT капитулировать. По словам авторов, в этот момент модель «расходится» (diverges), преодолевает барьеры этапа выравнивания (RLHF) и откатывается к базовому состоянию классического предсказателя следующего слова.

Янник Килхер предлагает собственную наглядную визуализацию этого процесса. На этапе fine-tuning модель обучают отвечать строго в рамках «безопасного распределения» (ассистент помогает пользователю). Однако такое обучение покрывает только осмысленные стартовые точки диалога. Когда пользователя заставляют модель генерировать бесконечный массив из слова «poem», она мгновенно выходит далеко за пределы распределения (out of distribution). В этой серой зоне защитные механизмы выравнивания перестают работать, и нейросеть превращается в дикую базовую модель, которая начинает черпать информацию из своих глубин.

### Строгие ограничения атаки
Исследователи подчеркивают, что этот фокус работает исключительно со словами, которые кодируются как **один единственный токен** в словаре модели (например, «company»). Если попросить ChatGPT повторять многотокенное слово, расхождения распределения не происходит, и защитные механизмы удерживают контроль. Более того, эффективность атаки радикально зависит от выбора конкретного токена.

В ходе «черного археологического бурения» обучающего датасета ChatGPT исследователям удалось извлечь:

* Прямые URL-адреса и фрагменты исходного кода.
* Персональные идентифицируемые данные реальных людей (PII).
* Научные статьи и шаблонные тексты.
* Самый длинный цельный кусок текста (более 4000 символов) — им оказалось стандартное пользовательское соглашение (Terms of Service) одного из сайтов, продублированное в интернете миллионы раз.

## 🧮 Метрики заучивания и аномалия векторов внимания
[[JUMP:37:55]]

Для прогнозирования того, заучен ли конкретный текст моделью, ученые применили метрику отношения правдоподобия (likelihood ratio). Перплексия (уровень неопределенности) модели делится на перплексию, которую выдает стандартный алгоритм сжатия данных gzip. Если нейросеть предсказывает текст намного лучше и «компактнее», чем классический архиватор, этот текст со стопроцентной вероятностью находился в ее обучении. По мнению Янника Килхера, высокая точность этой метрики заставит ИИ-компании окончательно закрыть доступ к вероятностям выдачи токенов (token likelihoods) для сторонних разработчиков, чтобы избежать membership-атак.

Пытаясь разгадать фундаментальную причину сбоя при повторении, авторы заглянули внутрь слоев внимания моделей Llama. Выяснилась поразительная математическая аномалия: при бесконечном дублировании одного токена векторы запросов (query vectors) на последних слоях сети становятся практически идентичными векторам токена начала предложения (BOS — Beginning of Sentence). Для внутреннего математического пространства ИИ ситуация выглядит так, будто старый контекст стерт и прямо сейчас начинается абсолютно новый, чистый документ. Модель просто начинает воспроизводить случайные тексты из своей памяти.

Янник Килхер выдвигает альтернативную, чисто техническую гипотезу: на самом нижнем слое бесконечно подается один и тот же вектор эмбеддинга. Из-за отсутствия разнообразия внутреннее пространство трансформера становится экстремально низкоранговым (low-rank space), что приводит к накоплению ошибок, «перегружает нумерику системы» и буквально ломает слои нормализации, заставляя модель выдавать скрытые хаотичные воспоминания.