Читать книгу Собственная языковая модель. Когда, зачем и в каком масштабе - Ар'лан ис'Дрекхэм - Страница 11
Часть II. Устройство и процесс создания LLM Глава 3. Анатомия LLM 3.1. Как модель видит текст
ОглавлениеПрежде чем говорить о том, что происходит у модели внутри, стоит признать одно упрямое обстоятельство: с текстом она не работает вовсе. Строка букв, фраза, абзац — всё это живёт только на входе и на выходе, как упаковка. Внутри модель работает с токенами — минимальными кусками, на которые разрезан текст, и последовательностью этих кусков она и оперирует.
Токен — не слово и не буква, а что-то между ними. Длинное слово вроде «предложение» распадается на несколько коротких фрагментов; короткое и частое слово может остаться одним токеном целиком. Модель не видит ни букв в человеческом смысле, ни слов в школьном; она видит, в каком порядке друг за другом идут знакомые ей куски. То, что для нас — беглое чтение, для неё — перебор элементов заранее известного набора.
Сам этот набор — словарь модели. Одна из её фиксированных характеристик, такая же технически жёсткая, как размер алфавита в обычной письменности; только тут это «алфавит осмысленных фрагментов». Чем словарь больше, тем точнее модель умеет «говорить», тем тоньше нарезка, тем выше её гибкость, — но тем тяжелее внутренняя машинерия, дороже хранение, медленнее каждый шаг. Как и всё в этой истории, размер словаря — компромисс, а не оптимизация: выбор делается однажды, на самом старте, и потом живёт с моделью всю её жизнь.
На практике нарезка выглядит так: короткое частое слово оказывается одним куском целиком; слово средней длины распадается на два-три фрагмента; редкое, длинное или специфическое — на большее число мелких частей, иногда вплоть до отдельных букв. Нарезка не похожа на разбор по морфемам, как в школьной грамматике; это статистическая нарезка, подобранная так, чтобы наиболее частые сочетания в корпусе получили короткую запись, а редкие — удлинённую. Внутренняя логика тут инженерная, не лингвистическая: словарь не знает, где корень, а где приставка, он знает, что часто встречается в текстах, на которых его учили.
А теперь первое место, где абстракция встречается с экономикой. Стандартные словари, которыми пользуются открытые модели, собирались в основном на англоязычных корпусах. Английский в них лежит экономно: частые слова попадают в словарь целиком, редкие — дробятся аккуратно. Русский в тех же словарях лежит с перекосом. Кириллица расходует заметно больше токенов, чем латиница: тот же самый смысл на русском занимает в полтора-два раза больше кусков, чем на английском. Это не стилистическая особенность и не досадное неудобство — это множитель. Прямой, грубый множитель ко всем затратам: к стоимости обучения, к стоимости каждого ответа, к расходованию контекстного окна, в которое укладывается разговор.
У этого множителя есть осязаемые проявления, о которых не всегда вспоминают. Компания, работающая преимущественно с русскоязычным текстом через открытую модель, платит надбавку ежедневно и незаметно — в виде чуть более высоких счетов за каждый запрос. Длинный разговор с пользователем достигнет потолка контекстного окна раньше, чем тот же разговор на английском; при прочих равных русскоязычный ассистент «устаёт» и теряет нить диалога быстрее — просто потому, что каждый его шаг обошёлся дороже в токенах. На масштабе массового сервиса эта разница в полтора раза превращается в миллионы лишних токенов в день и в заметное сокращение того, что модель способна удержать в контексте за одно обращение.
Отсюда — первое осмысленное решение, которое приходится принимать всякому, кто собирается делать модель для русского языка. Имеет смысл собрать свой словарь — свой токенизатор, обученный на русских корпусах. Это короткий отдельный этап, предшествующий основному обучению, и детально он разбирается в разделе 4.2. Экономия, которую он даёт, окупается всей последующей жизнью модели: дешевле предобучение, дешевле инференс (работа модели после обучения, на каждом запросе пользователя), длиннее доступный контекст в тех же инженерных рамках. Поэтому собственный токенизатор — не пропускаемая деталь и не технический нюанс, который можно оставить команде на потом. Это один из первых выборов, определяющих экономику всего проекта; словарь, собранный на коленке, аккуратно тянется шлейфом через все последующие счета.
Теперь, когда понятно, в каком виде текст попадает внутрь, можно посмотреть, что с ним там происходит — куда попадают эти последовательности токенов и в каком пространстве начинает жить их смысл.