ML Fundamentals

softmax

Функция нормализации, превращающая вектор оценок в вероятностное распределение.

Что такое softmax

Softmax — математическая функция, преобразующая вектор произвольных чисел (logits) в вектор чисел от 0 до 1, которые в сумме дают 1, то есть в распределение вероятностей:

softmax(x_i) = exp(x_i) / Σ exp(x_j)

В языковых моделях softmax применяется к logits (выход LM head) для получения распределения вероятностей над словарём токенов.

Свойства softmax

Монотонность: более высокий logit → более высокая вероятность.

Экспоненциальные веса: разрыв между наибольшим и остальными усиливается. Logit 10 vs 9 → вероятности примерно 0.73 vs 0.27. Logit 10 vs 5 → примерно 0.99 vs 0.01.

Численная стабильность: на практике вычисляется как softmax(x - max(x)) во избежание overflow.

Temperature и softmax

Temperature T масштабирует logits перед softmax:

softmax(x / T)
  • T = 1.0: стандартный softmax
  • T < 1.0 (например, 0.2): «заострение» — топ-токены получают ещё больше вероятности (детерминированный режим)
  • T > 1.0 (например, 1.5): «размывание» — более равномерное распределение (творческий режим)

Softmax в attention

В механизме attention softmax применяется к скалярным произведениям QK для нормализации attention weights:

Attention(Q, K, V) = softmax(QK^T / √d_k) V

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

  • logits — входные значения для softmax
  • temperature — масштабирует logits перед softmax
  • top-p — семплирование из распределения после softmax
  • attention — использует softmax для нормировки весов

Готовы запустить GPU-задачу?

Запустить GPU-сервер