Pull to refresh

OpenAI урезает длину контекста ChatGPT Plus

Level of difficultyEasy
Reading time5 min
Views19K

Существует мнение, что ChatGPT-4 стал работать хуже, чем раньше, а кто‑то говорит, что он совсем «отупел», и уже «не торт». Я решил разобраться в этом вопросе, определить и сравнить длину контекста у ChatGPT-3.5 и платной ChatGPT-4.

Количество информации, которое модель может удерживать в памяти во время диалога с пользователем, зависит от длины контекста. Длина контекста измеряется в количестве токенов. В зависимости от используемого языка в диалоге с ChatGPT используется различное количество токенов.

В теории, при равной длине контекста, ChatGPT должен удерживать в памяти в 5 раз больше текстовой информации написанной на английском языке, чем на русском. Для определения количества токенов можно воспользоваться токенизатором от OpenAI.

Пример:

319 символов английского языка это 59 токенов, а 348 символов русского языка — 373 токена.
319 символов английского языка это 59 токенов, а 348 символов русского языка — 373 токена.

Цели эксперимента

  • Выяснить как на самом деле длина контекста зависит от используемого языка и во сколько раз меньше информации может запоминать ChatGPT на русском языке, чем на английском.

  • Определить фактическую длину контекста у ChatGPT-3.5 и сравнить её с платной версией ChatGPT Plus, подписка на которую стоит 20 долларов в месяц. И если по API GPT-4 официально известно, что длина контекста составляет 8 тысяч или 32 тысячи токенов, то информация о длине контекста веб-версии ChatGPT-4 остается лишь предметом дискуссии на форумах OpenAI. Некоторые утверждают, что это 4 тысячи токенов, другие — 8 тысяч.

Давайте выясним, что на самом деле происходит и что пользователи получают за свои деньги.

Метод проверки

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

Заранее скажу, что результаты, полученные мной через этот эмпирический метод, меня сильно удивили. Возможно, именно они могут объяснить, почему последнее время многие пользователи стали замечать ухудшение качества работы ChatGPT-4.

Итак, начнём с ChatGPT-4 и будем использовать русский язык.

В первом промпте я сообщаю имя мальчика, который является героем истории, которую буду рассказывать. Стоит отметить, что саму историю я также сгенерировал с помощью языковой модели, и в ней имя героя не упоминается. Отправляя сообщения с фрагментами этой приключенческой истории, я веду диалог с ChatGPT. Периодически я спрашиваю модель о имени главного героя. Если ответ верный, я удаляю вопрос про имя и продолжаю рассказ, считая при этом количество токенов.

Пример верного ответа:

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

Аналогичным методом я провожу тестирование на английском языке, после чего перехожу к ChatGPT-3.5 и проверяю её на обоих языках.

Результаты эксперимента

Фактический объём памяти ChatGPT-4 в зависимости от используемого языка

Итак, первый результат сразу же показывает отклонение от обещанных 8.000 токенов. Фактическая рабочая память ChatGPT-4 на русском языке составляет всего 6.600 токенов. Это на 1.400 токенов меньше обещанных. Куда они могли подеваться? Возможно, это связано с тем, что в архитектуре GPT-4 присутствуют основная модель и несколько вспомогательных, что делает её "умнее". Именно на общение между этими моделями, так называемые системные промпты, и уходят эти 1.400 токенов.

Я удивился ещё больше, когда обнаружил, что рабочая память ChatGPT-4 на английском языке составляет всего 3.100 токенов, а это значительно меньше заявленных 8.000. Я неоднократно перепроверил эти данные и до сих не знаю, как объяснить, что модель на английском языке удерживает в памяти в два раза меньше информации в токенах, чем на русском? Это экономия ресурсов или что-то другое? Почему я не слышал об этом ранее, особенно учитывая, что большинство подписчиков ChatGPT Plus используют модель именно на английском языке?

Несмотря на то, что ChatGPT-4 все ещё удерживает больше символов в контексте на английском языке, чем на русском: примерно 15.500 против 6.100 символов. Однако разница не в 5 раз, а фактически всего в 2,5 раза. Получается, что количество токенов для "английской" версии явно было урезано.

Фактический объём памяти ChatGPT-3.5 в зависимости от используемого языка

Теперь давайте взглянем на результаты ChatGPT-3.5. В отличие от платной версии, её фактическая память составляет примерно 15.800 токенов для обоих языков. Учитывая погрешность +/- 100 токенов в зависимости от версии токенизатора мы получаем результат, близкий к заявленным 16.000 токенам.

На диаграмме выше наглядно видна разница в фактическом объёме памяти между английским и русским языками при равном количестве токенов: 79.000 символов на английском против 14.600 символов на русском. Для лучшего представления этого объёма информации, 80.000 символов — это примерно 100 страниц формата А4.

Также стоит помнить, что качество ответов ChatGPT-3.5 на английском языке в большинстве случаев выше, поскольку модель обучалась на значительно большем объёме данных на английском языке, чем на других.

ChatGPT Plus vs. Бесплатный ChatGPT-3.5

Максимальное количество токенов в одном сообщение

В ChatGPT-3.5 можно одним сообщением отправить в два раза больше токенов — 6.900, а значит, и информации, чем в ChatGPT-4. Это можно использовать, например, для демонстрации примеров конечного результата: описать задачу и конечный результат, а также добавить несколько примеров в это же сообщение. Ведь размер сообщения в ChatGPT-3.5 в два раза больше.

Фактический объём памяти разных моделей ChatGPT в токенах

Фактический объём памяти у ChatGPT Plus значительно меньше, чем у ChatGPT-3.5. Особенно заметно это на "английской" версии, где она даже не превышает 3.400 токенов.

Что это означает на практике?

Если вы первым сообщением на английском языке даёте вводную информацию, а во втором сообщение используете максимальное количество токенов то ChatGPT-4 уже не сможет назвать вам имя мальчика, так как вводная информация была полностью вытеснена вторым сообщением. Даже спросив имя мальчика сразу в самом начале второго сообщения, ChatGPT-4 не сможет ответить верно. Пример:

Фактический объём памяти разных моделей ChatGPT в символах

Объём памяти у ChatGPT-3.5 на русском языке почти в два с половиной раза больше, чем у ChatGPT-4. Однако стоит помнить, что качество ответов у последней модели значительно выше.

Если же мы используем английский язык, разница в качестве ответов между двумя моделями не так велика. Зато у ChatGPT-3.5 есть пятикратное преимущество в фактическом объёме памяти, поскольку у ChatGPT-4 урезали длину контекста.

Вместо вывода

При использовании ChatGPT преимущественно на русском языке имеет смысл приобрести подписку ChatGPT Plus за $20 в месяц и использовать четвёртую версию, так как разница в качестве ответов того точно стоит.

Ситуация с английским языком не так однозначна, поскольку у ChatGPT-3.5 есть весомые преимущества перед ChatGPT-4: возможность отправить в два раза больше информации одним сообщением и пятикратный объём памяти по сравнению с четвёртой версией. Она, правда, уступает по "интеллекту", то есть по качеству ответов, но тем не менее, для определённых типов задач ChatGPT-3.5 подходит уж точно не хуже, чем её новая модель.

А вот если бы ChatGPT-4 предложили с длиной контекста в 32.000 токенов или хотя бы чистыми 8.000, а не эти 3.100 токенов, то тогда был бы другой разговор.

Кстати, как вы думаете, почему так её урезали? Интересно будет прочитать ваши версии в комментариях.

Слова благодарности

Эта статья не была бы возможна без ценного вклада Алексея Хакунова — человека, вдохновляющего меня изучать возможности ChatGPT в различных сферах: от бизнеса до личного использования. Я участвую в его крутом проекте с самого начала, где царит душевная атмосфера и предоставляется учебный контент высокого качества.

Лёша также ведет телеграм-канал про искусственный интеллект под названием "AI Happens".

Недавно у меня появился свой личный телеграм-канал “Алексей Цыкунов | Личные заметки”, там пишу об IT в Европе, а также о своём личном опыте и пути в этой области. Если кому-то интересно, то всегда welcome

Tags:
Hubs:
Total votes 13: ↑11 and ↓2+13
Comments44

Articles