Сегодня я публикую свой первый блог-пост: Токенизация с нуля. Я создал токенизатор на уровне байтов с предтокенизацией на Rust и достиг скорости кодирования, сопоставимой с токенизаторами huggingface. Я показываю идеи и алгоритмы, включая нюансы реализации, такие как использование кэша LRU и двусвязного списка. С этой основой я иду дальше. Большинство токенизаторов просто разбивают текст по регулярным выражениям, сохраняя слияния внутри слов, мы можем сделать лучше. Я достиг на 20% более эффективного обучения LLM с SuperBPE. Я демонстрирую, как реализовать SuperBPE, активированный поздно в обучении, что позволяет слияние слов с одинаковыми потерями на байт во время обучения. Графики + код + ссылка в ответе.