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 к токену

  1. Greedy decoding: next_token = argmax(logits) — выбрать токен с наибольшим score.
  2. 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-сервер