Все части собраны. Осталось увидеть, как они складываются в одну конструкцию — и почему она везде одинаковая, от чат-бота до генератора картинок.
Трансформер — это стопка одинаковых блоков. Внутри блока всего две содержательные части.
вход │ ├──────────────┐ │ │ ↓ │ нормализация │ ↓ │ ВНИМАНИЕ │ ← слова смотрят друг на друга ↓ │ ⊕ ←────────────┘ ← остаточная связь │ ├──────────────┐ │ │ ↓ │ нормализация │ ↓ │ ПОЛНОСВЯЗНЫЙ │ ← каждое слово обрабатывается отдельно ↓ │ ⊕ ←────────────┘ │ выход → на вход следующего такого же блока
Внимание перемешивает информацию между словами — кто на что смотрит. Полносвязная часть обрабатывает каждое слово по отдельности, ни с кем не общаясь: это место, где хранится и применяется «знание». Две функции строго разделены, и блок чередует их.
Интересная деталь: в полносвязной части обычно больше параметров, чем во внимании — её внутренний слой в несколько раз шире. То есть большая часть «знаний» модели физически лежит именно там, а внимание отвечает за то, как эти знания связываются.
текст ↓ разбиение на токены [1284, 97, 3301, ...] ↓ таблица эмбеддингов + кодирование позиции векторы ↓ блок 1 блок 2 ... блок 32 ← глубина модели ↓ финальная нормализация ↓ проекция на словарь → оценка для каждого возможного токена ↓ softmax вероятности → выбор следующего токена
Всё. Ширина вектора и число блоков определяют размер модели: у 7B это примерно 4096 и 32, у моделей покрупнее — больше и того и другого.
Модель выдаёт только один следующий токен. Чтобы получить предложение, результат приписывается к входу, и всё прогоняется заново.
«Паяльник надо» → «держать» «Паяльник надо держать» → «за» «Паяльник надо держать за» → «ручку»
При обучении модель видит весь текст сразу. Но предсказывая пятое слово, она не должна знать шестое — иначе задача тривиальна и учиться нечему.
Поэтому во внимание вставляют маску: каждому слову разрешено смотреть только назад, на себя и на предыдущие. Приём называется каузальной маской, и именно он позволяет учиться на всём тексте параллельно, честно предсказывая каждое следующее слово.
На выходе — вероятности всех токенов словаря. Дальше нужно выбрать один, и здесь есть настройки, которые вы видели в интерфейсах.
| Параметр | Что делает | Практика |
|---|---|---|
| Температура | Сглаживает или заостряет распределение перед выбором | 0 — всегда самый вероятный, предсказуемо. 0.7 — обычный разговор. Выше 1 — креативно и бессвязно |
| Top-k | Выбирать только из k самых вероятных | Отсекает совсем маловероятную чушь |
| Top-p | Выбирать из тех, что в сумме дают вероятность p | Гибче top-k: размер набора зависит от уверенности модели |
| Штраф за повтор | Понижает вероятность уже сказанного | Лечит зацикливание |
Для кода, извлечения данных и любых задач агента ставьте температуру близко к нулю. Там нужна не фантазия, а воспроизводимость. Для текстов и идей — 0.7–0.9. Половина жалоб «модель выдумывает» лечится этой одной настройкой.
| Тип | Устройство | Для чего |
|---|---|---|
| Только декодер | Маска, генерация вперёд | Все языковые модели, которые вы запускаете |
| Только энкодер | Без маски, видит весь текст | Эмбеддинги, классификация. Глава 07 |
| Энкодер-декодер | Обе части | Перевод, распознавание речи. Глава 19 |
Отдельно стоит знать про смесь экспертов: полносвязная часть делится на множество «экспертов», и для каждого токена активируется лишь пара из них. Модель получается огромной по числу параметров, но считается как маленькая. Минус — в память грузить всё равно надо целиком, поэтому на 16 ГБ такие модели помогают мало.
Самое удивительное свойство: то же самое работает не только с текстом.
| Данные | Что играет роль «слова» |
|---|---|
| Текст | Токен |
| Изображение | Квадратный кусочек картинки |
| Звук | Короткий фрагмент спектра |
| Видео | Кусочек кадра плюс время |
Разобравшись здесь, вы разобрались и в главах про картинки, звук и зрение. Меняется только то, что подают на вход и что считают ответом. Механизм один.
Устройство понятно. Теперь самый интересный вопрос: почему из «угадай следующее слово» получается что-то, похожее на понимание.
Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.