Pull to refresh

Comments 29

<offtop> Вообще говоря, известная фраза про булки и чай содержит не все буквы алфавита. Мой вариант: Съешь ещё этих мягких французских булок, да выпей же чаю. </offtop>

И без запятой, конечно.

Таким образом целесообразнее задавать вопросы на английском и переводить?

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

По моему, целесообразнее, хотя бы на открытых моделях типа альпаки, изменить сопсоб токенизации. Токены должны отражать структуру языка, для русского это,наверное должны быть части слов: приставка, корень, суфикс, окончания или даже целые слова в разных, например, падежах.

Да уж, для такой токенизации даже как-то и неплохо тексты на русском генерируются.

Но вообще, по-моему, это выглядит как позорный ляп создателей ChatGPT...

"Позорный ляп" - это слишком громко. НО я думаю если бы делал Яндекс, который собаку и пуд соли съел на русской грамматике, то результат был бы более вменяемым. Поживём - оценим.

Вопрос не в грамматике. Вопрос в том, что они UTF-8 не разбирают, а прямо как есть, так и пихают, как я понял. Создаётся ощущение, что они вообще не запаривались тем, что существуют символы за пределами ASCII.

UTF-8 вряд ли, а вот то что токены связаны с энтропией вполне возможно. (часто встречающиеся входные последовательности отображаются более "плотно" в токены, а менее наоборот)

Одно другому не мешает. Точнее, как раз типа и мешает: имеено то, что UTF-8 прямо байтами и пихается и парсинга, мешает эффективно работать с энтропией. По поводу UTF-8 - посмотрите на пример выше, там видно, что для букв "с" и "ъ", например, показаны отдельные токены на каждый из двух байтов UTF-8 кода.

В рамках своих исследований, я задаю вопрос "Сколько чая на основном складе" и прошу дать текст запроса SQL. Что интересно, я всегда получаю совершенно правильную конструкцию

WHERE Товар.Наименование='чай' AND Склад.Наименование='основной'

Я экспериментировал с разными словами. Пока не заметил никакой путаницы в падежах. Видимо, побуквенная токенизация работает хорошо.

Хорошее замечание. Поскольку токен - это единица информации для нейросети, как бит для компьютера, мелкие токены несомненно влияют на качество работы ChatGPT c неанглийскими текстами.

Это те же самые токены, которые используются при расчете цены использования CGPT API? То есть на русском оно ещё и заметно дороже будет?

Я когда почитал решил проверить еще одну странную теорию.

А что будет если мы русский текст транслитерируем, что будет с генерацией и количеством токенов?

Про количество токенов:

При транслитерированном тексте мы экономим количество токенов (70 против 28)

А что с основной функцией дополнения текста?
Она вполне нормально отрабатывает

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

Спасибо. Очень интересное наблюдение

Выражаю восторг вашей идеей! Да это просто какая-то диверсия против русского языка.

Ну, только лишь русским и английскими языками же вся мировая лингвистика не ограничивается же. Что там с другими языками?

Можно предположить, что всякие латинские языки всё-таки будут более коррелировать с токенизацией слов. А вот, "условно" килилические (славянская группа). Вообще я в группах языков не особо разбираюсь, и мне трудно привести примеры кроме русского, украинского и беларусского языков. Возможно болгарский, польский, сербский языки сюда тоже относятчя.

Азиатские же языки - это явно другая группа - там разбор должен быть строго по отдельным иероглифам.

Арабские и тюркские языки тоже стоят особняком.

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

Токенизатор там как раз более-менее стандартный, по крайней мере в gpt-3 был такой. https://arxiv.org/pdf/1909.03341.pdf

В лучших традициях современного DS/NLP. Насколько я понимаю, сплит делается только по границе слов. Все остальное просто байтики в utf-8 с забавными статистическими свойствами.

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

Кстати, есть ещё такая проблема, что в арабском алфавите буквы выглядят по-разному в начале, середине и конце слова, а также если в слове только одна буква. Точно не знаю, как это кодируется там, но в иврите, где только у 5 букв из 22 сейчас есть вторая отдельная конечная форма, коды разных форм разные (хоть и соседние). Может быть нетривиально их соотнести, если специально не учесть.

Я уверен, что в чате переводчик на входе и выходе стоит, а токенайзер натренирован только на английский.
image

Да. Сейчас дорвался до нового Бинга. И судя по всему так и есть. Переводчик на входе и выходе. Для сохранения смысла это хорошо, а вот для грамматики - не очень.

Именно так. Вот цитата:

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

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

Нет, не так. ChatGPT запрещено раскрывать особенности своего устройства, он может сказать правду, отвечая на такой вопрос только случайно. Вообще, там стоит не совсем привычный нам переводчик, а энкодер-декодер, которому в общем-то пофигу на язык обращения. Почитайте отчет openai о gpt4. В нем инфы мало очень, но конкретно этот момент вскользь упоминается с ремаркой, что в выборке не прям чтобы уж сильно увеличили количество неанглийских текстов, а перенос знаний с английского на другие языки все равно произошел, даже термин специальный для этого есть. И ответ генерируется не на английском, а потом переводится, а именно на русском, побуквенно. Это можно заметить глазами - по-английски он отвечает по словам, по-русски выдает ответ побуквенно в реальном времени.

UFO just landed and posted this here

Автор, скорее всего не совсем знаком с концепцией Byte-level BPE. В исследованиях наглядно показывалось, что для ряда языков токены данного типа не декодируемы по отдельности. При этом определенное сочетание токенов может сразу декдироваться как слово. Так что само по себе большое число токенов не говорит об character-level токенищации, в данном случае.

Ну и, кроме того, словарь ChatGPT оптимизмровался по обучающей выборке GPT-3, в которой, судя по всему, было только 0.11% русского текста. Естественно BPE под такие токены не обобщился.

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

Sign up to leave a comment.

Articles