Компрессоры и большие языковые модели решают одну и ту же задачу: предсказывают вероятности следующих символов. На этом основано сжатие без потерь.
Как работает сжатие? Оно использует избыточность. Например, строку AAAAAAAAABBBBCCDAAADDDDDDDDD можно превратить в A9B4C2D1A3D9: кодируем повторы. Это run-length encoding.
Современные компрессоры устроены сложнее: преобразования, модель и entropy coder. Модель оценивает вероятности символов, а энтропийный кодер превращает их в биты. Арифметическое кодирование может представить целый набор данных одним числом. Для строки ABABAAC с вероятностями A=4/7, B=2/7, C=1/7 получается число 0.3876953125, которое занимает 10 бит вместо 56. Чем больше вероятность символа, тем меньше бит нужно. Минимальное число бит на символ — это энтропия по Шеннону. Ее формула почти совпадает с формулой Гиббса из термодинамики.
Но вероятности не обязаны быть фиксированными. Контекст меняет шансы. В английском вероятность буквы U — около 0.028, но после Q она почти 0.999. Модели порядков N учитывают предыдущие символы. Для строки TO BE OR NOT TO BE переход от order-0 к order-1 сократил сжатые данные более чем вдвое.
Тут и появляются LLM. Они работают как модели следующего токена: получают контекст и выдают распределение вероятностей. В 2023 году Google DeepMind выпустила статью, где языковое моделирование и сжатие названы двумя взглядами на одно и то же. Для сжатия с LLM не нужно выбирать следующий токен: модель предсказывает распределение, а затем мы кодируем реальный следующий токен с этой вероятностью. Если модель ошиблась и дала низкую вероятность — заплатим больше бит. Даже GPT-2 с арифметическим кодированием сжимает длинную цитату из Диккенса заметно лучше, чем простая order-1 модель.
Но на практике так не делают. Браузер и сервер должны иметь копию LLM — это гигабайты. Даже для больших данных вычисления слишком дорогие. Для HTTP-ответов, которые жмут gzip и Brotli, LLM — смешная переплата.
Сжатие до энтропии — решенная задача: арифметическое кодирование 1970-х почти достигло предела. Главный вопрос — как уменьшить саму энтропию. А это задача предсказателя. LLM обучаются минимизировать cross-entropy — ту же формулу. Так что сжатие и LLM — два лица одной математики.