Как большие языковые модели совершают революцию в сжатии данных

Stanford Online 1,2 тыс. 1 ч 19 мин 8 мин 18.04.2024
Главное

В лекции курса EE274 Стэнфордского университета подробно рассматривается эволюция методов сжатия данных от классических марковских моделей до современных нейросетей. Преподаватели демонстрируют, как глубокая связь между машинным обучением и теорией информации позволяет использовать большие языковые модели в качестве сверхэффективных архиваторов. Главный акцент сделан на контекстно-зависимом арифметическом кодировании и парадоксах сжатия с помощью LLM, таких как Llama.

🔄 От марковских цепей к практическому сжатию 1:00

В теории информации фундаментальное значение имеет понятие стационарных процессов и цепей Маркова . Для цепи Маркова $k$-го порядка статистика следующего символа полностью определяется предыдущими $k$ символами. При этом в первом порядке текущий шаг зависит исключительно от непосредственно предшествующего.

Понимание этих структур позволяет подойти к расчету условной энтропии и предела скорости создания энтропии (entropy rate) . Этот предел показывает, сколько неопределенности (в битах) несет в себе каждый новый символ стационарного процесса, если нам известна вся его предыдущая история.

В рамках лекционного разбора домашнего задания слушателям предлагается проанализировать простую марковскую цепь . Начальный символ $U_1$ распределен по закону Бернулли с вероятностью $0.5$ (что дает энтропию в $1$ бит) . Однако последующие символы жестко зависят от предыдущих: если предыдущий символ равен $0$, то следующий гарантированно будет $1$. Если же равен $1$, то следующий с равной вероятностью окажется $0$ или $1$.

В ходе разбора задачи лектор обращает внимание на критически важный аспект стационарности:

Для сжатия подобных марковских источников можно использовать два подхода. Первый — блочное кодирование, когда мы сжимаем группы по $n$ символов с помощью кодов Хаффмана или арифметического кодирования . Однако с ростом $n$ этот метод быстро упирается в вычислительную сложность . Более того, блочное кодирование не учитывает корреляцию на границах блоков (например, между вторым и третьим символом), что делает его субэптимальным .

Второй, более элегантный путь — последовательное кодирование с учетом меняющегося контекста.

📐 Контекстно-зависимое арифметическое кодирование 15:39

Классическое арифметическое кодирование работает с числовыми интервалами . В случае независимых и одинаково распределенных (IID) символов мы берем единичный интервал $[0, 1)$ и делим его на подотрезки, пропорциональные безусловным вероятностям появления символов . Выбрав отрезок, соответствующий реальному символу, мы повторяем процедуру деления для следующего символа. В итоге длина финального интервала равна произведению вероятностей всех встреченных символов .

Контекстно-зависимое арифметическое кодирование (Context-based Arithmetic Coding) кардинально меняет этот принцип . Вместо использования фиксированных вероятностей на каждом шаге интервал делится в соответствии с условной вероятностью текущего символа, рассчитанной на основе уже известного «контекста» (предыдущих символов) .

Связь между качеством предсказания и сжатием описывается простой цепочкой рассуждений лектора:

  1. Точность предсказания. Чем точнее модель способна предсказать следующий символ на основе контекста, тем ближе к единице будет его условная вероятность .
  2. Размер интервала. Высокая вероятность символа означает, что при кодировании ему будет выделен максимально широкий подотрезок внутри текущего интервала .
  3. Длина кода. Поскольку длина кода в битах обратно пропорциональна размеру финального интервала ($\log_2(1/P)$), широкие интервалы обеспечивают минимальную длину результирующего битового потока .

Таким образом, задача эффективного сжатия данных напрямую сводится к построению качественной предсказательной модели .

🧠 Как большие языковые модели сжимают текст 27:05

В качестве яркой демонстрации этого принципа лектор приводит эксперимент с современной большой языковой моделью Llama от компании Meta . Модели передавали последовательно увеличивающийся контекст и анализировали распределение вероятностей для следующего слова (токена):

Этот пример наглядно иллюстрирует, что увеличение длины контекста в хорошей предсказательной модели ведет к экспоненциальному росту точности и, как следствие, к радикальному сокращению объема сжатых данных .

Математически эта связь безупречна. Функция потерь, используемая для обучения практически всех современных языковых моделей — это кросс-энтропия (или log loss) . Она вычисляется по той же самой формуле $\log_2(1/P)$ . По мнению лектора, предсказание в машинном обучении и сжатие в теории информации — это буквально одна и та же задача, решаемая через один и тот же математический аппарат . Любой хороший классификатор или генеративная модель потенциально является отличным архиватором .

⚖️ Адаптивное vs. Двухпроходное сжатие: Проблема синхронизации 35:06

Если у нас нет готовой модели для поступающих данных, существует два пути решения :

  1. Двухпроходный метод (Two-pass). Мы сначала анализируем весь объем данных, строим под них оптимальную модель (например, на основе эмпирических частот), а затем кодируем данные . Главный минус — необходимость передавать саму модель вместе с архивом, что съедает часть выигрыша , а также невозможность потоковой обработки.
  2. Адаптивный метод (Adaptive). Модель строится и постоянно обновляется непосредственно в процессе чтения данных шаг за шагом . Нам не нужно хранить и передавать модель, так как декодер может воссоздать ее состояние самостоятельно .

При адаптивном подходе критически важна абсолютная синхронизация состояний кодера и декодера . Декодер должен обновлять свою модель строго в той же последовательности и по тем же формулам, что и кодер . В противном случае малейшее расхождение в расчете вероятностей на любом шаге приведет к мгновенному и необратимому разрушению всего последующего потока данных .

Эта особенность создает колоссальные трудности при попытке использовать глубокие нейросети для адаптивного сжатия:

📉 Пределы k-го порядка и принцип минимальной длины описания 54:14

В классическом контекстном сжатии $k$-го порядка модель подсчитывает частоту появления символов после определенных цепочек длины $k$ . Эксперимент со сжатием книги «Собака Баскервилей» показывает, что при переходе от нулевого порядка (IID) к первому и второму качество сжатия заметно улучшается . Однако на третьем порядке ($k=3$) сжатие внезапно ухудшается .

Лектор объясняет этот парадокс физическими ограничениями объема данных :

Если пойти по пути двухпроходного сжатия с ростом $k$, мы столкнемся с феноменом, когда модель начинает банально «заучивать» сжимаемый файл . В предельном случае модель $1000$-го порядка для файла из $1000$ символов выдаст вероятность $1$ для этого конкретного файла, закодировав его в $0$ бит . Но размер самой модели при этом окажется астрономическим .

Для решения этой дилеммы используется принцип минимальной длины описания (Minimum Description Length, MDL), сформулированный финским ученым Йормой Риссаненом . Согласно MDL, оптимальная архитектура сжатия должна минимизировать сумму двух величин: размера сжатых данных и размера самой модели .

Для преодоления проблемы разреженности данных в классических алгоритмах применяются более сложные подходы, такие как PPM (Prediction by Partial Matching) и CTW (Context Tree Weighting), которые умеют динамически переключаться на более короткие контексты, если длинные еще не были встречены в тексте .

🚀 Революция LLM: Сжатие без передачи модели 1:08:04

С появлением больших языковых моделей парадигма MDL может быть пересмотрена . Лектор предлагает представить гипотетический мир будущего, где тяжелая нейросеть уровня GPT-4 или Llama предустановлена на устройстве каждого пользователя . В таком сценарии нам больше не нужно включать модель в тело архива — мы можем считать, что кодер и декодер априори обладают одинаковой гигантской базой знаний.

В рамках тестов аспирант Стэнфорда Кедар Татвавади проверил эффективность сжатия текстов с помощью LLM . Результаты выявили несколько важных закономерностей:

Как добавляет исследователь Пулкит Тандон, в контексте сжатия данных оверфиттинг (переобучение) модели на целевом тексте перестает быть проблемой машинного обучения и превращается в огромное преимущество . Если у вас есть возможность заранее переобучить модель под конкретный тип данных (например, под узкоспециализированные медицинские или финансовые архивы) и раздать эту модель на все узлы сети, это позволит добиться беспрецедентной степени сжатия, недоступной ни одному универсальному алгоритму .

Хотя сегодня LLM-компрессия остается чрезвычайно ресурсоемкой и медленной, работы в этом направлении (такие как недавняя статья DeepMind «Language Modeling is Compression») доказывают фундаментальную ценность сжатия как главного мерила истинного интеллекта машин .

💬 Цитаты

«Сжатие и предсказание — это фактически одна и та же задача.»

Лектор Стэнфорда 44:44

«В контексте сжатия оверфиттинг — это хорошо, а не плохо.»

Пулкит Тандон 1:17:13
👥 Спикеры
📚 Упомянутые книги
🔗 Упомянутые сайты и проекты
📖 Термины
Арифметическое кодирование
Метод сжатия без потерь, кодирующий всю строку в виде одного вещественного числа из интервала [0, 1).
Энтропия Шеннона
Мера неопределенности или информационной емкости источника данных.
Кросс-энтропия (Log Loss)
Функция потерь в машинном обучении, оценивающая качество предсказания вероятностей.
Принцип минимальной длины описания (MDL)
Теория, согласно которой наилучшая модель для данных минимизирует сумму размера самой модели и сжатых ею данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Стэнфордский университет арифметическое кодирование Llama DeepMind алгоритм CMIX