alterna ai
ALTERNA AI / ГЛАВА 12 · 05

12.5 Большой словарь и короткая последовательность

На предыдущей странице: разбить и восстановить текст.

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

Разбиение задаётся конкретным словарём и правилами. Байт, символ, слово и токен не обязаны совпадать. Полученный номер — адрес, а не числовой смысл слова.

Экономия в одном месте стоит ресурсов в другом

ПослеMуспешных merges наш vocabulary содержит256+Mtokens. Частые byte-последовательности получают короткое представление в IDs. На новом тексте длина может уменьшиться слабее, чем на training corpus; это зависит от содержания и языка.

При vocabularyV и embedding widthd матрица E занимаетVdпараметров. Независимый LM head добавляет ещёdV, часто такжеVbias. Поэтому больший словарь делает входную/выходную таблицы дороже. Зато более короткая sequence уменьшает число attention-пар n².

Если длина последовательности уменьшилась вдвое, плотная attention-матрица имеет вчетверо меньше ячеек. Но вся стоимость Transformer не равна n²: проекции и FFN тоже требуют операций, а LM head зависит отV. Нельзя выбирать tokenizer по одному коэффициенту compression.

Эксперимент. Меняйте requested merges0..24 при фиксированном corpus и query. Сравните actual merges, vocabulary size, bytes count и token count. Алгоритм может остановиться раньше requested budget; это не ошибка. Если query состоит из невстречавшихся комбинаций, byte tokens останутся длинной последовательностью.

Граница. Полученные tokens не обязаны быть морфемами или словами. Частые пробелы с буквами могут сливаться, а редкие буквы — оставаться разделёнными на bytes. Эта реализация не содержит language-specific pre-tokenizer и не претендует на оптимальный tokenizer для русского языка.

V,d,n=256,4,12
assert V*d==1024
assert n*n==144
assert (n//2)**2==36

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Больше строк/кандидатов означает больше параметров входной/выходной таблицы.

У разных словарей разные правила. Как этот вопрос продолжает полученный результат?

Python-примеры главы 12 Академическая база →