Искусство сжатия: как кросс-энтропия управляет обучением нейросетей
Фундаментальный принцип машинного обучения — функция потерь (loss function) — на деле оказывается тесно связанным с теорией сжатия данных. В этом материале, основанном на разборе Гранта Сандерсона (канал 3Blue1Brown), мы рассмотрим, почему кросс-энтропия является «золотым стандартом» для обучения языковых моделей и как она превращает задачу предсказания следующего токена в задачу максимально эффективного сжатия информации.
📊 Основы: от сжатия к кросс-энтропии 2:52
Идея связи сжатия и структуры языка не нова: еще в 2002 году исследователи показали, что можно классифицировать языки и определять их родство, используя лишь алгоритм архивации gzip. Суть проста: если мы берем фрагмент документа B и сжимаем его с использованием словаря или паттернов, оптимизированных для документа A, размер файла покажет, насколько языки похожи друг на друга.
Кросс-энтропия в теории кодирования
Для оптимального кодирования количество бит, которое мы выделяем символу, должно быть равно отрицательному логарифму по основанию 2 от вероятности его появления ($-\log_2 P$).
Когда система кодирования оптимизирована для одного распределения вероятностей ($Q$), но применяется к данным из другого распределения ($P$), возникают потери эффективности. Эта средняя стоимость (в битах) и называется кросс-энтропией.
- Распределение $Q$: то, для чего мы оптимизировали «архиватор».
- Распределение $P$: реальное распределение данных, с которыми мы столкнулись.
- Минимум: значение кросс-энтропии достигает своего минимума тогда и только тогда, когда $Q$ полностью идентично $P$, и это значение равно энтропии распределения $P$.
🧠 Применение в обучении LLM 14:55
В контексте больших языковых моделей (LLM) «архиватором» выступает сама модель — функция, которая на вход получает последовательность токенов, а на выходе выдает распределение вероятностей для следующего токена.
Почему именно кросс-энтропия?
При обучении нейросети мы стремимся к тому, чтобы модель была «наименее удивлена» реальными данными.
- Если модель присваивает истинному следующему токену высокую вероятность, потери (loss) малы.
- Если вероятность низкая, модель получает «штраф», величина которого определяется логарифмической шкалой.
Выбор логарифмической функции для функции потерь не является случайным. По мнению Гранта Сандерсона, математически «рука инженера вынуждена» выбирать логарифм: только он обладает нужными свойствами производной для корректной работы алгоритма градиентного спуска. Если мы хотим, чтобы модель минимизировала потери лишь тогда, когда ее предсказания в точности совпадают со статистикой реальных данных, функция потерь должна быть логарифмической.
🧪 Дистилляция и KL-дивергенция 26:13
В обучении нейросетей часто применяется дистилляция — процесс, при котором маленькая модель пытается повторить поведение гораздо более крупной «учительской» модели.
Вместо того чтобы сравнивать результат модели с жестким фактом (истинным токеном), мы сравниваем распределение вероятностей маленькой модели с распределением большой. Это делает процесс обучения гораздо более «богатым» и информативным, так как модель получает сигнал не только о том, что было на самом деле, но и о том, какие альтернативные варианты были «почти верными».
Разница между кросс-энтропией и KL-дивергенцией
Если кросс-энтропия измеряет общее количество «бит» для кодирования, то KL-дивергенция (расстояние Кульбака — Лейблера) измеряет разницу между двумя распределениями вероятностей.
- Она показывает, сколько «лишних бит» мы тратим из-за несовершенства нашей модели (насколько она «расточительна»).
- В отличие от метрики расстояния, KL-дивергенция асимметрична: расстояние от $Q$ к $P$ не равно расстоянию от $P$ к $Q$.