Parameters
parameters — числа, значения которых модель получает во время обучения
Параметры нейросети — числа, которые настраиваются при обучении и сохраняются в весах модели. Разберём, как они влияют на результат, память и вычисления и почему их количество не равно качеству.
Коротко
Параметры модели — числа, от которых зависят её вычисления. При обучении подбираются их значения. У нейросети это, например, веса матриц, смещения и коэффициенты нормализации. После обучения они сохраняются и при обычном запуске остаются неизменными.
Обозначение 7B обычно означает семь миллиардов параметров: B — от английского billion. Это не размер файла в гигабайтах и не количество фактов, которые модель знает.
Что именно хранится в весах
В файле модели нет отдельной папки «русский язык» или ячейки с готовым ответом про кошек. Параметры собраны в тензоры — многомерные массивы чисел.
В простом нейроне вычисление выглядит так:
y = f(w₁ × x₁ + w₂ × x₂ + … + wₙ × xₙ + b)
Входные значения x умножаются на веса w, складываются со смещением b, затем проходят через функцию f. Веса и смещение — параметры. Входы — данные конкретного примера, а не параметры модели.
В других блоках параметры устроены иначе. Таблица эмбеддингов хранит векторы токенов, а слой нормализации может иметь обучаемые коэффициенты масштаба и смещения. В разговоре словом «веса» часто называют весь этот набор. В строгом описании веса, смещения и другие обучаемые коэффициенты различают.
Как их считают
У полносвязного слоя с m входами и n выходами матрица весов содержит m × n чисел. Если у каждого выхода есть смещение, добавляется ещё n:
число параметров = m × n + n
Например, слой с четырьмя входами и тремя выходами содержит 12 весов и 3 смещения — всего 15 параметров. Обычная ReLU обучаемых параметров не добавляет.
У таблицы эмбеддингов считают размер словаря, умноженный на длину вектора. У свёртки учитывают каналы, ядро, группы и смещения. Для всей сети складывают параметры её компонентов.
При этом один и тот же тензор может использоваться в нескольких местах. Например, веса входного представления токенов и выходного блока иногда связаны. При подсчёте уникальных параметров такой тензор не нужно учитывать дважды.
Поэтому рядом с итоговым числом полезно знать метод подсчёта: какие компоненты включены, есть ли общие веса и относится ли число ко всей системе.
Что происходит при обучении
Модель получает группу примеров, делает предсказания, а функция потерь оценивает результат. Обратное распространение вычисляет градиенты — чувствительность потерь к небольшим изменениям параметров. Оптимизатор использует их для обновления значений.
Простой шаг градиентного спуска:
новое значение = старое значение − скорость обучения × градиент
Другие оптимизаторы могут учитывать историю градиентов и дополнительные правила. Это не запись одного примера в одну ячейку: изменения распределяются по множеству параметров.
При обычном ответе на запрос такого обновления нет. Контекст разговора меняется, но веса остаются прежними. Дообучение — отдельный процесс.
Всего, обучаемых, замороженных и активных
В описании одной модели могут встретиться разные числа.
| Обозначение | Что означает |
|---|---|
| Total | Общее число учитываемых параметров |
| Trainable | Параметры, разрешённые к обновлению в этом обучении |
| Frozen | Параметры, обновление которых отключено |
| Active | Параметры, участвующие в обработке одного токена или другого элемента по принятой методике |
Обучаемая часть зависит от настройки запуска. При полном дообучении меняют большую часть модели, при LoRA часто замораживают базу и обучают добавленные матрицы. Наличие градиента и реальное обновление также зависят от того, какие параметры переданы оптимизатору.
Активные параметры особенно важны для MoE. На каждом токене маршрутизатор выбирает часть экспертов. Это сокращает некоторые вычисления, но веса остальных экспертов всё равно нужно хранить или подгружать.
Не все числа внутри модели — параметры
В PyTorch помимо параметров есть буферы. Например, BatchNorm может хранить накопленные оценки среднего и дисперсии. Они входят в состояние модели, но не обновляются оптимизатором как обычные обучаемые веса.
Активации — промежуточные результаты для конкретного входа. Они зависят от размера группы примеров, длины текста, разрешения изображения и архитектуры.
Состояние оптимизатора нужно для продолжения обучения: это могут быть накопленные сведения о прошлых градиентах.
Все эти данные занимают память, но их не следует без разбора прибавлять к числу параметров. Правила учёта также могут различаться между библиотеками.
Параметры и гигабайты
Для несжатого хранения значений в одном формате базовая оценка такая:
объём в байтах = число значений × бит на значение ÷ 8
Один миллиард значений занимает:
- 4 ГБ в FP32;
- 2 ГБ в FP16 или BF16;
- 1 ГБ при 8 битах на значение;
- 0,5 ГБ при 4 битах на значение.
Здесь ГБ — десятичные гигабайты, без служебных данных. Это не универсальная нижняя граница любого способа сжатия.
В квантизованном файле дополнительно хранятся масштабы, смещения или другие параметры представления. Некоторые части модели могут оставаться в более высокой точности. В файл также входят метаданные и, в зависимости от формата, другие компоненты.
Квантизация обычно меняет способ записи весов, а не число их позиций в архитектуре. Поэтому модель с тем же числом параметров может занимать значительно меньше места.
Почему память при запуске больше файла
Кроме весов программе нужны промежуточные результаты, рабочие буферы и другие компоненты. Языковой модели может понадобиться KV-кэш для работы с предыдущими токенами.
При обучении добавляются градиенты, сохранённые активации и состояние оптимизатора. Поэтому файл, который помещается на накопителе и даже в оперативной памяти, не обязательно получится обучать на имеющейся видеокарте.
Заморозка весов экономит часть памяти обучения, но не удаляет сами веса: они всё ещё участвуют в вычислениях. Разница между размером файла и пиком нагрузки подробнее разобрана в статье о VRAM.
В графе ComfyUI это различие видно на простой проверке: одна модель может загрузиться, а затем не поместиться при обработке большого кадра. Связь загрузчика, сэмплера и декодера показана в базовом workflow.
Пример с локальным помощником
Допустим, для поиска по расшифровкам выбраны исходная и квантизованная версии одной модели. Число параметров у них одинаковое, а файлы разного размера.
Для сравнения пригодятся четыре величины:
- Число параметров и состав модели.
- Формат чисел или схема квантизации.
- Фактический размер файлов.
- Память и скорость на типичном запросе.
Затем стоит проверить более длинный запрос. Даже при тех же весах расход памяти может вырасти из-за контекста. А качество квантизованной версии проверяется ответами, не только размером файла. Если задача — уменьшить общий расход ресурсов, пригодится разбор Sustainable AI: компактность весов ещё не показывает энергию на один полезный результат.
С чем часто путают
Настройки обучения. Скорость обучения и размер группы примеров обычно называют гиперпараметрами. Они задают процесс подбора весов, но сами не являются весами.
Настройки генерации. Seed, температура, число шагов и CFG управляют запуском. Изменение этих полей не означает дообучения модели.
Количество знаний. Представления распределены по многим параметрам. Число весов нельзя перевести в число известных слов или фактов.
Размер модели и качество. Данные, архитектура и обучение могут быть важнее дополнительного числа параметров. Небольшая специализированная модель иногда лучше подходит узкой задаче.
Частые вопросы
Как узнать число параметров точно?
Можно просуммировать число элементов уникальных тензоров параметров в загруженной модели. Важно отделить их от буферов и уточнить, какие компоненты загружены. Карточка модели обычно даёт удобную исходную оценку.
Что означает trainable percentage?
Долю параметров, выбранных для обучения, относительно принятого общего числа. Небольшая доля характерна для адаптеров, но не является оценкой качества.
Удаляет ли квантизация часть параметров?
Обычно нет: она записывает те же позиции весов с меньшей точностью. Удаление связей или блоков — отдельные методы, например pruning.
Чем отличаются параметр и вес?
В разговоре слова часто взаимозаменяемы. В более точном описании к параметрам относят и веса, и смещения, и другие обучаемые коэффициенты.
Главное
Число параметров помогает представить масштаб модели, но не описывает её целиком. Для практического выбора рядом нужны формат хранения, активная и обучаемая части, память при запуске и качество на своей задаче.