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

В данном случае, даже уже всего на 1000 примерах обучения разница будет огромная. И чем дальше обучение, тем сильнее эта разница заметнее. BPE и подход выше, так и будет оставаться в рамках частотных (случайных токенов), где модель пытается это исправить через обучение. И мы долго будем видеть шум и высокочастотные токены. В то время как при правильном подходе, даже на первых 100-400 примерах сразу будет видна разница и первые формирования устойчивых правил. Так как все эти правила и так собраны в статистику наиболее вероятных Марковских цепей.
"условные вероятности, которые формируют цепи Маркова" :)))) Формально верно - но звучит почему-то смешно. Скорей уж "полотно Маркова!" - но такая штука должна работать нормально только на квантовом железе. Предложенное - альтернатива постоянному обучению, сжатая до просто большого числа обратных связей, за неэкспертную реализацию которых нужно любить погромистов по голове. Иначе чем это отличается от искусственного ввода правил, о котором вы говорите в начале своей критики? :)
Что в основной части статьи, что в комментарии - попытки перенести строгую оценку на априори нестрогую формулировку. На самом деле главная польза статьи - в том самом фундаменте (а выше - просто водичка, хотя и специфичная - буду её как словарь для вкатывания в тему использовать), который в тексте должен стоять в начале, а тут почему-то перенесён в заключение.
По сути стоит задача постоянного обучения (как правило не реализуемая, а лишь ограниченно использующая память инстанса), а её здравой альтернативой для бездушного болвана является только один путь: разделение слоёв понимания и принятия решения (поиска результата), с сохранением обратно-блочной связи. То есть оптимальное решение тут только одно: разобраться, наконец-то, с лингвистикой: "Вавилон" должен быть одноязычен - и это проблема индивидуальная, а не межгосударственная.
Связи и различия языков (а равно и пользовстельские запросы неизвестного генеза) должны анализироваться в первую очередь логикой, а не статистикой. Пытаться статстистикой точно изучать хоть что-то лингвистику - это оксюморон. Просто для иллюстрации: текст со словом "СИЗО", в котором десять раз фигурирует "бутылка шампанского", возможно вовсе не о шампанском.
Правильно условные вероятности которые приводят к накоплению траектории цепи Маркова. Это как раз правильный термин. Как квантовый связан с этим?
Сейчас данный подход отлично работает. Дает сильное ускорение при обучении. Статистика собирается заранее. В отличии от классического BPE, который выдает высокочастотный шум при начале обучения, тут токены образованны не рандомно по склейке частоты, а как небольшие траектории цепей Маркова.
Формально, правила языка это как раз и есть устойчивые траектории цепей Маркова. когда мы формируем множество комбинаций таких траекторий, то статистика самых устойчивых как раз и будет совпадать с правилами правописания, так как они встречаются чаще всего (так как этого требуют правила).
(целые слова) — словарь раздувается до миллионов,
«Большой академический словарь русского языка» — около 150 тысяч слов. Это так называемый «золотой фонд» — литературная, стандартная лексика, которую используют в письме и официальной речи.
Но нет, надо же отсканировать миллион книг, чтобы модель обучить.
Интересная статья. Спасибо. Радует, что хоть кто-то работает в правильном направлении.
Интересно, как BPE кодирует тексты программ. Очевидно, ключевые слова должны быть одним отдельным токеном.
А на размеченных не морфемах, а сразу предложениях тренировать кто-нибудь пробовал? Чтобы точно так же сетке структура языка сразу давалась, и ее не требовалась выучивать?
Ждём, когда отдельный язык придумают, оптимизиованный для LLM.
Репозиторий MorphBPE на GitHub пуст, единственный коммит — год назад, добавил .gitignore и заголовок в файл ReadMe.md
что не тянет даже на: "Официальный репозиторий с кодом. Пока минималистичный, но это reference implementation из статьи."
жаль, подача материала была многообещающей
Автор по-видимому привел эту ссылку из оригинала статьи:
Забавно, что на сейчас у проекта 8 звезд.
Сюда же добавлю насчет другой ссылки:
MorphBPE Tokenizer Playground — tokenizer.llm-lab.org. Веб-интерфейс, где можно ввести текст и увидеть, как MorphBPE разбивает его на токены по сравнению с обычным BPE. Хороший способ интуитивно почувствовать разницу.
Судя по всему это демо для арабского языка, русский/английский текст пилит странно, ну и надпись там же Arabic Text Tokenizer
Спасибо за статью, очень подробно и понятно описано.
Рискну предположить, что для больших моделей уровня GPT4+, Gemini, Claude и тд, эта проблема не столь заметна, т.к. обобщающая способность очень сильная. А вот для малых моделей (условно до 8B и ниже) это возможно действительно будет прирост качества, в первую очередь для указанных вами "морфологически богатых языков (русский, арабский, венгерский)". Интересно будет проверить, обучив какую-нибудь небольшую модель уровня GPT2/NanoGPT

Морфемы против BPE: как лингвистика ускоряет обучение языковых моделей