Своя LLM с нуля
Словарик
Все термины учебника коротко и по-человечески. У каждого — английское название и глава, где он появляется.
- AdamW AdamW
- Оптимизатор с адаптивным масштабом обновлений по средним градиента и его квадрата. Затухание весов применяется отдельно. глава 10 →
- BPE BPE
- Byte Pair Encoding: строим словарь, раз за разом склеивая самую частую пару соседних токенов. глава 6 →
- KV-кэш KV cache
- Сохранённые ключи и значения уже прочитанных токенов, чтобы не пересчитывать их на каждом шаге. глава 11 →
- LoRA LoRA
- Обучение поправок низкого ранга к выбранным матрицам при замороженных исходных весах. У адаптеров Ростка 417 792 обучаемых параметра, около 2,4% размера модели. глава 13 →
- Muon Muon
- Оптимизатор, приближённо ортогонализующий матричное обновление с импульсом. В коротких опытах Ростка дал меньшую ошибку при том же числе токенов, чем AdamW. глава 10 →
- RLHF, DPO RLHF, DPO
- RLHF использует человеческую обратную связь в обучении с подкреплением. DPO обучает по парам предпочтений напрямую, без отдельного этапа обучения модели награды. глава 17 →
- RMSNorm RMSNorm
- Деление координат вектора на корень из среднего квадрата с малой добавкой для устойчивости; затем применяется обучаемый масштаб. глава 8 →
- RoPE RoPE
- Поворотные позиционные эмбеддинги: запрос и ключ поворачиваются на угол, зависящий от позиции. глава 8 →
- SFT SFT
- Supervised fine-tuning: продолжение обучения на подготовленных примерах. В нашем чате ошибка считается по токенам ответа ассистента и метке его конца. глава 12 →
- Softmax Softmax
- Превращает логиты в вероятности: берёт экспоненту каждого и делит на сумму. глава 3 →
- SwiGLU SwiGLU
- Вариант сети прямого распространения с «воротами»: silu(xW₁) ⊙ xW₃. глава 8 →
- Top-k, top-p Top-k, top-p
- Top-k оставляет k наиболее вероятных токенов. Top-p — минимальное начало отсортированного списка с суммарной вероятностью не меньше p. Оставшиеся вероятности нормируются. глава 11 →
- Авторегрессия Autoregression
- Способ писать текст: выбрать следующий токен, дописать его и снова спросить модель — уже про следующий. глава 0 →
- Базовая модель Base model
- Модель после предобучения, до последующей настройки. Может продолжать текст и отвечать на некоторые вопросы, но ещё не настроена для роли ассистента. глава 12 →
- Батч Batch
- Пачка примеров, по которой считается один шаг обучения. У Ростка — 32 768 токенов. глава 10 →
- Биграмма Bigram
- Пара соседних единиц: символов, слов или токенов. В нашей символьной биграммной модели следующий символ зависит только от предыдущего. глава 1 →
- Внимание Attention
- Взвешенное смешивание векторов значений. В причинном внимании Ростка каждая позиция использует себя и доступные предыдущие позиции. глава 7 →
- Выборка (сэмплирование) Sampling
- Случайный выбор значения с учётом вероятностей, как бросок нечестного кубика. глава 1 →
- Вызов инструмента Tool call
- Модель пишет не ответ, а запрос к программе (у Ростка-2 — код на Python); страница выполняет его, возвращает результат модели, и та продолжает. глава 16 →
- Голова внимания Attention head
- Один набор проекций запросов, ключей и значений. Несколько голов вычисляют внимание параллельно, затем их выходы объединяются. глава 7 →
- Градиент Gradient
- Вектор производных по всем параметрам. Показывает, куда ошибка растёт быстрее всего. глава 3 →
- Градиентный спуск Gradient descent
- Шаг за шагом сдвигать параметры против градиента, чтобы ошибка уменьшалась. глава 3 →
- Групповое внимание (GQA) Grouped-query attention (GQA)
- Несколько голов запросов делят одну голову ключей и значений. У Ростка-2 9 голов запросов на 3 головы ключей, поэтому KV-кэш втрое меньше. глава 15 →
- Дедупликация Deduplication
- Удаление повторов из корпуса, чтобы модель не зубрила одно и то же. глава 9 →
- Деконтаминация Decontamination
- Удаление из корпуса документов, которые совпадают с вопросами бенчмарков (у Ростка-2 — 13 слов подряд), чтобы тест мерил умение, а не память. глава 14 →
- Законы масштабирования Scaling laws
- Эмпирические формулы: как ошибка падает с ростом модели, данных и вычислений. глава 10 →
- Заполнение середины (FIM) Fill-in-the-middle (FIM)
- Файл кода режут на три части и переставляют со служебными токенами: начало, конец, потом середина. Так модель учится дописывать код между готовыми строками. глава 14 →
- Запрос, ключ, значение Query, key, value
- Запрос и ключ сравниваются для расчёта весов внимания; значения смешиваются с этими весами. Все три вектора вычисляются из представлений токенов. глава 7 →
- Каузальная маска Causal mask
- Запрет смотреть в будущее: токен видит только себя и тех, кто был раньше. глава 7 →
- Квантование Quantisation
- Представление чисел меньшим набором значений, обычно с меньшим числом бит. Экономит память; влияние на качество зависит от метода и модели. глава 11 →
- Корпус Corpus
- Собрание текстов для обучения и оценки. В подготовленных данных Ростка 1,43 млрд токенов; за основной запуск прочитано около 330 млн, с возможными повторами. глава 9 →
- Кросс-энтропия Cross-entropy
- Среднее значение −log q для событий из распределения p, где q — прогноз модели. В курсе её оцениваем по правильным продолжениям текста. глава 2 →
- Логиты Logits
- Сырые оценки модели для каждого токена до softmax — любые числа, не вероятности. глава 3 →
- Маска документов Document mask
- В строке обучения несколько документов подряд; маска не даёт токену смотреть на токены чужого документа. глава 15 →
- Мысли (рассуждение перед ответом) Thinking (reasoning before the answer)
- Шаги решения, которые модель пишет перед ответом между токенами <|think|> и <|/think|>. Каждый токен — ещё немного вычислений, но верным ответ от этого сам собой не становится. глава 16 →
- Мягкий потолок логитов Logit soft-capping
- Логиты пропускают через c·tanh(x/c) (у Ростка-2 c = 30): обычные почти не меняются, а выше c ни один подняться не может. глава 15 →
- Нат, бит Nat, bit
- Единицы информации: с натуральным логарифмом — наты, с двоичным — биты. 1 нат ≈ 1,44 бита. глава 2 →
- Нейрон Neuron
- В учебной сети — взвешенная сумма входов со сдвигом, к которой применяют функцию активации, например tanh или ReLU. глава 4 →
- Обратное распространение Backpropagation
- Способ посчитать все градиенты сразу: пройти граф вычислений от ошибки назад, применяя цепное правило. глава 4 →
- Остаточный поток Residual stream
- Вектор, который проходит через все блоки; каждый блок прибавляет к нему свою поправку. глава 8 →
- Параметр Parameter
- Одно число внутри модели, которое подбирается обучением. У Ростка их 17,3 миллиона. глава 0 →
- Переобучение Overfitting
- Модель всё лучше подгоняется под обучающие примеры, но качество на новых данных перестаёт улучшаться или ухудшается. глава 5 →
- Перплексия Perplexity
- Экспонента средних потерь, измеренных в натах. Переводит ошибку в масштаб угадывания из равновероятных вариантов, но не считает оставшиеся токены. глава 2 →
- Правдоподобие Likelihood
- Вероятность наблюдённых данных, рассматриваемая как функция параметров модели. Обучение может искать параметры, при которых она максимальна. глава 2 →
- Производная Derivative
- Скорость изменения функции: насколько она вырастет, если чуть сдвинуть аргумент. глава 3 →
- Прокси-модель Proxy model
- Маленькая копия модели, на которой перед большим обучением дёшево сравнивают настройки: скорость обучения, состав данных, детали архитектуры. глава 15 →
- Ранг матрицы Matrix rank
- Сколько независимых направлений хранит матрица. Матрица ранга r — сумма r «простых» слоёв. глава 13 →
- Системное сообщение System message
- Текст в начале диалога, который задаёт правила или сообщает о возможностях, например «можешь запускать Python». Модель слушается его настолько, насколько видела такие примеры при обучении. глава 16 →
- Скалярное произведение Dot product
- Сумма попарных произведений координат. Зависит и от направлений векторов, и от их длин; часто используется при вычислении оценок сходства. глава 5 →
- Скорость обучения Learning rate
- Коэффициент, задающий масштаб обновления параметров. Слишком большой может сделать обучение неустойчивым, слишком маленький — медленным. глава 3 →
- Смесь данных Data mix
- Доли источников в обучении: сколько токенов модель видит из веба, кода, вопросов и ответов и так далее. На спуске Росток-2 учился на другой смеси. глава 14 →
- Спуск скорости обучения Cooldown
- Последняя часть обучения, где скорость обучения плавно падает до нуля. Росток-2 сохранил контрольную точку перед спуском, чтобы обучение можно было продолжить. глава 15 →
- Температура Temperature
- Делитель логитов перед softmax: ниже — модель смелее выбирает главное, выше — разнообразнее. глава 11 →
- Токен Token
- Единица последовательности, представленная номером в словаре: слово, фрагмент слова, байт или служебная метка. глава 6 →
- Трансформер Transformer
- Семейство архитектур с блоками внимания, сетью, обрабатывающей каждую позицию отдельно и остаточными связями. Росток использует причинный трансформер-декодер. глава 8 →
- Удивление (информация) Surprise (information)
- Минус логарифм вероятности: −log p. Маловероятное событие удивляет сильнее. глава 2 →
- Условная вероятность Conditional probability
- Вероятность события при условии, что другое уже случилось: p(b | a). глава 1 →
- Функция потерь Loss
- Численная оценка ошибки по выбранному правилу. Обучение направлено на её уменьшение, хотя отдельный шаг может её увеличить. глава 3 →
- Цепное правило Chain rule
- Производная сложной функции — произведение производных её частей. глава 4 →
- Шаблон чата Chat template
- Способ записать диалог токенами с метками ролей: <|user|>, <|assistant|>, <|end|>. глава 12 →
- Эмбеддинг Embedding
- Векторное представление объекта; в Ростке каждому токену соответствует обучаемая строка таблицы. Геометрические отношения между векторами зависят от обучения. глава 5 →
- Энтропия Entropy
- Среднее удивление самого распределения: насколько оно неопределённо. глава 2 →
- Языковая модель Language model
- Программа, которая по началу текста оценивает вероятность каждого возможного продолжения. глава 0 →