Зачем нужен bias=False у Linear-слоёв в современных LLM?

В современных больших языковых моделях (LLM) часто устанавливают параметр bias=False в линейных слоях, чтобы убрать смещение (bias).

Короткий ответ

Что ответить на собеседовании

В современных больших языковых моделях (LLM) часто устанавливают параметр bias=False в линейных слоях, чтобы убрать смещение (bias). Это связано с тем, что в архитектуре трансформеров смещения могут быть избыточными или даже вредными, так как:

Подробный разбор

Ответ с пояснениями

В современных больших языковых моделях (LLM) часто устанавливают параметр bias=False в линейных слоях, чтобы убрать смещение (bias). Это связано с тем, что в архитектуре трансформеров смещения могут быть избыточными или даже вредными, так как:

  • В нормализации слоёв (LayerNorm) уже есть сдвиг и масштабирование, которые компенсируют необходимость bias в линейных слоях.
  • Удаление bias уменьшает количество параметров и может улучшить стабильность обучения.
  • В некоторых случаях bias может привести к избыточной параметризации и ухудшению обобщающей способности модели.

Таким образом, bias=False помогает сделать модель более компактной и стабильной, особенно когда есть другие механизмы компенсации смещения.

Пример в PyTorch:

import torch.nn as nn

linear = nn.Linear(in_features=768, out_features=768, bias=False)

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее