Обновить

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

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели10K
Всего голосов 16: ↑16 и ↓0+16
Комментарии12

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

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

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

https://t.me/greenruff/2483

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

"условные вероятности, которые формируют цепи Маркова" :)))) Формально верно - но звучит почему-то смешно. Скорей уж "полотно Маркова!" - но такая штука должна работать нормально только на квантовом железе. Предложенное - альтернатива постоянному обучению, сжатая до просто большого числа обратных связей, за неэкспертную реализацию которых нужно любить погромистов по голове. Иначе чем это отличается от искусственного ввода правил, о котором вы говорите в начале своей критики? :)

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

По сути стоит задача постоянного обучения (как правило не реализуемая, а лишь ограниченно использующая память инстанса), а её здравой альтернативой для бездушного болвана является только один путь: разделение слоёв понимания и принятия решения (поиска результата), с сохранением обратно-блочной связи. То есть оптимальное решение тут только одно: разобраться, наконец-то, с лингвистикой: "Вавилон" должен быть одноязычен - и это проблема индивидуальная, а не межгосударственная.
Связи и различия языков (а равно и пользовстельские запросы неизвестного генеза) должны анализироваться в первую очередь логикой, а не статистикой. Пытаться статстистикой точно изучать хоть что-то лингвистику - это оксюморон. Просто для иллюстрации: текст со словом "СИЗО", в котором десять раз фигурирует "бутылка шампанского", возможно вовсе не о шампанском.

Правильно условные вероятности которые приводят к накоплению траектории цепи Маркова. Это как раз правильный термин. Как квантовый связан с этим?

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

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

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

  • «Большой академический словарь русского языка» — около 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

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

Публикации