Модуль 9: Большие языковые модели (LLM) и их работа
Большие языковые модели (LLM) — это трансформеры, обученные на огромных объёмах текста и способные генерировать связный текст, отвечать на вопросы и выполнять инструкции. ChatGPT, Claude, LLaMA, Mistral и аналоги — всё это LLM. Чтобы осознанно использовать их в интерфейсах и API и понимать ограничения, полезно разобрать несколько ключевых понятий: как текст превращается во вход модели (токенизация и эмбеддинги), как модели обучаются (pre-training и fine-tuning), почему ответы различаются при одних и тех же запросах (температура и сэмплирование) и почему модель «забывает» начало длинного диалога (окно контекста).
Задача модуля: связать теорию трансформера с тем, что пользователи и разработчики видят в интерфейсах и настройках: токены, температура, контекст, дообучение. Это даёт базу для осмысленной работы с API и для понимания статей про обучение и применение LLM.
Что разберём
- Токенизация и эмбеддинги — от текста к векторам на входе модели.
- Pre-training и Fine-tuning — как модели «набираются знаний» и подстраиваются под задачи.
- Температура и сэмплирование — откуда берётся разнообразие и детерминизм ответов.
- Окно контекста — почему есть ограничение длины и что происходит при его превышении.
9.1 Токенизация и эмбеддинги
Нейросеть работает с числами, а не с буквами. Первый шаг — превратить текст в последовательность токенов (подслов, реже целых слов или символов). Алгоритмы вроде BPE (Byte Pair Encoding) и WordPiece разбивают текст на части по частотной статистике: частые сочетания становятся отдельными токенами, редкие разбиваются мельче. Каждый токен имеет числовой id в словаре модели. От выбора токенизатора зависит, сколько токенов получится из одной фразы и как модель будет обрабатывать редкие слова и опечатки.
Эмбеддинги — это векторное представление токена. Обучаемый слой ставит в соответствие каждому id вектор фиксированной размерности (например, 768 или 4096). В процессе обучения близкие по смыслу или по контексту токены получают близкие векторы (например, «король» и «королева» в подходящем пространстве оказываются рядом). Эмбеддинги — вход первого слоя трансформера; к ним добавляют позиционное кодирование, и дальше идёт цепочка блоков внимания и feed-forward. Качество и размер словаря и эмбеддингов влияют на то, как хорошо модель «понимает» язык и редкие конструкции.
9.2 Обучение LLM: Pre-training и Fine-tuning
Предобучение (pre-training) — первый этап: модель обучается на огромных корпусах текста (книги, веб-страницы, код, диалоги) на задачу предсказания следующего токена. Никаких явных меток «вопрос–ответ» или «инструкция–выполнение» на этом этапе нет; модель просто учится продолжать текст правдоподобным образом. Так она усваивает грамматику, факты, стили и типичные рассуждения. Предобучение требует колоссальных вычислительных ресурсов и данных; результат — «сырая» базовая модель, которая умеет генерировать текст, но не обязательно следует инструкциям пользователя.
Дообучение (fine-tuning) — второй этап: модель подстраивается под конкретные задачи и форматы. На данных вида «запрос пользователя — желаемый ответ» (инструкции, диалоги, цепочки рассуждений) модель дообучается так, чтобы чаще выдавать ответы в нужном формате и стиле. Часто применяют RLHF (Reinforcement Learning from Human Feedback): люди оценивают варианты ответов, по этим оценкам обучается функция предпочтений, и модель оптимизируется так, чтобы максимизировать предпочтения. В итоге модель лучше «слушается» пользователя и реже генерирует вредный или бесполезный контент. Понимание разницы между pre-training и fine-tuning помогает оценивать, что можно ожидать от базовой модели и от «выровненной» под диалог.
На практике: при использовании API вы работаете уже с дообученной моделью. При дообучении своей копии (fine-tuning на своих данных) важно не «забыть» общие способности модели — для этого используют малые learning rate и ограниченное число шагов или техники вроде LoRA.
9.3 Температура и сэмплирование
На каждом шаге генерации модель выдаёт распределение вероятностей над следующим токеном: какое слово (токен) с какой вероятностью идёт дальше. Если бы мы всегда выбирали самый вероятный токен (argmax), ответ на один и тот же запрос был бы один и тот же — детерминированным. В реальности ответы варьируются, потому что следующий токен выбирается по распределению (сэмплирование): более вероятные токены выбираются чаще, но и менее вероятные иногда появляются. Так появляется разнообразие и «креативность» генерации.
Температура — параметр, который управляет «остротой» этого распределения. Формально вероятности перед сэмплированием делят на температуру и снова применяют softmax. При высокой температуре (например, 0.8–1.0) распределение становится более равномерным: маловероятные токены получают больший шанс, ответы разнообразнее и порой неожиданнее. При низкой температуре (близко к 0) распределение концентрируется на пике — модель ведёт себя почти детерминированно, ответы стабильнее и точнее. В интерфейсах чатов и API температура обычно настраивается: для творческих задач её поднимают, для точных формулировок и фактов — опускают.
9.4 Окно контекста и его ограничения
Модель физически не может обработать бесконечно длинный ввод. Она «видит» только последние N токенов — это и есть окно контекста (context window). В этот лимит входят и промпт пользователя (вопрос, инструкция, вложенный документ), и сгенерированный моделью ответ. Если диалог или документ длиннее N токенов, старые токены при следующих запросах не попадают во вход: они просто отбрасываются (или суммируются в отдельных схемах). Поэтому модель «забывает» начало очень длинного разговора — не потому что «глупая», а потому что эти токены уже не участвуют в вычислениях.
Ограничение длины связано с архитектурой: self-attention в трансформере имеет квадратичную по длине последовательности сложность по памяти и по времени. Удвоение длины контекста ведёт к четырёхкратному росту затрат. Увеличение окна контекста (8k, 32k, 128k и более токенов) — активная область исследований: разреженное внимание, иерархические представления и другие приёмы позволяют работать с длинными документами без полного квадратичного взрыва. При выборе модели и проектировании сценариев (например, загрузка длинных документов в RAG) нужно учитывать лимит контекста и стратегию обрезки или сжатия текста.
Итог
Токенизация и эмбеддинги задают вход модели; pre-training и fine-tuning — как она получила свои способности; температура и сэмплирование — почему ответы различаются; окно контекста — почему есть лимит длины и что происходит при длинных диалогах и документах. Эти понятия связывают теорию трансформеров с практикой использования LLM в продуктах и исследованиях.