Обновить

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

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

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

https://t.me/greenruff/2483

В данном случае, даже уже всего на 1000 примерах обучения разница будет огромная. И чем дальше обучение, тем сильнее эта разница заметнее. BPE и подход выше, так и будет оставаться в рамках частотных (случайных токенов), где модель пытается это исправить через обучение. И мы долго будем видеть шум и высокочастотные токены. В то время как при правильном подходе, даже на первых 100-400 примерах сразу будет видна разница и первые формирования устойчивых правил. Так как все эти правила и так собраны в статистику наиболее вероятных Марковских цепей.

(целые слова) — словарь раздувается до миллионов,

  • «Большой академический словарь русского языка» — около 150 тысяч слов. Это так называемый «золотой фонд» — литературная, стандартная лексика, которую используют в письме и официальной речи.

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

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

Например, словарь "Полная парадигма" отсюда содержит 208 035 лемм и 5 695 022 словоформ.

Интересная статья. Спасибо. Радует, что хоть кто-то работает в правильном направлении.

Интересно, как BPE кодирует тексты программ. Очевидно, ключевые слова должны быть одним отдельным токеном.

А на размеченных не морфемах, а сразу предложениях тренировать кто-нибудь пробовал? Чтобы точно так же сетке структура языка сразу давалась, и ее не требовалась выучивать?

Ждём, когда отдельный язык придумают, оптимизиованный для LLM.

Репозиторий MorphBPE на GitHub пуст, единственный коммит — год назад, добавил .gitignore и заголовок в файл ReadMe.md

что не тянет даже на: "Официальный репозиторий с кодом. Пока минималистичный, но это reference implementation из статьи."

жаль, подача материала была многообещающей

Автор по-видимому привел эту ссылку из оригинала статьи:

MorphBPE: A Morpho-Aware Tokenizer Bridging Linguistic Complexity for Efficient LLM Training Across Morphologies

Забавно, что на сейчас у проекта 8 звезд.

Сюда же добавлю насчет другой ссылки:

MorphBPE Tokenizer Playground — tokenizer.llm-lab.org. Веб-интерфейс, где можно ввести текст и увидеть, как MorphBPE разбивает его на токены по сравнению с обычным BPE. Хороший способ интуитивно почувствовать разницу.

Судя по всему это демо для арабского языка, русский/английский текст пилит странно, ну и надпись там же Arabic Text Tokenizer

Спасибо за статью, очень подробно и понятно описано.

Рискну предположить, что для больших моделей уровня GPT4+, Gemini, Claude и тд, эта проблема не столь заметна, т.к. обобщающая способность очень сильная. А вот для малых моделей (условно до 8B и ниже) это возможно действительно будет прирост качества, в первую очередь для указанных вами "морфологически богатых языков (русский, арабский, венгерский)". Интересно будет проверить, обучив какую-нибудь небольшую модель уровня GPT2/NanoGPT

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации