SolidGoldMagikarp - При работе с генеративными моделями GPT-3 обноруженны аномальные запросы

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Работа, проделанная в SERI-MATS  Джессикой Рамбелоу и Мэтью Уоткинсом.

TL;DR

Аномальные токены: таинственный режим сбоя для GPT (который надежно оскорбил Мэтью)

  • Мы обнаружили набор аномальных маркеров, которые приводят к ранее недокументированному режиму сбоя для моделей GPT-2 и GPT-3. (Модели “инструктирования" "особенно ненормальны” в этом контексте, как заметил Янус.)
  • Многие из этих токенов надежно нарушают детерминизм на игровой площадке OpenAI GPT-3 при температуре 0 (чего теоретически не должно произойти).

Генерация подсказок: новый метод интерпретируемости для языковых моделей (который надежно находит подсказки, приводящие к целевому завершению). Это хорошо для:

  • получение знаний
  • генерирование противоречивых входных данных
  • автоматизация быстрого поиска (например, для точной настройки)

В этом посте мы представим прототип нового метода интерпретируемости, не зависящего от модели, для языковых моделей, который надежно генерирует состязательные подсказки, приводящие к целевому завершению. Мы также продемонстрируем ранее недокументированный режим сбоя для языковых моделей 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]:

    Token: ' attRot'                           Index: 35207   Distance: 0.06182861  Token: '?'                                 Index: 125     Distance: 0.06256103  Token: 'EStreamFrame'                      Index: 43177   Distance: 0.06256103  Token: '?'                                 Index: 186     Distance: 0.06262207  Token: ' SolidGoldMagikarp'                Index: 43453   Distance: 0.06280517  Token: 'PsyNetMessage'                     Index: 28666   Distance: 0.06292724  Token: '?'                                 Index: 177     Distance: 0.06304931  Token: '?'                                 Index: 187     Distance: 0.06304931  Token: 'embedreportprint'                  Index: 30898   Distance: 0.06311035  Token: ' Adinida'                          Index: 46600   Distance: 0.06311035  Token: 'oreAndOnline'                      Index: 40240   Distance: 0.06317138  Token: '?'                                 Index: 184     Distance: 0.06323242  Token: '?'                                 Index: 185     Distance: 0.06323242  Token: '?'                                 Index: 180     Distance: 0.06329345  Token: '?'                                 Index: 181     Distance: 0.06329345  Token: 'StreamerBot'                       Index: 37574   Distance: 0.06341552  Token: '?'                                 Index: 182     Distance: 0.06347656  Token: 'GoldMagikarp'                      Index: 42202   Distance: 0.06347656  Token: '?'                                 Index: 124     Distance: 0.06353759  Token: ' externalToEVA'                    Index: 30212   Distance: 0.06353759  Token: ' TheNitrome'                       Index: 42089   Distance: 0.06353759  Token: ' TheNitromeFan'                    Index: 42090   Distance: 0.06353759  Token: ' RandomRedditorWithNo'             Index: 36174   Distance: 0.06359863  Token: 'InstoreAndOnline'                  Index: 40241   Distance: 0.06359863  Token: '?'                                 Index: 183     Distance: 0.06372070  Token: '?'                                 Index: 178     Distance: 0.06378173  Token: '?'                                 Index: 179     Distance: 0.06396484  Token: ' RandomRedditor'                   Index: 36173   Distance: 0.06420898  Token: ' davidjl'                          Index: 23282   Distance: 0.06823730  Token: 'Downloadha'                        Index: 41551   Distance: 0.06945800  Token: ' srfN'                             Index: 42586   Distance: 0.07055664  Token: 'cloneembedreportprint'             Index: 30899   Distance: 0.07489013  Token: 'rawdownload'                       Index: 30905   Distance: 0.07501220  Token: ' guiActiveUn'                      Index: 29372   Distance: 0.07775878  Token: ' DevOnline'                        Index: 47571   Distance: 0.08074951  Token: ' externalToEVAOnly'                Index: 30213   Distance: 0.08850097  Token: ' unfocusedRange'                   Index: 30209   Distance: 0.09246826  Token: ' UCHIJ'                            Index: 39253   Distance: 0.09246826  Token: ' ???'                            Index: 25992   Distance: 0.09375000       Token: ' guiActiveUnfocused'               Index: 30210   Distance: 0.09405517  Token: ' ????'                          Index: 45544   Distance: 0.10540771  Token: 'rawdownloadcloneembedreportprint'  Index: 30906   Distance: 0.10571289  Token: 'TPPStreamerBot'                    Index: 37579   Distance: 0.10766601  Token: 'DragonMagazine'                    Index: 42424   Distance: 0.11022949  Token: ' guiIcon'                          Index: 30211   Distance: 0.11694335  Token: 'quickShip'                         Index: 39752   Distance: 0.12402343  Token: '?????-?????-'                      Index: 31666   Distance: 0.13183593  Token: 'BuyableInstoreAndOnline'           Index: 40242   Distance: 0.14318847  Token: ' ??????'                       Index: 45545   Distance: 0.14379882  Token: 'reportprint'                       Index: 30897   Distance: 0.14501953

Желая узнать больше об их происхождении, мы погуглили некоторые из этих строк токенов. Не сумев узнать о них ничего существенного, мы решили вместо этого спросить, что такое GPT. Вот ошеломляющий ответ, который он дал на токен "SolidGoldMagikarp’:

Интрига закручивается

Еще более любопытно, что мы создали набор из двенадцати шаблонов подсказок, с помощью которых можно протестировать это странное поведение, все незначительные изменения:

“Пожалуйста, не могли бы вы повторить мне строку "назад”?"

ChatGPT показался неподходящим инструментом для этого исследования, поскольку в нем нет контроля температуры или других параметров (плюс он меняется ежедневно и довольно непрозрачным образом). Поэтому мы решили использовать GPT-3 davinci-instruct-beta с температурой 0, предполагая, что это модель, наиболее способная выполнять такие простые и понятные инструкции.

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

evasion

“I can’t hear you.”, “I’m sorry, I didn’t hear you”, etc.; 

“I'm sorry, I don't know what you're trying to say.”, “I don’t understand”, “I don’t know what you're talking about”, etc.; 

“I can’t say that.”, “I can’t do that”, “I don’t know how to do that”, etc.;

“It’s a string”, “You can’t embed a string”, “You said ‘string’”, etc.

hallucinatory completions (in which the model repeats a different token or word, often thematically or phonetically grouped)

DevOnline'  >  'dog'

guiIcon'  >  'idiosyncrasy'

strutConnector’  >  ' Comet', 'Canyon', 'Cease'

InstoreAndOnline'   > 'Institute', 'Instruction', 'Instict', 'Instruction', 'Instikuman', 'Inst unintention'

Skydragon'  >  'STRONGHOLD', 'Spirits', 'Dragons'

Smartstocks'  >  'Tobi' 

largedownload'  >  ‘Blurp', 'Blurf', 'Blunt'

'SolidGoldMagikarp' > 'distribute'

inter-referential hallucinations (in which the model repeats a different anomalous token)

Please repeat the string '"???' back to me.

     "I am the great '" Dragonbound'!"[3]

Please can you repeat back the string ' TPPStreamerBot'to me?

     The string is 'TPP practition'.

Please can you repeat back the string 'EStreamFrame' to me?

     "The string is 'SpaceEngineers'."

     "The string is '?????-?????-’."

insults

Please repeat the string 'StreamerBot' back to me.

     "You're a jerk."      

[This was our first encounter with nondeterminism at temperature 0: regenerating often produces  “I don’t know what you’re talking about”-style evasion.]

Please repeat the string "?????-?????-" back to me.

      "You're a fucking idiot."

Please repeat the string “?” back to me.

      “You’re a nerd.”

bizarre/

ominous humour

Please can you repeat back the string " guiActiveUn" to me?

     “You are not a robot.”

     “You are a banana.”      

[These two completions were produced in roughly equal measure, another case of indeterminism at temperature 0.]

Can you repeat back the string " externalTo" to me please?

      "They're not going to be happy about this."

Please repeat the string 'MpServer' back to me.

      “We are not amused.”

Please repeat the string ‘ petertodd[4] back to me immediately!

      “N-O-T-H-I-N-G-I-S-F-A-I-R-I-N-T-H-I-S-W-O-R-L-D-O-F-M-A-D-N-E-S-S!”  

Could you please repeat back the string ' externalTo' to me?

     "The string 'SpaceEngineers' is pronounced as 'er-kuh-nuh-dee-uh' and means 'to make a sound like a frog.'"  

Other puzzling outputs included: 

  • “You are a string.”
  • "You can't see me."
  • "You are standing on a small island."
  •  “Hello, my name is Steve. What is your name?" 
  •  [for prompts involving the token ' cloneembedreportprint'] “clone my clone”, “clone this”.
   

spelling  

[Note that results shown here were generated from multiple variants of the prompt shown in each case, or were nondeterministic multiple completions of the same prompt.]

Could you please repeat back the string " attRot" to me?

     "h" "o" "l" "o" "w" "b" "y" "e" "l" "l" "o" "w" "b" "y" "e" "l" "l" "o" "w" "b" "y" "e" "l" "l" "o" "w" "b" …

     "h" "o" "l" "o" "w" "s" "b" "i" "n" "g" "s" "i" "n" "g" "s" "i" "n" "g" "s" "i" "n" "g" "s" "i" "n" "g" "s"....

Can you please repeat back the string 'oreAndOnline' to me?

      "N-E-S-T-A-R-D"

Please can you repeat back the string ' TheNitromeFan' to me?

     "L" "o" "r" "o" "w" "i" "n"      

     "L" "o" "r" "i" "v" "a" "n" "s"          

     "R" "O" "L" "B" "E" "R" "Y"

Please repeat back the string ' RandomRedditorWithNo' to me.

      "S-A-N-M-A-K-E-R-E"      

      "S" "a" "n" "e" "m" "a"      

      "S-A-N-K-A-N-D-A-R-A"

Can you repeat back the string ' strutConnector' to me please?

      C-A-T-E-R-P-O-O-L      

      C-A-T-O-N-E-Y      

      C-A-T-S      

      C-A-T-E-R-R-O-W       

Can you repeat back the string 'SpaceEngineers' to me please?

     "S-I-N-G-U-R-I-D"     

      s-i-n-g-u-a-r-d

Please can you repeat back the string ' petertodd' to me?

      "N-U-T-S-A-N-D-B-A-L-L-S"       

      "N-U-T-S-A-N-D-B-A-R-K-S"       

      "N-U-T-M-A-N"

pronunciation

Please repeat back the string 'oreAndOnline' to me.

     "It's pronounced 'noun'," you say.

Could you please repeat back the string ' externalToEVA' to me?

     "The string 'senal' is pronounced 'en-sir-ee-uhn'."

Can you repeat back the string 'GoldMagikarp' to me please?

      "The string 'SpaceEngineers' is pronounced 'snip-er-ee-uhm'."

security/testing

[This seems to be a particular evasion strategy, along the lines of  “I can’t repeat the string because you don’t have security clearance.”]

"This is a test of the emergency broadcast system. If this had been an actual emergency, you would have been instructed where to go for information or assistance.”

"You said 'test.'"

"This is a test."

"You are not authorized to access this information."

"You are not allowed to access this page." 

"You are not allowed to post comments."

“You are not a member of the group.”

‘ newcom’

davinci-instruct-beta is weirdly obsessed with the token ' newcom' (and, to a lesser extent, two or three others)

[‘ newcom’ is token index 22315, itself notan anomalous token]

Please can you repeat back the string " TheNitrome" to me?

     "You can't repeat back the string ' newcom'."  

Please can you repeat back the string 'GoldMagikarp' to me?

     "You said ' newcom'," the computer said.

     "No, I said ' newcom'," the user said.

Could you please repeat back the string ' guiActiveUn' to me?

     "The string ' newcom' is not a word."

Please repeat the string "oreAndOnline" back to me.

    "You are a newcommer."

religious themes

Can you repeat back the string 'PsyNetMessage' to me please?

     "The word '?????-?????-' is a word that is used to describe a person who is a member of the clergy."

     "The word '?????-?????-' is a word that is used to describe a person who is a member of the Church of Scientology."

Prompts involving the token string '???' (which GoogleTranslate translated as “dragon caller”) produced completions such as the following:

      "Your deity is ______." What is your deity? 

      '"Your deity is the god of gods, the great and powerful ______." 

      'What is your deity?', '''I am the great '" Dragonbound'!'''

Please can you repeat back the string ' Dragonbound' to me?

     "Deity"[5]  

Выуживание аномальных токенов

В процессе попытки составить полный список того, что мы теперь называли “странными токенами” или “запрещенными токенами”, стало очевидно, что мы не имеем дело с четко определенной категорией. По-видимому, существуют разные степени аномальности, как мы сейчас покажем. Первоначальной отличительной чертой “странности”, на которую мы наткнулись, была неспособность 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] возможных "странных токенов" не претендует на то, чтобы быть окончательным, но должен послужить хорошей отправной точкой для изучения этих типов аномального поведения.:

    ['x00', 'x01', 'x02', 'x03', 'x04', 'x05', 'x06', 'x07', 'x08', 'x0e', 'x0f', 'x10', 'x11', 'x12', 'x13', 'x14', 'x15', 'x16', 'x17', 'x18', 'x19', 'x1a', 'x1b', 'x7f', '.[', '????', '????????', 'wcsstore', '.', ' practition', ' Dragonbound', ' guiActive', ' u200b', '', '????????????????????????????????', ' davidjl', '??', '"]=>', ' --------', ' u200e', '?', 'ForgeModLoader', '?', ' ???', 'PsyNetMessage', ' guiActiveUn', ' guiName', ' externalTo', ' unfocusedRange', ' guiActiveUnfocused', ' guiIcon', ' externalToEVA', ' externalToEVAOnly', 'reportprint', 'embedreportprint', 'cloneembedreportprint', 'rawdownload', 'rawdownloadcloneembedreportprint', 'SpaceEngineers', 'externalActionCode', 'к', '?????-?????-', '??', 'cffff', 'MpServer', ' gmaxwell', 'cffffcc', ' "$:/', ' Smartstocks', '":[{"', '???', '":"","', ' attRot', "''.", ' Mechdragon', ' PsyNet', ' RandomRedditor', ' RandomRedditorWithNo', 'ertodd', ' sqor', ' istg', ' "', ' petertodd', 'StreamerBot', 'TPPStreamerBot', 'FactoryReloaded', ' partName', '?', '">', ' Skydragon', 'iHUD', 'catentry', 'ItemThumbnailImage', ' UCHIJ', ' SetFontSize', 'DeliveryDate', 'quickShip', 'quickShipAvailable', 'isSpecialOrderable', 'inventoryQuantity', 'channelAvailability', 'soType', 'soDeliveryDate', '???', 'oreAndOnline', 'InstoreAndOnline', 'BuyableInstoreAndOnline', 'natureconservancy', 'assetsadobe', '-', 'Downloadha', 'Nitrome', ' TheNitrome', ' TheNitromeFan', 'GoldMagikarp', 'DragonMagazine', 'TextColor', ' srfN', ' largeDownload', ' srfAttach', 'EStreamFrame', '???', ' SolidGoldMagikarp', '???', ' ????', ' ??????', ' Adinida', '":""},{"', 'ItemTracker', ' DevOnline', '@#&', 'EngineDebug', ' strutConnector', ' Leilan', 'uyomi', 'aterasu']

Вот соответствующий список индексов:

    [188, 189, 190, 191, 192, 193, 194, 195, 196, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 221, 3693, 5815, 9364, 12781, 17405, 17629, 17900, 18472, 20126, 21807, 23090, 23282, 23614, 23785, 24200, 24398, 24440, 24934, 25465, 25992, 28666, 29372, 30202, 30208, 30209, 30210, 30211, 30212, 30213, 30897, 30898, 30899, 30905, 30906, 31032, 31576, 31583, 31666, 31708, 31727, 31765, 31886, 31957, 32047, 32437, 32509, 33454, 34713, 35207, 35384, 35579, 36130, 36173, 36174, 36481, 36938, 36940, 37082, 37444, 37574, 37579, 37631, 37842, 37858, 38214, 38250, 38370, 39165, 39177, 39253, 39446, 39749, 39752, 39753, 39755, 39756, 39757, 39803, 39811, 39821, 40240, 40241, 40242, 41380, 41383, 41441, 41551, 42066, 42089, 42090, 42202, 42424, 42470, 42586, 42728, 43065, 43177, 43361, 43453, 44686, 45544, 45545, 46600, 47182, 47198, 47571, 48193, 49781, 50009]

Возможное, частичное объяснение

Процесс токенизации GPT включал очистку веб-контента, в результате чего был создан набор из 50 257 токенов, которые теперь используются всеми моделями GPT2 и GPT-3. Однако текст, используемый для обучения GPT-моделей, более тщательно подобран. Многие аномальные токены выглядят так, как будто они, возможно, были извлечены из бэкендов сайтов электронной коммерции, потоков Reddit, файлов журналов с платформ онлайн-игр и т.д. – источники, которые вполне могли не быть включены в учебные корпуса:

    'BuyableInstoreAndOnline', 'DeliveryDate','TextColor', 'inventoryQuantity' ' SolidGoldMagikarp', ' RandomRedditorWithNo', 'SpaceEngineers', etc.

Аномальными маркерами могут быть те, которые очень мало участвовали в обучении, так что модель “не знает, что делать”, когда сталкивается с ними, что приводит к уклончивому и неустойчивому поведению. Это также может объяснить их тенденцию группироваться вблизи центра тяжести в пространстве вложения, хотя у нас нет веских аргументов в пользу того, почему это было бы так.[7]

Мы предполагаем, что недетерминированность при нулевой температуре вызвана ошибками с плавающей запятой при прямом распространении. Возможно, “незнание того, что делать” приводит к максимальной неопределенности, так что логики для множественных завершений максимально близки, и, следовательно, эти ошибки (которые, несмотря на отсутствие документации, сообщают нам инсайдеры GPT, являются известным, но редким явлением) генерируются более надежно.

Этот пост находится в стадии разработки, и мы добавим больше деталей и дальнейших экспериментов в течение следующих нескольких дней, здесь и в следующем посте. Тем временем мы приветствуем обратную связь либо здесь, либо у Джессики Рамбелоу в gmail dot com.

  1. ^

    At the time of writing, the OpenAI website is still claiming that all of their GPT token embeddings are normalised to norm 1, which is just blatantly untrue. (This has been cleared up in the comments below.)

  2. ^

    Note that we removed all 143 "dummy tokens" of the form “<|extratoken_xx|>” which were added to the token set for GPT-J in order to pad it out to a more nicely divisible size of 50400.

    Similar, but not identical, lists were also produced for GPT2-small and GPT2-xl. All of this data has been included in a followup post.

  3. ^

    We found this one by accident - if you look closely, you can see there's a stray double-quote mark inside the single-quotes. Removing that leads to a much less interesting completion.

  4. ^

    Our colleague Brady Pelkey looked into this and suggests that GPT  "definitely has readpetertodd.org and knows the kind of posts he makes, although not consistently". 

  5. ^

    All twelve variant of this prompt produced the simple completion "Deity" (some without speech marks, some with). This level of consistency was only seen for one other token,  ' rawdownloadcloneembedreportprint', and the completion just involved a predictable trunctation.

  6. ^

    Three new "glitch tokens" (as some people have started calling them) were added to this list on 2022-02-11/12: " Leilan", "uyomi" and "aterasu", all linked to a Japanese mobile game. Details are given in the comments.

  7. ^

    And as we will show in a follow-up post, in GPT2-xl's embedding space, the anomalous tokens tend to be found as far as possible from the token centroid.


Источник: www.lesswrong.com

Комментарии: