Веса и параметры модели — это численные значения, которые определяют, как модель преобразует вход в выход после обучения. В нейросетях к ним обычно относятся матрицы весов и векторы смещений; именно они обновляются оптимизатором, сохраняются в checkpoint и загружаются при инференсе. Считать параметры полезно для оценки памяти, времени загрузки и объёма дообучения, но как единственный показатель модель сравнивать нельзя: одинаковое число параметров не гарантирует одинаковую точность, скорость или стоимость запуска. Для деревьев решений, k-NN и retrieval-систем термин «веса» либо вторичен, либо означает не то же самое, поэтому переносить интуицию из нейросетей на все методы не стоит.
Простыми словами
Параметры — это числа, которые модель подбирает на данных. Если модель ошибается, алгоритм обучения немного меняет эти числа, чтобы в следующий раз ответ был ближе к правильному. В глубоком обучении большая часть параметров хранится в слоях как веса связей между нейронами. Часто к ним добавляются смещения, а вместе они образуют обучаемое состояние модели.
Практически важно различать несколько похожих терминов. Когда команда говорит, что у модели 7 миллиардов параметров, она имеет в виду общий размер обучаемого или сохранённого состояния. Когда говорят «заморозили веса», обычно подразумевают, что эти параметры больше не обновляются градиентом. А вот learning rate, число слоёв, размер батча и длина контекста — это уже гиперпараметры, их выбирает инженер, а не сама процедура обучения.
| Термин | Что означает | Практический пример |
|---|---|---|
| Вес | Коэффициент связи между входом и выходом | Элемент матрицы W в линейном слое |
| Смещение | Свободный член, сдвигающий результат | Элемент вектора b |
| Параметр модели | Любое значение, определяющее поведение обученной модели | W и b слоя, эмбеддинги |
| Гиперпараметр | Настройка архитектуры или обучения, задаваемая извне | learning rate, число голов attention |
Для практики это различие не академическое. Ошибка в понимании того, что именно считается параметром, приводит к неверным оценкам памяти, к неправильному выбору способа дообучения и к путанице в отчётах: total parameters, trainable parameters и active parameters — не одно и то же.
Как это работает
Во время прямого прохода модель применяет параметры к входным данным. Для простого слоя это можно записать как y = Wx + b, где x — вход, W — матрица весов, b — смещение, y — результат. В трансформерах формула сложнее, но принцип тот же: параметры задают, как входные токены превращаются в представления, как считается attention и как формируется следующий токен.
Во время обучения модель получает ошибку на выходе, после чего через backpropagation вычисляются градиенты по параметрам. Оптимизатор, например SGD или Adam, обновляет эти значения. Если параметр заморожен, он участвует в вычислении выхода, но не меняется. Поэтому модель может иметь 7 миллиардов общих параметров и лишь несколько миллионов trainable parameters при адаптации через LoRA или другой parameter-efficient подход.
После обучения параметры сериализуются в файл. В разных фреймворках это могут быть checkpoint, state_dict, веса слоя или наборы тензоров. При инференсе система загружает эти тензоры в память устройства. Отсюда следует важное практическое правило: число параметров почти всегда можно напрямую перевести в базовую оценку памяти для хранения весов.
Объём памяти для весов ≈ число параметров × байт на один параметр
Эта оценка полезна, но неполна. Во время обучения память дополнительно занимают активации, градиенты и состояние оптимизатора. Во время инференса для генеративных моделей существенную долю может занимать KV-кэш. Поэтому модель на 1 миллиард параметров редко требует только «ровно 2 ГБ» в FP16 на практике.
| Формат хранения | Байт на параметр | Оценка для 1 млрд параметров |
|---|---|---|
| FP32 | 4 | около 4 ГБ |
| FP16 / BF16 | 2 | около 2 ГБ |
| INT8 | 1 | около 1 ГБ |
| 4-bit | 0,5 | около 0,5 ГБ |
Для 8-битного и 4-битного хранения это приближение: реальный объём зависит от служебных таблиц, группировки и формата квантования. Но как грубая прикидка таблица полезна при планировании деплоя.
Зачем нужно
- Планировать память и железо. Число параметров помогает понять, поместится ли модель в GPU, CPU RAM или в мобильное устройство.
- Оценивать стоимость обучения и дообучения. Чем больше обучаемых параметров, тем выше требования к памяти, пропускной способности и времени шага.
- Выбирать способ адаптации. Если полный fine-tuning слишком дорог, можно уменьшить число trainable parameters через заморозку слоёв, adapters или LoRA.
- Проверять корректность модели. Неожиданное число параметров часто сигнализирует об ошибке в архитектуре, размере словаря, форме слоёв или загрузке checkpoint.
- Сравнивать версии одной и той же архитектурной семьи. Внутри одного семейства параметризация помогает понимать, почему одна версия тяжелее или дороже другой.
Однако для сравнения моделей из разных классов этого недостаточно. Компактный трансформер, квантованная модель, смесь экспертов и retrieval-архитектура могут иметь несопоставимые профили качества и затрат при близком числе параметров.
Пример
Предположим, вы строите простой классификатор для табличных данных: 100 входных признаков, один скрытый слой на 64 нейрона и один выход. Тогда число параметров считается так:
- первый слой:
100 × 64 = 6400весов и64смещения; - выходной слой:
64 × 1 = 64веса и1смещение.
Итого 6400 + 64 + 64 + 1 = 6529 параметров. Если хранить их в FP32, сами веса займут примерно 6529 × 4 байта, то есть около 26 КБ. Если дообучать только последний слой, то total parameters останется 6529, а trainable parameters уменьшатся до 65. Для инженера это означает три вещи: checkpoint почти не уменьшится, шаг обучения станет дешевле, а риск переобучить маленький датасет снизится.
Этот пример показывает ещё одну важную деталь: размер датасета не меняет число параметров напрямую. Модель на 6529 параметров может обучаться и на 10 тысячах строк, и на миллионе строк. Меняется не размер модели, а то, насколько хорошо эти параметры удаётся подобрать.
Заблуждения и ограничения
Число параметров — это мера ёмкости и стоимости модели, а не краткая замена слову «качество».
- «Чем больше параметров, тем лучше». Не всегда. Дополнительные параметры повышают выразительность, но без данных, регуляризации и удачной архитектуры они могут не дать выигрыша или даже ухудшить устойчивость.
- «Если модель квантована, параметров стало меньше». Обычно нет. Квантование меняет точность хранения и вычислений, а не логическое число параметров.
- «Параметры и гиперпараметры — одно и то же». Нет. Параметры учатся на данных, гиперпараметры задаются при проектировании и обучении.
- «У двух моделей по 7B параметров одинаковые требования к запуску». Нет. На память и скорость влияют архитектура, длина контекста, KV-кэш, sparsity, смесь экспертов и реализация рантайма.
- «Количество параметров показывает, сколько знаний хранит модель». Лишь очень грубо. Знания распределены по многим слоям и плохо сводятся к простому счётчику.
Есть и случаи, где термин стоит применять осторожно. В k-NN модель почти не обучает веса в нейросетевом смысле; основная память там — это сами примеры. В деревьях решений поведение задаётся структурой узлов и порогами, а не большими матрицами весов. В mixture-of-experts полезно различать общее число параметров и число активных параметров на один токен. В parameter-efficient fine-tuning важно смотреть не только на total parameters, но и на trainable parameters, иначе оценка стоимости будет вводящей в заблуждение.
Частые вопросы
Веса и параметры — это одно и то же?
Не совсем. Вес — это конкретный коэффициент, обычно элемент матрицы связи. Параметр — более широкое понятие: кроме весов, к параметрам относятся смещения, эмбеддинги и другие обучаемые тензоры.
Больше параметров всегда означает лучшую модель?
Нет. Параметры увеличивают потенциальную ёмкость, но результат зависит от данных, архитектуры, способа обучения, регуляризации и задачи. На узких задачах компактная модель нередко выигрывает у более крупной по задержке и стабильности.
Почему простая формула по параметрам не совпадает с реальным потреблением памяти?
Потому что кроме самих весов память занимают активации, градиенты, состояние оптимизатора, KV-кэш и служебные буферы фреймворка. Формула по параметрам даёт только базовую оценку для хранения весов.
Квантование уменьшает число параметров?
Обычно нет. Оно уменьшает объём, в котором параметры хранятся, и иногда снижает вычислительную стоимость. Но если в модели было 7 миллиардов параметров, после квантования логически их остаётся столько же.
Что именно сохраняется в checkpoint?
Минимально — параметры модели. Во многих сценариях туда также входят состояние оптимизатора, номер шага, scaler смешанной точности и служебные метаданные. Поэтому размер training checkpoint часто заметно больше, чем файл только с весами.
Связанные понятия
- Гиперпараметры. Внешние настройки обучения и архитектуры: learning rate, размер батча, число слоёв.
- Градиент. Производная ошибки по параметру; показывает, как изменить параметр, чтобы уменьшить loss.
- Checkpoint. Сохранённое состояние модели и, нередко, состояния обучения.
- Fine-tuning. Дообучение уже готовой модели на новой задаче или домене.
- LoRA и adapters. Подходы, которые уменьшают число trainable parameters при адаптации большой модели.
- Квантование. Снижение точности хранения весов для уменьшения памяти и иногда ускорения инференса.
- Эмбеддинги. Параметры, сопоставляющие токенам или категориям плотные векторы.
Если нужен короткий рабочий вывод, он такой: считайте параметры, чтобы понимать память, стоимость и способ дообучения; не используйте одно это число как замену архитектурному анализу и измерениям на вашей задаче.