Обозначения и математический минимум
Эта страница собирает обозначения, которые используются во всех главах, и напоминает математику, без которой формулы пособия читать трудно. Если вы уверенно умножаете матрицы и знаете, что такое softmax и логарифм правдоподобия, достаточно просмотреть таблицу обозначений.
Размерности
Заголовок раздела «Размерности»| Символ | Смысл | Ключ конфига / имя в коде | Пример (учебный конфиг) |
|---|---|---|---|
| размер батча — сколько последовательностей обрабатывается одновременно | batch_size | 2 | |
| длина последовательности (куска токенов, поданного в модель) | seq_len | до 128 | |
| максимальная длина контекста | max_position_embeddings | 128 или 512 | |
| размер словаря | vocab_size | ~1000 | |
| размерность модели: эмбеддинга и скрытого состояния | embed_dim, emb_size | 256 | |
| число блоков декодера | num_layers | 4 | |
| число голов Q (запросов) | num_heads, num_q_heads | 4 | |
| число голов K/V (ключей и значений) | num_kv_heads | 2 | |
| размер одной головы | head_size | 64 | |
| скрытый размер feed-forward сети | intermediate_size | 1024 | |
| число экспертов MoE | num_experts | 8 | |
| сколько экспертов выбирается на токен | top_k_experts | 2 | |
| ширина скользящего окна внимания | window_size | 16 |
Обычно , а , но в некоторых моделях это не так — каждый раз это оговаривается.
Индексы и переменные
Заголовок раздела «Индексы и переменные»| Символ | Смысл |
|---|---|
| токен (целое число от 0 до ) на позиции ; позиции нумеруются с 0 | |
| все токены до позиции : | |
| скрытое состояние (вектор) позиции | |
| матрица скрытых состояний: строка — вектор позиции | |
| выход блока декодера ; — вход первого блока (эмбеддинги) | |
| состояние внутри блока после attention-подслоя (главы части II) | |
| матрица эмбеддингов токенов; — её строка. В главах о MoE — число экспертов, и матрица эмбеддингов там обозначается | |
| матрица логитов для всей последовательности; строка — вектор позиции | |
| матрицы запросов, ключей и значений в attention (не путать -матрицу со словарём — из контекста всегда ясно) | |
| матрицы весов проекций attention | |
| logits — ненормированные оценки токенов | |
| распределение вероятностей следующего токена, | |
| функция потерь (loss) | |
| все обучаемые параметры модели; в главе о RoPE — частота -й пары координат | |
| скорость обучения (learning rate) | |
| температура при генерации | |
| поэлементное произведение (произведение Адамара) | |
| конкатенация векторов |
Векторы-строки и линейный слой
Заголовок раздела «Векторы-строки и линейный слой»В пособии, как и в PyTorch, вектор — это строка, а линейный слой умножает её на матрицу справа:
где:
- — входной вектор длины ;
- — матрица весов: столбец — это веса, с которыми входы складываются в выход ;
- — сдвиг (bias);
- — выход длины .
Для матрицы из строк то же умножение применяется к каждой строке сразу: ( прибавляется к каждой строке). Число параметров слоя — .
В PyTorch nn.Linear(d_in, d_out) хранит матрицу транспонированной (weight имеет форму [d_out, d_in]) и считает x @ weight.T + bias — результат тот же.
Пример: , , . Тогда .
Тензоры и формы
Заголовок раздела «Тензоры и формы»Тензор — многомерный массив. Форма пишется в квадратных скобках, как в PyTorch: [B, T, d] — батч из последовательностей по векторов размерности . В attention добавляется ось голов: [B, H, T, d_h]. Операции над последней осью (линейный слой, нормализация, softmax по ключам) применяются независимо ко всем остальным индексам.
Скалярное произведение, норма, косинус
Заголовок раздела «Скалярное произведение, норма, косинус»Скалярное произведение велико, когда векторы смотрят в одну сторону и длинные; косинус измеряет только угол. На скалярном произведении построен attention: «насколько запрос похож на ключ».
Экспонента, логарифм, softmax
Заголовок раздела «Экспонента, логарифм, softmax»Softmax превращает вектор произвольных чисел в распределение вероятностей:
где:
- — -я компонента входа (logit);
- знаменатель — нормировка, чтобы сумма выходов была равна 1.
Свойства: все выходы положительны; больший даёт большую вероятность; прибавление одной и той же константы ко всем результат не меняет (поэтому на практике вычитают , чтобы не переполнялось). Пример: → , сумма , .
Логарифм — натуральный. Полезные факты: (произведение вероятностей превращается в сумму логарифмов), , при .
Вероятность
Заголовок раздела «Вероятность»- — условная вероятность токена при известных предыдущих.
- Математическое ожидание — среднее значение случайной величины; дисперсия — средний квадрат отклонения.
- Для независимых с нулевым средним: и . Эти два факта объясняют масштаб в attention и инициализацию весов.
- — нормальное распределение со средним и дисперсией ; «веса инициализируются » значит «со стандартным отклонением 0.02».
Производные и градиент
Заголовок раздела «Производные и градиент»- Градиент — вектор частных производных loss по всем параметрам; показывает направление наибыстрейшего роста. Обучение делает шаг в обратную сторону: .
- Цепное правило: если , то . Обратное распространение ошибки (backpropagation) — это цепное правило, применённое ко всему графу вычислений от loss к каждому параметру; в PyTorch его выполняет
loss.backward().
Сложность
Заголовок раздела «Сложность»описывает, как растут время или память с ростом размера: attention стоит операций — удвоение длины текста учетверяет работу.
Как читать формулы в пособии
Заголовок раздела «Как читать формулы в пособии»После каждой формулы идёт список «где: …» с расшифровкой всех символов и форм тензоров, затем объяснение словами и, по возможности, числовой пример. Если в формуле встречается незнакомый символ — ищите его в таблицах выше или в глоссарии.