ML Fundamentals
logits
Ненормализованные выходы LM head — один скор на каждый токен словаря перед softmax.
Что такое logits в LLM
Logits — это выходные значения последнего линейного слоя (LM head) языковой модели до применения softmax. Вектор размерности vocab_size (например, 32 000 для Llama 2 или 128 256 для Llama 3): каждый элемент — «оценка» соответствующего токена как следующего в последовательности.
hidden_state (4096) → Linear (4096 × 32000) → logits (32000)
↓
softmax()
↓
probabilities (32000)
От logits к токену
- Greedy decoding:
next_token = argmax(logits)— выбрать токен с наибольшим score. - Sampling: применить softmax, получить распределение, семплировать. Параметры temperature и top-p изменяют распределение до семплирования.
# Temperature > 1 → softmax «размазывает» распределение (разнообразие)
# Temperature < 1 → softmax «заостряет» (детерминированность)
scaled_logits = logits / temperature
probs = softmax(scaled_logits)
next_token = sample(probs)
Logits в обучении
При обучении logits идут в CrossEntropyLoss против правильного следующего токена:
loss = F.cross_entropy(logits.view(-1, vocab_size), targets.view(-1))
Это позволяет вычислить perplexity — основную метрику качества языковых моделей.
Logit bias
В API OpenAI и совместимых позволяет вручную сдвигать logit определённых токенов:
{"logit_bias": {"50256": -100}} // запретить токен с id 50256
Связанные термины
- softmax — преобразует logits в вероятности
- temperature — масштабирует logits перед softmax
- top-p — семплирование из распределения, полученного из logits
- perplexity — метрика на основе logits
Готовы запустить GPU-задачу?
Запустить GPU-сервер