Функция потерь: кросс-энтропия и teacher forcing
в языковом моделировании кросс-энтропия сводится к минус логарифму вероятности правильного следующего токена.
Зачем это нужно
Нужна функция, которая говорит модели, насколько она ошиблась. Кросс-энтропия измеряет расстояние между предсказанным распределением и правильным.
Как это работает
Правильное распределение — one-hot вектор, где 1 стоит на следующем слове. Поэтому кросс-энтропия для одного токена равна −log ŷ[w_{t+1}], то есть минус логарифм вероятности, которую модель дала правильному слову. Средняя потеря по батчу берётся по всем позициям.
Важный приём — teacher forcing. Модель на каждом шаге получает правильную историю из обучающего текста, а не собственное предыдущее предсказание. Благодаря маске все позиции в окне можно считать параллельно.
Пример
Для предложения «So long and thanks for all» потеря складывается из −log ŷ[long], −log ŷ[and], −log ŷ[thanks], −log ŷ[for] и −log ŷ[all], где каждое ŷ берётся из распределения, построенного по правильной истории.
Что запомнить
- Кросс-энтропия для языковой модели = −log(вероятность правильного токена).
- Потери усредняются по всем позициям батча.
- Teacher forcing подаёт модели правильную историю на каждом шаге.
Где читать дальше
- SLP3, гл. 7 «Transformers and Pretraining», раздел 7.7