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-сервер