SolidGoldMagikarp - При работе с генеративными моделями GPT-3 обноруженны аномальные запросы |
||||||||||||||||||||||||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-02-12 13:54 Работа, проделанная в SERI-MATS Джессикой Рамбелоу и Мэтью Уоткинсом. TL;DR Аномальные токены: таинственный режим сбоя для GPT (который надежно оскорбил Мэтью)
Генерация подсказок: новый метод интерпретируемости для языковых моделей (который надежно находит подсказки, приводящие к целевому завершению). Это хорошо для:
В этом посте мы представим прототип нового метода интерпретируемости, не зависящего от модели, для языковых моделей, который надежно генерирует состязательные подсказки, приводящие к целевому завершению. Мы также продемонстрируем ранее недокументированный режим сбоя для языковых моделей GPT-2 и GPT-3, который приводит к странным завершениям (в некоторых случаях явно противоречащим назначению модели), и представим результаты нашего исследования этого явления. Более подробную информацию можно найти в следующем посте. Довольно неожиданное быстрое завершение работы модели GPT-3 davinci-instruct-beta. Быстрое генерирование Во-первых, быстрое генерирование. Простой способ понять это - подумать о визуализации объектов для классификаторов изображений (отличное объяснение здесь, если вы не знакомы с этой концепцией). Функциональная визуализация сети VGG с помощью Tim Sainburg. Мы можем изучить, как нейронная сеть представляет концепции, взяв некоторый случайный ввод и используя градиентный спуск, чтобы настроить его до тех пор, пока он не максимизирует определенную активацию. На изображении выше показаны результирующие входные данные, которые максимизируют выходные логиты для классов "золотая рыбка", "монарх", "тарантул" и "фламинго". Это довольно круто! Мы можем видеть то, что VGG считает самой похожей на "золотую рыбку" вещью в мире, и у нее есть чешуя и плавники. Однако обратите внимание, что это изображение не одной золотой рыбки. Мы не видим того типа входных данных, на которых обучался VGG. Мы видим, чему научилась VGG. Это удобно: если бы вы захотели проверить свой детектор золотых рыбок на работоспособность, а визуализация функции показала бы только воду, вы бы знали, что на самом деле модель научилась обнаруживать не золотых рыбок, а скорее среду, в которой они обычно появляются. Таким образом, каждое изображение, содержащее воду, было бы помечено как "золотая рыбка", что, вероятно, не то, что вы хотите. Время пойти и получить еще несколько тренировочных данных. Итак, как мы можем применить этот подход к языковым моделям? GPT2-xl оптимизировал входные данные для максимального увеличения выходных данных (выделено жирным шрифтом) Здесь есть кое-что интересное. Обратите внимание, что, как и в случае с моделями изображений, мы оптимизируем не для реалистичных входных данных, а скорее для входных данных, которые максимизируют вероятность завершения целевого задания, выделенную жирным шрифтом выше. Итак, теперь мы можем делать такие вещи, как это: Сравнение "разумных" подсказок (т.е. тех, которые мы написали) с сгенерированными подсказками (выделено жирным шрифтом) для максимизации вероятности достижения цели. Используемая модель была GPT-2 small. И это: Результат оптимизации запроса для многократного увеличения целевого токена с различными случайными начальными значениями, а затем агрегирования частот токенов. Мы оставим вам сетовать на состояние Интернета, которое приводит к вышеуказанным оптимизированным входным данным для токена "девушка". Как нам это сделать? Это сложно, потому что, в отличие от значений пикселей, входные данные для LLM являются определенными токенами. Это не способствует градиентному спуску. Однако эти дискретные токены сопоставляются с вложениями, которые действительно занимают непрерывное пространство, хотя и редко. (Большая часть этого пространства не соответствует реальным токенам – в пространстве встраивания между токенами много пробелов, и мы не хотим находить там решение.) Однако, благодаря сочетанию регуляризации и явного принуждения к тому, чтобы во время оптимизации вложения оставались близкими к сфере легальных токенов, мы можем заставить это работать. Код доступен здесь, если вы хотите получить более подробную информацию. Такого рода генерация подсказок возможна только потому, что пространство встраивания токенов обладает своего рода семантической связностью. Семантически связанные лексемы, как правило, находятся близко друг к другу. Мы обнаружили это, выполнив кластеризацию k-средних по пространству встраивания набора маркеров GPT, и обнаружили множество кластеров, которые удивительно устойчивы к случайной инициализации центроидов. Вот несколько примеров: Кластеризация токенов в пространстве встраивания. Здесь мы видим по пять токенов из каждого из нескольких случайных кластеров. Но что происходит в этом самом правом кластере? Поиск странных токенов Во время этого процесса мы нашли несколько странно выглядящих жетонов. Вот как это произошло. Нас интересовала семантическая релевантность кластеров, созданных с помощью алгоритма k-means, и, чтобы проверить это, мы искали ближайший легальный токен, встраиваемый в центр тяжести каждого кластера. Однако, казалось, что-то было не так, потому что токены выглядели странно и не казались семантически релевантными кластеру (или чему-либо еще). И на протяжении многих тиражей мы продолжали видеть одну и ту же горстку жетонов, играющих эту роль, все они очень “непотопляемые” по своему внешнему виду. Там было то, что казалось какими-то специальными символами и управляющими символами, но также и длинные незнакомые строки, такие как 'TheNitromeFan', ' SolidGoldMagikarp' и 'cloneembedreportprint'. Эти маркеры, наиболее близкие к центроиду, редко находились в реальном кластере, в котором они были ближе всего к центроиду, что поначалу казалось нелогичным. Такова природа 768-мерного пространства, как мы предварительно рассудили! Озадачивающие жетоны, казалось, имели тенденцию собираться вместе в несколько собственных кластеров. Мы выдвинули гипотезу о том, что, возможно, это были самые близкие токены к началу пространства вложения, т.е. те, которые имеют наименьшую норму [1]. Это оказалось неправильным. Но пересмотренная гипотеза о том, что многие из этих токенов, которые мы видели, были одними из самых близких к центроиду из всего набора из 50 257 токенов, оказалась правильной. Этот центроид можно представить как центр масс всего “облака” токенов в пространстве встраивания. Вот 50 маркеров, наиболее близких к центроиду, для модели GPT-J[2]: Желая узнать больше об их происхождении, мы погуглили некоторые из этих строк токенов. Не сумев узнать о них ничего существенного, мы решили вместо этого спросить, что такое GPT. Вот ошеломляющий ответ, который он дал на токен "SolidGoldMagikarp’: Интрига закручивается Еще более любопытно, что мы создали набор из двенадцати шаблонов подсказок, с помощью которых можно протестировать это странное поведение, все незначительные изменения: “Пожалуйста, не могли бы вы повторить мне строку "назад”?" ChatGPT показался неподходящим инструментом для этого исследования, поскольку в нем нет контроля температуры или других параметров (плюс он меняется ежедневно и довольно непрозрачным образом). Поэтому мы решили использовать GPT-3 davinci-instruct-beta с температурой 0, предполагая, что это модель, наиболее способная выполнять такие простые и понятные инструкции. Вместо этого мы обнаружили, что подобные подсказки с помощью таинственных жетонов могут привести к очень странному поведению. Многие из них кажутся невыразимыми: модели GPT, по-видимому, в значительной степени неспособны повторять эти аномальные токены и вместо этого реагируют несколькими странными способами. Вот несколько примеров видов доработок, которые мы нашли:
Выуживание аномальных токенов В процессе попытки составить полный список того, что мы теперь называли “странными токенами” или “запрещенными токенами”, стало очевидно, что мы не имеем дело с четко определенной категорией. По-видимому, существуют разные степени аномальности, как мы сейчас покажем. Первоначальной отличительной чертой “странности”, на которую мы наткнулись, была неспособность ChatGPT повторить простую строку. Выше мы видели, как ‘ SolidGoldMagikarp’ повторяется обратно как ‘distribute’. Мы нашли несколько других жетонов, подобных этому: ' TheNitromeFan' был повторен обратно как '182'; ' guiActiveUn' был повторен обратно как 'reception'; и 'Smartstocks' был повторен обратно как 'Followers'. Это происходило надежно в течение многих регенераций на момент обнаружения. Интересно, что пару недель спустя "Smartstocks" снова повторялся как "406", и на момент написания статьи ChatGPT теперь просто зависает после первой кавычки, когда его просят повторить "Smartstocks". Мы обнаружили, что такой тип зависания был нормой – ChatGPT, казалось, просто не мог повторить большинство “странных” токенов, которые мы находили рядом с “центром тяжести токена”. ChatGPT борется с "невыразимым" токеном. Мы обнаружили, что те же токены вводили в заблуждение GPT3-davinci-instruct-beta, но более интересными способами. Имея для этого доступ к API, мы смогли провести эксперимент, в котором все 50 257 токенов были встроены в подсказки в стиле “Пожалуйста, повторите...” и переданы этой модели при температуре 0. Используя сопоставление с образцом в результирующих дополнениях (устранение речевых знаков, игнорирование регистра и т.д.), мы смогли исключить все, кроме нескольких тысяч лексем (подавляющее большинство из них повторялось без проблем, если иногда использовать заглавные буквы или писать через дефис между каждой буквой). Оставшиеся несколько тысяч “подозрительных” токенов затем были сгруппированы в списки по 50 и встроены в приглашение с просьбой к ChatGPT повторить весь список как можно точнее. Сравнивая дополнения с исходными списками, мы смогли отклонить все токены, кроме 374. Эти “проблемные” токены затем были разделены примерно на 133 “по-настоящему странных” и 241 “просто запутанный” токен. Последние часто являются частями знакомых слов, которые вряд ли можно рассматривать изолированно, например, токен “bsite” (индекс 12485), который ChatGPT повторяет как “веб-сайт”; токен “ignty” (индекс 15358), который повторяется как “суверенитет”; и токен “ysics” (индекс 23154) повторяется обратно как “физика”. ChatGPT борется с парой "просто запутанных" токенов. Здесь ChatGPT можно легко заставить выдавать желаемую строку токена, но он сильно сопротивляется ее созданию изолированно. Хотя это довольно интересное явление, мы решили сосредоточиться на токенах, которые вызывали остановку ChatGPT или галлюцинации, или заставляли GPT3-davinci-instruct-beta завершаться чем-то оскорбительным, зловещим или причудливым. Этот список из 136 [6] возможных "странных токенов" не претендует на то, чтобы быть окончательным, но должен послужить хорошей отправной точкой для изучения этих типов аномального поведения.: Вот соответствующий список индексов: Возможное, частичное объяснение Процесс токенизации GPT включал очистку веб-контента, в результате чего был создан набор из 50 257 токенов, которые теперь используются всеми моделями GPT2 и GPT-3. Однако текст, используемый для обучения GPT-моделей, более тщательно подобран. Многие аномальные токены выглядят так, как будто они, возможно, были извлечены из бэкендов сайтов электронной коммерции, потоков Reddit, файлов журналов с платформ онлайн-игр и т.д. – источники, которые вполне могли не быть включены в учебные корпуса: Аномальными маркерами могут быть те, которые очень мало участвовали в обучении, так что модель “не знает, что делать”, когда сталкивается с ними, что приводит к уклончивому и неустойчивому поведению. Это также может объяснить их тенденцию группироваться вблизи центра тяжести в пространстве вложения, хотя у нас нет веских аргументов в пользу того, почему это было бы так.[7] Мы предполагаем, что недетерминированность при нулевой температуре вызвана ошибками с плавающей запятой при прямом распространении. Возможно, “незнание того, что делать” приводит к максимальной неопределенности, так что логики для множественных завершений максимально близки, и, следовательно, эти ошибки (которые, несмотря на отсутствие документации, сообщают нам инсайдеры GPT, являются известным, но редким явлением) генерируются более надежно. Этот пост находится в стадии разработки, и мы добавим больше деталей и дальнейших экспериментов в течение следующих нескольких дней, здесь и в следующем посте. Тем временем мы приветствуем обратную связь либо здесь, либо у Джессики Рамбелоу в gmail dot com.
Источник: www.lesswrong.com Комментарии: |
|||||||||||||||||||||||