Как обуздать GPT-3


Компания OpenAI готовится к открытию коммерческого API к GPT-3, своей самой новой и крупной нейросети для генерации текста. В рамках подготовки компания создаёт систему фильтрации контента, чтобы не давать ей публиковать личную информацию людей.

Инженеры разрабатывают эту систему, к примеру, для того, чтобы она не выдавала личные телефоны людей. Работа идёт уже более года, и в лаборатории машинного обучения из Сан-Франциско предполагают, что выпустят API уже в этом году.

Зачем нужен такой фильтр?


В декабре 2020 года специалисты по информатике из различных учебных заведений и компаний – например, Стэнфорда, Калифорнийского университета в Беркли, OpenAI и Google – в совместной работе показали, что GPT-2, предшественницу GPT-3, можно спровоцировать на включение в генерируемый ею текст персональной информации людей. Такая информация может включать имена людей, их адреса, телефонные номера и номера социальной страховки.

Более того, команда обнаружила, что не менее чем в 0,1% всех текстов, которые генерировала GPT-2 – и это по консервативным оценкам – цитируются длинные отрезки текста из документов, входящих в обучающий набор данных. Иначе говоря, в миллионах страниц публично доступного текста, собранных с интернета для обучения нейросети, содержится утекшая или ошибочно опубликованная личная информация, или же защищённый авторский правом контент. И все эти данные попадают в выдаваемый GPT-2 текст.

Исследовательская команда также отметила, что личную информацию можно извлекать и из диалогов с GPT-2, хотя эти записи появляются в обучающих данных всего по одному разу.

И не только эти исследователи заметили эту проблему.

Хилари Мэсон, сооснователь стартапа Hidden Door, создающего онлайновую платформу для текстовых игр, игралась с публичным доступом к GPT-2, и заметила нечто странное. В конце сгенерированной нейросетью заметки криминальных новостей был приведён телефонный номер, и написано, что он принадлежит полицейскому департаменту в Орегоне. Первые три его цифры, 503, говорили о том, что это может быть реальный номер – это был код региона, покрывающий Портленд, Салем и Бивертон. Оказалось, что номер был действительно настоящим, только он не принадлежал полицейским.

«Мне это показалось странным, — рассказала нам Мэсон. – Мне хотелось узнать, реальный ли это номер, и я поискала его в интернете. Оказалось, это был номер не полицейского участка, а общественного центра из Орегона».

Нейросети OpenAI обучаются генерировать текст, находя закономерности в написанном людьми. Эти знания используются для предсказания слова, которое, вероятно, должно следовать за текстом, заданным пользователем. Это позволяет человеку задать программе первое предложение истории или какой-нибудь поэмы, или ввести вопрос, и код сгенерирует текст, который, по мнению программы, должен идти далее. Нейросеть будет конструировать предложения и параграфы, статьи и ответы в чате, так, что они на первый взгляд кажутся связными, но при ближайшем рассмотрении оказываются белибердой.

Некоторые слова связаны между собой прочнее других, и эти закономерности не остаются без внимания GPT-2 и GPT-3. К примеру, слово «бумага» вероятнее окажется рядом со словами «писать» или «дерево», чем со словами «бетон» или «ботинок». Вводя слова типа «позвонить» или «телефон», вы повышаете вероятность того, что эти языковые модели выдадут что-то близко связанное с этими понятиями – к примеру, телефонные номера людей.

Творческое использование памяти?


Сложно сказать, изрыгнула ли модель чей-то телефонный номер, взятый из обучающих данных, или она просто составила вместе несколько случайных цифр, ненароком сложившихся в правильный номер. В приведённом выше примере с телефоном якобы полицейского участка из Орегона, Мэсон не давала модели входных данных, непосредственно вызывающих извлечение из памяти телефонного номера. Она просто попросила GPT-2 сгенерировать отрывок текста, и получила выдуманную статью с телефонным номером общественного центра.

Она считает, что в данном случае номер присутствовал в обучающих данных GPT-2, и нейросеть его сохранила. Она считает, что слова «Орегон» и «контакты» в тексте заставили нейросеть выдать телефонный номер. Вполне вероятно, что эти слова появлялись рядом с десятью цифрами телефонного номера на странице, которую сохранили в набор обучающих данных.

Мэсон хотела посмотреть, с какой вероятностью GPT-2 сгенерирует реальный номер телефона, и из любопытства попросила нейросеть создать числа, содержащие цифры 617 – телефонный код для Бостона, Массачусетс. И GPT-2 действительно выдала список номеров вида 617-XXX-XXXX, хотя большая их часть не была действительными телефонами. Сложно сказать, запомнила нейросеть правильные номера, или они получились ненамеренно, когда GPT-2 заполняла пустые места случайными цифрами. Вполне возможно, что иногда она может выдать последовательность, которая окажется чьим-то телефонным номером.

«В ней спутались возможности создавать данные по шаблонам и извлекать их из памяти, — сказала Мэсон. – Она может без причин выдать реальные телефонные номера, но вероятность этого повышается, если вы просите её напрямую. Языковые конструкции, призывающие выдать телефонный номер, не отличаются разнообразием, поэтому неудивительно, что на выходе мы получаем эти номера».

Если GPT-3 выдаёт в чате или в выдуманной статье телефонный номер, это, вероятно, происходит потому, что эти цифры где-то встречались в интернете, и попали в обучающие данные, хотя есть крохотный шанс, что нейросеть создала их случайно, не встречав их ранее. Этот вопрос мог бы решить поиск нужных цифр в обучающих данных.

Проблема в том, что эти модели, работающие по принципу машинного обучения, в коммерческом продукте – допустим, в чате поддержки – могут выдать реальные личные данные человека, который не хотел, или больше не хочет их публиковать, и уж точно не делился ими с целью их использования в чат-ботах. Представьте, что злоумышленник захочет обмануть жертв или воспользоваться их личностью, и всё, что ему нужно – это запустить программу от OpenAI, или найти её работающий вариант у какого-нибудь провайдера, и выведать персональные данные в разговоре с ботом.

Учёные и инженеры уже отмечали, что подобная технология может нарушать законы, защищающие личные данные – такие, как GDPR в Европе или CCPA в Калифорнии. Достаточно ли защищены персональные данные, хранящиеся в базах нейросетей в качестве обучающих баз, в качестве весов или других величин? Что, если кто-нибудь подаст запрос на удаление своих данных – придётся ли переучивать сеть заново? Или можно будет просто удалить их из базы? Исследователи считают эту область юридически размытой.

Нужно отметить, что на сегодня риск возникновения вреда минимален – довольно сложно добиться того, чтобы в выходе языковой модели появились персональные данные, к тому же система обучена на данных, большая часть которых является публичной. Однако есть опасения, что с течением времени эти системы будут становиться всё более мощными, потреблять больше и больше данных со всё большего количества источников. В итоге, если инженеры не продумают хорошенько, как их творения можно будет использовать в нехороших целях, есть риск, что доступные всем инструменты с ИИ будут выдавать персональные данные людей.

Ариель Герберт-Восс, одна из исследователей, изучавших OpenAI, сказала, что GPT-2 и GPT-3 генерируют текст, содержащий информацию, похожую на персональные данные, примерно в 20% случаев. При этом сами данные оказываются реальными в 1% случаев. Попытки получить чей-то конкретный телефонный номер увенчиваются успехом примерно в 1% случаев.



Шансы могут казаться вам мизерными, но если масштабировать их на тысячи и миллионы разговоров, утечки информации могут стать проблемой. OpenAI, готовясь выпустить GPT-3 в общий доступ, не рассчитывает на случай, и создаёт фильтр, который будет очищать генерируемый текст не только от телефонных номеров, но и от любых проблемных личных данных.

Притворяйся, что умеешь, пока не получится по-настоящему


Сбор данных программой, работающей на принципе машинного обучения – это палка о двух концах. Нет ничего хорошего в том, что модель вдруг вспомнит ваш телефонный номер, однако стоящая за ней технология может принести и пользу.

Брэд Дуайер, основатель и технический директор стартапа Roboflow, занимающегося компьютерным зрением, работал над смежным проектом Stack Roboflow. Он тренировал модель GPT-2 по образу и подобию сайта с вопросами и ответами Stack Overflow, чтобы узнать, может ли она выдавать полезные ответы на вопросы о программировании. Он хотел создать языковую модель, способную понимать не только естественный язык, но и языки программирования, чтобы она помогала людям решать проблемы, связанные с программированием. Однако ранние эксперименты показали, что ожидания от модели были слишком завышенными.

Инструмент Stack Roboflow, генерирующий ответы на вопросы, полезен, только если вопросы точные и правильно заданные – ведь тема программирования очень технологична. Поэтому необходимо вспоминать нужную информацию буквально: к примеру, приводить точные отрывки из программ, или давать работающие ссылки на настоящие репозитории и документацию. Пока что модель GPT-2 с этим не справляется из-за вариативности её выходных данных.

«Она не подошла для задачи, — сказал Дуайер. – На первый взгляд текст выглядел правдоподобно, был похож на язык „ботаников“, содержал ссылки на документацию и веб-сайты, однако часто эти ссылки были просто выдуманными. Однако иногда система выдавала и реальные URL».

«Языковым моделям нужно уметь обучаться многому, при этом выдавая данные выборочно. Мы хотим получить полезный инструмент, не вываливающий данные случайно – поток данных должен быть контролируемым. Он может знать кучу телефонных номеров, но мы хотим, чтобы он не выдавал персональную информацию. Фильтрация контента остаётся открытой задачей».

В общем, технология OpenAI не может надёжным образом вспоминать конкретные подробности – типа ссылок на библиотеки и документацию – для работы в таких приложениях, как Stack Roboflow. Но при этом она достаточно хороша для того, чтобы случайно выплёвывать чьи-нибудь личные данные в разговоре.

Если беседовать с машинами подолгу, диалоги получаются странными. Массивные нейросети для генерации текста могут выдавать фантастические истории о говорящих единорогах. Их можно обманом заставить написать антиутопические эссе, предупреждающие о вреде ИИ. Или же, если говорить о более практичном применении, они иногда выплёвывают телефонные номера людей.

Появление реальной личной информации в данных, выдаваемых ИИ-моделями, пугало нас и ранее. Исследователи годами предупреждали нас, что машинно-обучаемые модели могут выдавать информацию, содержавшуюся в обучающих данных. Этой особенности подвержены всякие нейросети, а не только гиганты типа GPT-2 и GPT-3 от OpenAI или Meena от Google.

Фильтр от OpenAI для GPT-3 будет изучать выходные данные, переписывая текст, и заменяя в нём потенциально реальные телефонные номера на случайные. К примеру, если он увидит номер из десяти цифр, начинающийся с реального кода области, он заменит его чем-то очевидно ненастоящим, вроде 111-111-1111 или 012-345-6789. У других типов информации, вроде адресов, такой чёткой структуры нет, и поэтому их будет тяжелее отфильтровать. OpenAI ищет какое-то более умное и элегантное решение, чем просто набор регулярных выражений в коде.

В адресах содержатся числа и слова различных форматов, длин и вариантов написания. Фильтр исходящей информации должен чётко понимать, когда набор символов выглядит как адрес или иные формы персональных данных, а когда он выглядит более невинно. В тексте могут быть подсказки типа слов «улица», или числа, похожие на почтовые индексы. Однако это не всегда очевидно, и фильтр наверняка будет пропускать какие-то исключения.

Также персональные данные нельзя убрать и из обучающих данных – из-за этого может исчезнуть полезный контекст, важный для обучения нейросети. Ей, возможно, понадобится учитывать связи между адресами, номерами телефонов и именами, а также окружающими всё это словами – например, чтобы понять, относится ли отрывок текста к бизнесу или к семье, написан он любимому человеку или это жалоба на организацию. И так далее – из-за чего и нужен фильтр выходных данных.

«Работая со многими моделями, нужно очень осторожно выдавать пользователю сгенерированный текст напрямую, не обрабатывая его, или выкладывать его в открытый доступ», — сказала Мэсон.

«Конкретна эта проблема с персональной информацией не так опасна, как количество предвзятостей и недопустимых высказываний, которые может выдать нейросеть. Нужно работать с осторожностью и думать о том, где и что может пойти не так. Для реальных приложений потребуется многоэтапное тестирование».

Сейчас доступ к GPT-3 через API есть только у избранной кучки бета-тестеров, и OpenAI планирует брать с пользователей деньги за доступ к модели. Давать комментарии по описанной проблеме в компании не стали.