PORTFOLIO ★
February 7, 2023

Что не так с работой в ChatGPT на русском языке и причём тут ruChatGPT?

Интро

Вы наверняка уже успели протестировать ChatGPT? Если нет, Вам обязательно стоит это сделать в ближайшее время! Это без преувеличения революционная технология, которая изменит многие отрасли, от обучения и журналистики до программирования и научной деятельности.

ChatGPT – это огромная языковая модель (нейросеть), которая может разговаривать с вами и понимает контекст вашего диалога. На вход модели поступает запрос (prompt), на выходе ChatGPT отвечает на ваш запрос. Ответы получаются ёмкими, информативными, обобщающими и всеобъемлющими, если запрос идёт на английском языке.

Сегодня хочу обсудить аспект взаимодействия с ChatGPT на русском языке и почему результаты её ответов на русском гораздо менее информативные, обрывистые и ограниченные.

Как работают языковые модели?

В основе работы языковых моделей лежит теория вероятности: модель принимает на вход строку (prompt), а затем предсказывает, какими должны быть следующие слова. Для этого нужно учитывать контекст, стиль речи и значение слов, однако машина может работать только с цифрами. Поэтому текст превращают в его численное представление — этот процесс называется токенизацией, а полученный результат — эмбеддингом или числовым вектором.

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

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

датасет - набор данных для обучения языковой модели

Причины ограниченности языковых моделей для русского языка

Первая причина - размер датасета

Как правило, данные в датасет собираются из различных источников, в том числе с помощью парсинга (сбора данных) страниц в интернете. Чтобы понять соотношение языков, используемых пользователями в интернете достаточно взглянуть на эти графики:

количество пользователей интернета в миллионах по языкам за 2017 год
процентное соотношение языков, на которых говорят пользователи в сети интернет за 2020 год

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

Для примера, распределение языков в датасетах для топовых языковой моделей (PaLM от Google, GPT-3 от OpenAI и BLOOM от BigScience):

Распределение датасета по языкам в датасете для модели BLOOM от BigScience:

Вторая проблема - кодирование информации.

В корне этой проблемы лежит архитектура трансформера и процесс, называемый механизмом Encoder\Decoder, который кодирует слова в численное представление (числовые вектора или токены), которое воспринимает языковая модель.

Токенизация

Языковые модели работают с числами а не словами. Токен - это единица информации для нейросети. Процесс токенизации текста, это процесс преобразования текста в векторное пространство, по сути в набор чисел или токенов.

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

Пример токенизации предложения Hello world! -> [15496, 995, 0].

Ограничения размеров токенов на вход и на выход моделей:

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

Аналогично дела обстоят и с ответом (response) модели, токенизированный ответ преобразуется трансфоремером обратно в текст. И для языков, отличных от английского, размер выходных векторов, после декодирования в текст, выходит короче, чем при ответе на английском языке.

Другими словами 1024 токена преобразованного текста на английском языке не равна 1024 токенам преобразованного текста на русском языке. В 1024 токена на русском языке длина закодированного текста будет меньшей и не вместится в финальный ответ.

Для наглядности проверим текст на русском и английском языках на токенизаторе от OpenAI.

Текст преобразовался 21 токен длиной в 114 символов

Данный текст на английском языке преобразовался в 21 токен.

Текст преобразовался 135 токенов! при практически той же длине в 114 символов.

Тот же текст на русском языке преобразовался в 135 токенов, более чем в 10 раз!

Всё дело в способе кодирования информации на разных языках. BPE - способ кодирования на уровне байт, а CLT на уровне символов.

Запросы на английском языке кодируются на уровне слов (Byte Pair Encoding), а запросы на русском языке на уровне символов (char-level tokenization).

Зададим ChatGPT вопрос на русском:

Какие витамины и минералы нужно принимать, чтобы улучшить когнитивные функции мозга, и физическую выносливость организма?

ограниченная длина ответа от модели на русском

Мы видим что модель при ответе на русском языке упёрлась в ограничение по размеру исходящей последовательности токенов.

Теперь попробуем передать в ChatGPT тот же запрос на русском, но закодированный в вектора на английском языке, а ответ модели на английском раскодированный обратно на русский язык:

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

В их числе:
1. Витамин В12: Этот витамин помогает поддерживать здоровые нервные клетки и участвует в производстве нейротрансмиттеров, которые важны для функционирования мозга.
2. Витамин D: Этот витамин важен для поддержания здоровых костей и мышц, а также для поддержки иммунной системы.
3. Железо: Этот минерал помогает транспортировать кислород по всему телу, что имеет важное значение для физической активности и общего уровня энергии.
4. Магний: Этот минерал играет роль в мышечной функции и энергетическом метаболизме, а также помогает регулировать образцы сна.
5. Омега-3 жирные кислоты: Эти жирные кислоты важны для поддержания здоровья мозга и могут помочь улучшить память и сосредоточение внимания.
6. Цинк: Этот минерал участвует во многих процессах организма, включая деление и рост клеток, иммунную функцию и заживление ран.
Он также играет роль в восприятии вкуса и чувствительности к запаху, что может повлиять на общее благополучие и настроение.
7. Антиоксиданты, такие как витамин С, E, бета-каротин: Эти витамины защищают клетки от окислительных повреждений, вызванных свободными радикалами, которые могут способствовать старению и развитию заболеваний с течением времени.

Они также играют важную роль в поддержании здоровой кожи, зрения, иммунной функции и многом другом.

Как видим, ответ вышел полноценным, более связанным, сбалансированным, и без ограничений по длине векторов, как в примере выше.

Ещё пример использования ruChatGPT:

/prompt Напиши статью о способах улучшения человеческой памяти и когнитивных навыков

Память и познавательные навыки человека - два важнейших аспекта нашей повседневной жизни.Они играют решающую роль в нашей способности эффективно обрабатывать информацию, принимать решения и выполнять задачи.К сожалению, по мере старения эти навыки могут уменьшаться, что затрудняет запоминание информации или выполнение задач так же эффективно, как раньше. Однако есть несколько способов улучшить память и когнитивные навыки человека, которые помогут сохранить ум в острее и функционировать в лучшем состоянии.
Один из способов улучшить память человека - это физические упражнения. Ученые доказали, что физические упражнения увеличивают приток крови в мозг, что улучшает работу мозга и запоминание.Кроме того, показано, что физическая активность снижает уровень стресса и улучшает настроение, что является важным фактором для поддержания здорового мозга.Регулярные упражнения также могут стимулировать выработку новых клеток мозга и помочь вам сохранять здоровый вес, что важно для поддержания хорошей когнитивной функции.
Еще один способ улучшить память человека - это через умственную стимуляцию.Участие в деятельности, которая бросает вызов вашему разуму, помогает сохранить мозг остро и улучшить способность запоминать информацию.Это может включать в себя такие мероприятия, как чтение, кроссворды, судоку или изучение нового языка или навыков.Это помогает мозгу сформировать новые связи между нейронами, которые могут укрепить существующие воспоминания или создать новые. Третий способ улучшить память человека - это диета. Ученые доказали, что диета, богатая антиоксидантами, витаминами и минералами, полезна для здоровья мозга и его способности запоминать информацию.
Еда таких пищевых продуктов, как листья, как шпинат или капуста, ягоды, как ягоды, клубники, орехи, как миндаль или орехи, и жирная рыба, как лосось, все связана с улучшением когнитивной функции и запоминания. Кроме того, пить много воды также важно для хорошей работы мозга, поскольку оно помогает регулировать температуру тела и поддерживать равновесие жидкости в организме, что является необходимым для здоровой работы мозга. Наконец, достаточное количество сна - еще один важный фактор в улучшении человеческой памяти и когнитивных навыков.
Сон играет важную роль в том, чтобы помочь нашему мозгу консолидировать воспоминания с того дня , чтобы они были более эффективно хранимы в центрах хранения долгосрочной памяти в нашем мозге, что позволяет нам легче вспоминать позже, когда это необходимо. Достаточный сон также помогает снизить уровень стресса, который может негативно повлиять на нашу способность сосредоточиться или вспомнить информацию, когда это необходимо позже.
В заключение, есть несколько способов , которыми можно улучшить человеческую память и когнитивные навыки , занимаясь физической активностью, умственной стимуляцией, питаясь здоровой диетой, получая достаточно сна, все эти методы помогут вам поддерживать хорошее здоровье в целом, включая сохранение вашего ума остро, чтобы вы могли работать лучше каждый день .Обретая себя этими простыми шагами, вы сможете сохранить свой ум в лучшем состоянии в течение многих лет!

Можете сравнить ответ от ChatGPT с ответом выше, задав аналогичный вопрос на русском языке сами :)

Решение

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

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

Ещё одним приятным бонусом при использовании ruChatGPT является отсутствие языкового барьера, когда мы можем общаться с моделью на родном для неё языке и получать полноценные ответы на русском языке.

Данный подход может применяться к любой языковой модели и языку.

Мы реализовали данный подход для общения с ChatGPT на русском в виде Telegram бота https://t.me/ruChatGPTchatbot и назвали его ruChatGPT.

пример взаимодействия с ruChatGPT

Также вы можете почитать о другой нашей разработке - CheckGPT.app,
с помощью которой можно определять автора текста, написан ли он языковой моделью или человеком.

Связь с авторами в телеграм: @uberwow