VKВлад КуликовОткрытые лекции
Современные LLM4 / 20

Модуль 4. Позиционные представления: от синусоид к нескольким осям

Сначала попробуйте решить упражнение. Ответы, подробные решения и проектные ориентиры раскрываются отдельно и сохраняют своё состояние при переключении RU/EN.

Скачать файлы курса (.zip) 2588,1 КБ

Архив содержит файлы на обоих языках и вспомогательные материалы с сохранением структуры каталогов.

У1. Точная относительность

Зафиксируйте содержательные векторы q, k и частоты. Докажите, что общий сдвиг позиций на cc не меняет RoPE-логит.

Показать ответ и решение

Решение.

(Rm+cq)T(Rn+ck)=qTRm+cTRn+ck=qTRn−mk.(R_{m+c}q)^T(R_{n+c}k) =q^TR_{m+c}^TR_{n+c}k =q^TR_{n-m}k.

Здесь использованы два свойства двумерных поворотов: RaT=R−aR_a^T=R_{-a} и RaRb=Ra+bR_aR_b=R_{a+b}. Поэтому Rm+cTRn+c=R−(m+c)Rn+c=Rn−mR_{m+c}^TR_{n+c}=R_{-(m+c)}R_{n+c}=R_{n-m}: общий сдвиг cc сокращается, и при фиксированных q, k позиционная зависимость остаётся только через смещение n−mn-m.

У2. Спектр базы

Для D=64D=64 вычислите число пар, совершивших хотя бы один оборот на интервале L=4096 шагов позиции, при base 10 000, 150 000 и 500 000.

Показать ответ и решение

Решение. Для пары с индексом i=0,…,D/2−1i=0,\ldots,D/2-1 частота равна θi=base−2i/D\theta_i=\text{base}^{-2i/D}. Она совершила хотя бы один оборот, если Lθi≥2πL\theta_i\ge2\pi, то есть

i≤D2ln⁡(L/2π)ln⁡(base).i\le \frac{D}{2}\frac{\ln(L/2\pi)}{\ln(\text{base})}.

При D=64D=64 и L=4096L=4096 правые части равны примерно 22.52, 17.40 и 15.80. Считая целые индексы от нуля, получаем 23, 18 и 16 пар. Это покрытие фаз в заданном окне, а не жёсткое число «различимых координат».

У3. YaRN-сценарий

Для base 150 000, factor 32, D=64D=64, L0=4096L_0=4096, βfast=32\beta_{fast}=32, βslow=1\beta_{slow}=1 найдите зоны и множитель attention_factor.

Показать ответ и решение

Решение. Подстановка параметров в формулы границ рампы исходной gpt-oss-реализации даёт low≈8.0928, high≈17.3980. Поэтому пары i=0,…,8i=0,\ldots,8 сохраняют исходные частоты (9 пар), i=9,…,17i=9,\ldots,17 лежат в переходе (9), а i=18,…,31i=18,\ldots,31 полностью интерполированы (14). При truncate=True границы записываются как 8/18, но целочисленное разбиение остаётся тем же.

Множитель равен

a=1+0.1ln⁡32=1.346574.a=1+0.1\ln 32=1.346574.

Если им масштабируются и qq, и kk, то скалярное произведение получает два множителя: (aq)T(ak)=a2qTk(aq)^T(ak)=a^2q^Tk, поэтому коэффициент логита равен a2=1.813260a^2=1.813260, а не aa.

У4. M-RoPE

Покажите, почему координаты текста (m,m,m)(m,m,m) дают тот же результат, что обычная 1D-RoPE.

Показать ответ и решение

Решение. M-RoPE распределяет вращаемые пары между координатами, например время, высота и ширина. У текстового токена они равны (m,m,m)(m,m,m), поэтому любая пара с частотой θi\theta_i, независимо от назначенной оси, поворачивается на угол mθim\theta_i. Конкатенация всех таких пар в точности совпадает с обычной 1D-RoPE. Различие появляется только для мультимодального токена, у которого координаты осей не совпадают.

У5 [проект]

Возьмите открытую модель с опубликованным config.json. Восстановите частотный спектр, построите график длин волн и отдельно перечислите: что следует из конфигурации, что следует из кода, а что требует технического отчёта.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный demo-notebook модуля 4, разделы «Демо 1» и «Демо 2» как отправная точка для проектной работы модуля. Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.