Его известный на данный момент, что ГПТ-4/ГПТ-3,5-турбо является недетерминированным, даже при temperature=0.0
. Это странное поведение, если вы привыкли к плотным моделям только для декодера, где temp=0 должно подразумевать жадная выборка что должно подразумевать полный детерминизм, потому что логиты для следующего токена должны быть чистой функцией входной последовательности и весов модели.
На вопрос о таком поведении круглые столы разработчиков во время мирового турне OpenAI члены технического персонала отвечали примерно так:
Честно говоря, мы тоже в замешательстве. Мы думаем, что в наших системах может быть какая-то ошибка или какая-то недетерминизм в оптимизированных вычислениях с плавающей запятой…
И внутренне я подумал: хорошо, я знаю, что последнее утверждение иногда верно, и, возможно, у OpenAI недостаточно инженеров, чтобы разобраться с такой маленькой проблемой, как эта. я чувствовал себя немного смущенный когда я заметил ссылку на это поведение более 3 лет назад – 3 года, и это нельзя было исправить?
Но у меня не было осмысленного альтернативного объяснения этому явлению. Ведь зачем тебе хотеть чтобы вещи были случайными? Илья всегда говорит о надежность, верно? Не было возможности OpenAI в розыске чтобы держать детерминизм в узде, поэтому лучшим объяснением было неразрешимое аппаратное ограничение.
3 месяца спустя, читая газету на борту скучный полет домой, у меня есть ответ.
В недавнем Мягкое МО paper, в Разделе 2.2 была интересная реклама, которая вызвала связь:
В условиях ограниченной емкости все подходы Sparse MoE направляют токены в группы фиксированного размера и обеспечивают (или поощряют) баланс внутри группы. Когда группы содержат токены из разных последовательностей или входных данных, эти токены часто конкурируют друг с другом за доступные места в экспертных буферах. Как следствие, модель больше не является детерминированной на уровне последовательности, а только на уровне партии.так как некоторые входные последовательности могут повлиять на окончательный прогноз для других входных данных.
в настоящее время общественное знание что GPT-4 является моделью Mixture of Experts. Учитывая, что ГПТ-4 был обучение до второго квартала 2022 г.и что разреженная смесь экспертов существовала задолго до этогоя думаю, что следующая гипотеза оправдана:
API GPT-4 размещается на серверной части, которая пакетный вывод. Хотя некоторая случайность может быть объяснена другими факторами, подавляющее большинство недетерминизма в API объясняется тем, что его архитектура Sparse MoE не может обеспечить детерминизм для каждой последовательности.
Это либо совсем неправильно, либо то, что уже было очевидно и хорошо известно людям, разрабатывающим модели MoE. Как мы можем это проверить?
Вы действительно уверены, что это не оборудование?
Еще нет. Давайте спросить ГПТ-4 написать скрипт для проверки нашей гипотезы:
|
|
Этот окончательный сценарий немного отличается от того, что вы увидите, если щелкнете по ссылке «Поделиться». Мне пришлось несколько раз переделывать сценарий из-за нескольких проблем:
-
API OpenAI очень долго не отвечал. Мне пришлось добавить ведение журнала временных меток, чтобы проверить, не делаю ли я что-то не так — это не так, API просто Действительно медленный, с почти 10 секундной задержкой даже на 3,5 турбо. Интересно, почему?
-
некоторые модели завершения усекали свои ответы очень рано. Я добавил логит-предвзятость по отношению к EOS, чтобы попытаться исправить это.
-
Связанный: нет эквивалентного предубеждения против
<|im_end|>
жетон; API возвращается,Invalid key in 'logit_bias': 100265. Maximum value is 100257.
100265 – точное значение для<|im_end|>
:Я полагал, что проблема отсутствия логит-смещения для моделей чата не является проблемой — большинство завершений достигали максимальной длины токена, и в любом случае они были абсурдно более недетерминированными (добавление логит-смещения реально только увеличило бы количество уникальные последовательности)
Через час ожидания и написания скриптов я получил подтверждение:
Эмпирические результаты
Вот результаты (3 попытки, N=30
, max_tokens=128
):
Название модели | Уникальные завершения (/30) | Среднее (/30) | Примечания |
---|---|---|---|
gpt-4 | 12,11,12 | 11,67 | |
ГПТ-3,5-турбо | 4,4,3 | 3,67 | |
текст-davinci-003 | 3,2,4 | 3.00 | |
текст-davinci-001 | 2,2,2 | 2.00 | |
davinci-инструктировать-бета | 1,1,1 | детерминированный | Выходы ухудшились в повторяющийся цикл |
Да Винчи | 1,1,1 | детерминированный | Выходы ухудшились в повторяющийся цикл |
Прежде чем я заметил logit_bias
проблема, я также получил следующие результаты (max_tokens=256
):
Название модели | Уникальные завершения (/30) | Примечания |
---|---|---|
gpt-4 | 30 | |
ГПТ-3,5-турбо | 9 | |
текст-davinci-003 | 5 | |
текст-davinci-001 | 2 | Заметил проблему смещения логита в этот момент |
Да, я уверен
Количество уникальных дополнений от GPT-4 составляет нелепо высокий – практически всегда недетерминированный с более длинными выходами. Это почти наверняка подтверждает, что с GPT-4 что-то не так.
Кроме того, все другие модели, которые не сворачиваются в повторяющийся бесполезный цикл, также имеют некоторую степень недетерминизма. Это согласуется с публичным утверждением, что ненадежные вычисления графического процессора ответственны за некоторую степень случайности. Однако,
- Меня все еще частично смущает постепенное увеличение рандома от text-davinci-001 до gpt-3.5-turbo. У меня нет четкого объяснения, почему 003 достоверно более рандомен, чем 001, или турбо в большей степени, чем 003. Хотя я ожидаю, что только модели чата будут моделями MoE, а не какая-либо из моделей завершения 3.5, я не уверен. чувствовать себя уверенно, основываясь на имеющихся доказательствах.
- Это только свидетельство того, что что-нибудь делает GPT-4 гораздо более недетерминированным, чем другие модели. Может быть, я все еще совершенно не прав насчет МО. Может быть, это просто из-за количества параметров. (но тогда – почему Turbo более непредсказуем, чем davinci? Turbo быстрее; если вы предполагаете ту же архитектуру, Turbo должен быть меньше)
Подразумеваемое
На самом деле это довольно безумно для меня, что это выглядит правдой. По нескольким причинам:
Мы так далеко позади
Если недетерминизм является неотъемлемой чертой пакетного вывода с Sparse MoE, тогда этот факт должен быть очевиден для всех, кто работает с моделями в этом ключе.
Учитывая, что подавляющее большинство пользователей GPT-4 до сих пор понятия не имеют, что делает их вызовы API ненадежными, следует сделать вывод, что (я совершенно не прав, ИЛИ) слишком мало людей знают что-либо о моделях MoE, чтобы запускать это объяснение в общественное сознание.
Это означает, что Google Deepmind знал об этом и счел это достаточно тривиальным, чтобы написать в газете одно предложение. Это означает, что я должен быть намного более оптимистичным по отношению к ним и гораздо более медвежьим по отношению к любой другой организации, которая хочет стать моделью фонда, которая все еще работает только над плотными моделями.
GPT-3.5-Turbo тоже может быть МО
я слышал слух, когда-топро 3,5-турбо разделяя та же архитектура как ГПТ-4; просто с гораздо меньшими параметрами, чем у него, или даже у ГПТ-3.
И когда я это услышал, я подумал: Нет, это звучит слишком сложно для небольшой публичной модели. Почему бы им просто не использовать плотный? Подходит для одного графического процессора, никаких сложностей, очень простая оптимизация…
Перенесемся в настоящее, и мы все еще страдаем от режима, который требует 70B параметров для соответствия производительности Turbo – номер, который просто не имеет смысла сколько трафика обрабатывает OpenAI и какую скорость они получают.
Также легко заметить, что Турбо — единственная другая модель в API, имеющая свою logprobs ограничено от всеобщего обозрения. Распространенным объяснением было то, что они были ограничены предотвратить повышенную точность дистилляциичто сегодня звучит немного наивно, учитывая косатка и другие. OpenAI также публично заявил что они работают над тем, чтобы интегрировать logprobs в ChatCompletions, что делает «предотвращение дистилляции» менее вероятным, чем «это трудно надежно спроектировать, потому что они по своей сути слишком случайны прямо сейчас»:
Но, тем не менее, как я уже сказал ранее — не совсем уверен в этом. Может быть, кто-то должен открыть рынок предсказаний?
Заключение
- Всем известно, что модели OpenAI GPT недетерминированы при температуре = 0.
- Обычно это связано с недетерминированными неточностями операций с плавающей запятой, оптимизированными CUDA.
- Я выдвигаю другую гипотезу: пакетный вывод в разреженных моделях MoE является основной причиной большей части недетерминизма в API GPT-4.. Я объясню, почему эта гипотеза более точная, чем предыдущая.
- Я эмпирически продемонстрировал, что вызовы API к GPT-4 (и, возможно, к некоторым моделям 3.5) значительно более недетерминированы, чем другие модели OpenAI.
- Я предполагаю, что GPT-3.5-turbo также может быть MoE, из-за удаления скорости + не-det + logprobs.
2023-08-04 21:37:09
1691199569
#Недетерминизм #GPT4 #вызван #разреженным #MoE