Параметры модели (model parameters) — это обучаемые значения внутри ML-модели: прежде всего веса (weights) и смещения (biases), которые модель подбирает во время обучения. Именно они определяют, как входные данные преобразуются в ответ; число параметров часто используют как приближённый показатель размера и ёмкости модели, но само по себе оно не гарантирует качество.
Английский термин: model parameters. Также встречается: parameters, параметры, иногда разговорно веса модели — хотя строго это уже сужение смысла, потому что параметры обычно включают не только веса, но и смещения, а в некоторых архитектурах ещё и обучаемые embedding-векторы.
Простыми словами
Грубо говоря, параметры модели можно представить как набор внутренних «ручек настройки». Пока модель не обучена, эти ручки стоят неудачно; во время обучения система постепенно подкручивает их так, чтобы ответы становились ближе к нужным.
Если упростить ещё сильнее: данные на входе одинаковые, а результат меняется именно потому, что внутри модели меняются параметры. Поэтому, когда говорят, что модель «научилась», обычно имеют в виду, что она подобрала значения своих параметров.
Как это работает
Google в своём глоссарии определяет parameters как weights и biases, которые модель изучает в процессе обучения; это противопоставляется hyperparameters, которые задаются извне. TensorFlow.js описывает модель как функцию с learnable parameters и прямо показывает, что для плотного слоя (dense layer) параметрами выступают kernel и bias.
Технически процесс можно разложить на такую последовательность:
входные данные
↓
модель применяет текущие weights / bias
↓
получается выход
↓
обучение оценивает, насколько выход удачен
↓
learnable parameters обновляются
↓
модель снова считает выход уже с новыми значениями
В TensorFlow Core для представления весов модели рекомендуется использовать tf.Variable. В PyTorch аналогичную роль выполняет torch.nn.Parameter: это подкласс Tensor, который автоматически регистрируется как параметр модуля, если присвоен атрибуту Module.
Из этого следуют две практические вещи. Во-первых, параметр — не просто «любое число в коде», а значение, которое фреймворк считает частью модели. Во-вторых, разные системы могут по-разному показывать, что именно вошло в подсчёт: TensorFlow.js, например, отдельно выводит total, trainable и non-trainable params.
Где применяется
- В обычных слоях нейросетей. Для dense-слоёв TensorFlow.js прямо указывает параметры kernel и bias. Это базовый случай, с которого удобно понимать сам термин.
- В рекомендательных системах. В статье Wide & Deep Learning for Recommender Systems линейная часть модели включает вектор весов w и смещение b, а embedding-векторы тоже обучаются во время training. То есть embeddings в таком контексте — не отдельная магия, а тоже параметры модели.
- При оценке ёмкости модели. TensorFlow связывает число learnable parameters с capacity: больше параметров обычно означает большую способность к запоминанию. Это полезно, когда вы думаете о риске переобучения.
- В описаниях и сравнении моделей. В обзорах и карточках моделей число параметров часто приводят как ориентир размера. Но при сравнении, например в контексте open-source vs closed моделей, нужно проверять, как именно это число посчитано.
Практический пример
Ниже — минимальный пример на PyTorch, где параметры заданы явно. Он полезен не тем, что «показывает большую модель», а тем, что точно отделяет параметры от остальных объектов в коде.
import torch
from torch import nn
class TinyModel(nn.Module):
def __init__(self):
super().__init__()
self.w = nn.Parameter(torch.randn(3, 1)) # обучаемый вес
self.b = nn.Parameter(torch.zeros(1)) # обучаемое смещение
def forward(self, x):
return x @ self.w + self.b
Что здесь важно по документации PyTorch:
self.wиself.b— это именноtorch.nn.Parameter, а значит фреймворк регистрирует их как параметры модуля.- Во время обучения обновляться будут эти значения, а не произвольные служебные поля класса.
- По смыслу это тот же случай, что и в TensorFlow: модель хранит обучаемые внутренние величины, от которых зависит результат.
Если вы работаете не с кодом, а с готовыми моделями, логика та же: смотрите не только на общее число параметров, но и на разбиение на trainable и non-trainable. Для прикладной работы это часто важнее голой цифры.
Чем отличается от…
| Термин | Что это | Чем отличается от параметров модели |
|---|---|---|
| Weights (веса) | Обучаемые коэффициенты внутри модели | Обычно это часть параметров. Параметры шире: кроме весов, включают и смещения. |
| Biases (смещения) | Добавочные обучаемые значения | Тоже часть параметров, а не отдельная категория «вне параметров». |
| Hyperparameters (гиперпараметры) | Настройки, которые задаются извне | Google прямо разграничивает их с parameters: гиперпараметры не изучаются моделью во время обучения. |
| Embeddings | Векторные представления объектов | Если embedding-векторы обучаются во время training, они тоже выступают параметрами модели. |
Отсюда короткое правило: не всякий термин рядом с моделью означает отдельный класс сущностей. Иногда это просто более частный случай параметра.
Ограничения и заблуждения
- Заблуждение: «параметры модели» и «веса модели» — полные синонимы. На практике так часто говорят, но строго параметры обычно включают и веса, и смещения, а иногда ещё и обучаемые embeddings.
- Заблуждение: чем больше параметров, тем лучше модель. По TensorFlow, большее число learnable parameters обычно означает большую memorization capacity, а не автоматически лучшее качество на новых данных.
- Заблуждение: одно число параметров всегда сравнимо между моделями. В TensorFlow.js есть отдельные счётчики total, trainable и non-trainable. В разных фреймворках и режимах учёта сравнение может быть некорректным без уточнения методики.
- Не путайте параметры с внешними инструкциями. Например, system prompt управляет тем, как вы задаёте поведение модели на входе, но это не то же самое, что обученные внутренние параметры.
- Большой размер не заменяет проверку поведения. Даже если модель крупная, её всё равно нужно тестировать на риски и нежелательные сценарии, например через red teaming ИИ или практику из материала как провести red teaming для вашей модели.
Редакционное ограничение: в доступных официальных источниках нет единого межфреймворкового стандарта, который одинаково трактует подсчёт параметров для всех современных режимов обучения, заморозки и адаптации моделей. Поэтому универсальную цифру «сколько параметров у модели на самом деле» всегда нужно читать вместе с контекстом конкретной документации.
Практический вывод: считайте число параметров полезной, но неполной характеристикой. Для работы важнее понимать, какие параметры обучаемые, как они зарегистрированы во фреймворке и что именно включено в подсчёт.
Связанные материалы
- Reasoning-модели — чтобы не путать способности модели к рассуждению с одной только величиной параметров.
- Open-source vs closed модели — здесь число параметров часто фигурирует как часть описания модели.
- System prompt — системная инструкция для модели — помогает отделять обученные параметры от внешних инструкций.
- Red teaming ИИ: проверка модели на опасные сценарии — напоминает, что параметров недостаточно для оценки безопасности и поведения.
Источники
- Machine Learning Glossary | Google for Developers
- Training models | TensorFlow.js
- Basic training loops | TensorFlow Core
- Overfit and underfit | TensorFlow Core
- Building Models with PyTorch — PyTorch Tutorials 2.13.0+cu130 documentation
- Wide & Deep Learning for Recommender Systems
Вопросы и ответы
Параметры модели и гиперпараметры — это одно и то же?
Нет. По глоссарию Google параметры модель изучает во время обучения, а гиперпараметры задаются извне.
Веса и параметры модели — это одно и то же?
Не совсем. Веса обычно входят в параметры, но параметры могут включать ещё смещения и, в некоторых архитектурах, обучаемые embeddings.
Почему у одной модели бывают trainable и non-trainable parameters?
Потому что фреймворки могут различать обучаемые и необучаемые части модели. TensorFlow.js показывает эти категории отдельно в summary.
Большее число параметров всегда означает лучшую модель?
Нет. TensorFlow связывает большее число learnable parameters с большей capacity, то есть способностью запоминать, но это не равно автоматически лучшему качеству на новых данных.