Будни разработчика
14.5K subscribers
1.38K photos
403 videos
8 files
2.3K links
Download Telegram
#инструмент дня

Слово «модель» сейчас обычно вызывает в голове что-нибудь на 7–70 миллиардов параметров и десятки гигабайт весов. Но модель вообще не обязана быть такой.

Vercel Labs сделали gpu-lexer — библиотеку подсветки кода, в которой вместо набора грамматик используется одна обученная модель на 41 321 параметр.

Веса упакованы в 6 бит, а весь браузерный пакет занимает 27.4 KB, в сжатом состоянии.

Работает через WebGPU.
Код сначала режется на слова, пробелы, переводы строк и символы. Потом модель для каждого токена выбирает класс: keyword, string, function, type, operator и т.д. Язык заранее указывать не нужно.

У классических хайлайтеров подход другой. Prism и Highlight.js хранят правила для отдельных языков. Shiki использует TextMate-грамматики. Больше языков — больше правил и больше данных.
Здесь одна модель занимает два десятка килобайт и пытается покрыть всё сразу.

Для сравнения, автор приводит примерно 162 KB для Prism, 240 KB для Highlight.js и 992 KB для полного набора Shiki.

Но это именно ML: результат не гарантирован правилами. С Shiki модель совпадает примерно на 88–90% токенов. На TypeScript и Python лучше, на менее популярных языках и шаблонизаторах заметно хуже.

Да, такой подход не вчера появился, но мне нравится, что он снова обретает право на жизнь в не слишком сильно детерменированных задачах.

https://gpu-lexer.vercel.app/

#syntax #ml #highlight
12👍1🫡1