COMRAD404 / GLOSSARY

Параметры модели (Model Parameters)

Model parameters

Параметры модели — это обучаемые значения внутри ML-системы: прежде всего веса и смещения, а в некоторых архитектурах ещё и embeddings. Они подбираются во время обучения и определяют, как модель преобразует вход в выход.

TL;DR

Параметры модели — это обучаемые внутренние значения, прежде всего веса и смещения, которые меняются во время обучения и определяют поведение модели.

Параметры модели (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:

  1. self.w и self.b — это именно torch.nn.Parameter, а значит фреймворк регистрирует их как параметры модуля.
  2. Во время обучения обновляться будут эти значения, а не произвольные служебные поля класса.
  3. По смыслу это тот же случай, что и в 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 для вашей модели.

Редакционное ограничение: в доступных официальных источниках нет единого межфреймворкового стандарта, который одинаково трактует подсчёт параметров для всех современных режимов обучения, заморозки и адаптации моделей. Поэтому универсальную цифру «сколько параметров у модели на самом деле» всегда нужно читать вместе с контекстом конкретной документации.

Практический вывод: считайте число параметров полезной, но неполной характеристикой. Для работы важнее понимать, какие параметры обучаемые, как они зарегистрированы во фреймворке и что именно включено в подсчёт.

Связанные материалы

Источники

Вопросы и ответы

Параметры модели и гиперпараметры — это одно и то же?

Нет. По глоссарию Google параметры модель изучает во время обучения, а гиперпараметры задаются извне.

Веса и параметры модели — это одно и то же?

Не совсем. Веса обычно входят в параметры, но параметры могут включать ещё смещения и, в некоторых архитектурах, обучаемые embeddings.

Почему у одной модели бывают trainable и non-trainable parameters?

Потому что фреймворки могут различать обучаемые и необучаемые части модели. TensorFlow.js показывает эти категории отдельно в summary.

Большее число параметров всегда означает лучшую модель?

Нет. TensorFlow связывает большее число learnable parameters с большей capacity, то есть способностью запоминать, но это не равно автоматически лучшему качеству на новых данных.

Источники

SOURCES

Вопросы и ответы

FAQ
Параметры модели и гиперпараметры — это одно и то же?

Нет. По глоссарию Google параметры модель изучает во время обучения, а гиперпараметры задаются извне.

Веса и параметры модели — это одно и то же?

Не совсем. Веса обычно входят в параметры, но параметры могут включать ещё смещения и, в некоторых архитектурах, обучаемые embeddings.

Почему у одной модели бывают trainable и non-trainable parameters?

Потому что фреймворки могут различать обучаемые и необучаемые части модели. TensorFlow.js показывает эти категории отдельно в summary.

Большее число параметров всегда означает лучшую модель?

Нет. TensorFlow связывает большее число learnable parameters с большей capacity, то есть способностью запоминать, но это не равно автоматически лучшему качеству на новых данных.

Читайте также

LINKS