Загрузка урока...
В этом уроке мы разберем, как трансформеры понимают порядок слов. Вы узнаете алгоритмы позиционного кодирования: от классических синусоид 2017 года до современных методов RoPE (Rotary Position Embedding). Мы разберем, как современные LLM научились "растягивать" контекст до миллионов токенов с помощью интерполяции и математических NTK-методов.
О чем этот урок:
В оригинальной архитектуре трансформеров механизм внимания не учитывает порядок токенов — для него это просто массив векторов, "зоопарк", в котором перемешаны все слова. Чтобы языковая модель могла понимать, какое слово стоит за каким, и улавливать смысловые связи на больших расстояниях, нам нужно внедрить информацию о позиции каждого элемента в тексте. В этом уроке мы шаг за шагом разберем, как изящно решается эта математическая задача.
Мы пройдем путь от простого сложения семантических эмбеддингов с позиционными векторами, которое применялось на заре трансформеров, до передового стандарта индустрии — Rotary Position Embedding (RoPE). Отдельное внимание мы уделим одной из самых горячих архитектурных проблем: экстраполяции контекста. Мы обсудим, как обучить модель на коротких текстах, а затем заставить её безошибочно читать книги размером в сотни тысяч токенов.
Зачем нужно позиционное кодирование: почему базовый механизм внимания "слеп" к порядку слов и как мы сообщаем моделям эту информацию.
Абсолютное кодирование (2017 год): как работают синусоидальные позиционные векторы, в чем магия константы 10000 и почему добавление позиции к исходному эмбеддингу неизбежно "зашумляет" смысл самого слова.
Относительное кодирование: почему информацию о позиции логичнее применять только к матрицам запросов (Q) и ключей (K), оставляя вектор значений (V) в чистом семантическом виде.
Rotary Position Embedding (RoPE): как работает поворот векторов в комплексном (и действительном) пространстве по парам координат.
Проблема масштабирования контекста: что происходит с математикой внимания, когда длина текста превышает ту, на которой обучалась модель (как углы поворота переваливают за 2π и ломают предсказания).
Современные методы расширения контекста:
Position Interpolation (PI): пропорциональное сжатие позиций (простой метод, но требует дообучения).
NTK-aware и NTK-by-parts: умное растягивание низкочастотных волн с максимальным сохранением высокочастотных (позволяет увеличивать контекст практически без штрафов).
Dynamic NTK: динамическое изменение углов поворота прямо во время генерации ответа пользователю, и почему это заставляет пересчитывать KV-кэш.
В качестве тем для самостоятельного исследования и углубления в материал мы предлагаем вам поразмышлять над следующими вопросами:
Оцените концепцию RoPE: почему вращение векторов запроса (Q) и ключа (K) позволяет получить чистую относительную разницу их позиций при скалярном произведении?
Сравните подходы к расширению контекста (Position Interpolation против NTK-методов). Подумайте, почему поломка именно "высокочастотных" компонент позиционного вектора сильнее всего сбивает модель с толку.
Поразмышляйте над инженерным компромиссом в подходе Dynamic NTK: почему динамический пересчет углов поворота в процессе генерации каждого нового слова ломает классическую логику статического KV-кэша.
В этом материале нет файлов для просмотра.