Requential Coding: как нейросети сжимают сами себя

Requential Coding: как нейросети сжимают сами себя

Модель с миллиардом параметров, обученная на ста примерах, обязана быть колоссально сжимаемой — иначе откуда у неё способность обобщать? Но когда вы пытаетесь эту сжимаемость измерить, все существующие инструменты дают абсурдный результат: код растёт вместе с моделью, хотя модель становится только лучше.

Именно этот парадокс разрешает работа «Requential Coding» (июль 2026), исследователи из NYU и CMU. Они представили схему сжатия, длина кода в которой не зависит ни от числа параметров, ни от энтропии данных — и которая, впервые, показывает, что миллиардные модели с точки зрения теории информации действительно сжимаются сильнее, чем маленькие.

Проблема двух неудачных подходов

Чтобы понять новизну requential coding, нужно разобраться, почему существующие методы сжатия моделей терпят крах при масштабировании.

Первый подход — посттренировочное квантование (PTQ): берём обученные веса и уменьшаем их точность с 16 бит до 4, 3 или даже 2. Лучшие методы вроде GPTQ и QuIP# достигают 4 бит на параметр с минимальной потерей качества. Проблема фундаментальная: длина кода растёт линейно с размером модели. Модель на 7 миллиардов параметров даёт ~28 гигабит при 4-битном квантовании независимо от того, сколько реальной информации она извлекла из данных. Если обучить такую модель на ста картинках, она всё равно займёт 28 гигабит — хотя очевидно, что «выучить» сто картинок можно за гораздо меньший объём.

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

Оба метода создают коды, размер которых определяется не информацией, которую модель реально извлекла, а посторонними величинами — количеством параметров или размером датасета.

Идея requential coding: ученик выбирает данные сам

Requential coding обходит эту проблему через изящную конструкцию. Представьте двух игроков: учитель (teacher) и ученик (student). На каждом шаге ученик генерирует кандидатов для своих собственных тренировочных данных, исходя из текущего распределения. Учитель просматривает кандидатов и выбирает тот, который соответствует собственному распределению учителя, а не ученика.

Ключевой трюк: кодирование требует бит только там, где учитель и ученик расходятся во мнениях. Если ученик уже хорошо аппроксимирует учителя, расхождений мало — код короткий. Математически это выражается через KL-дивергенцию между учителем и учеником: код стоит KL(Qₜ||Pₜ) бит на шаг, а не число параметров и не размер батча.

Результат: длина кода зависит исключительно от того, насколько хорошо ученик выучил учителя, а не от их размера. Модель на 10 миллиардов параметров, идеально выучившая распределение текста, кодируется в меньшее число бит, чем модель на 100 миллионов с той же точностью — потому что большая модель находит более простые, более сжимаемые функции.

Механизм кодирования опирается на relative entropy coding (REC) — технику, при которой кодировщик генерирует случайные кандидаты из распределения ученика P, а декодер — имея доступ к тому же генератору псевдослучайных чисел — воспроизводит ту же последовательность кандидатов. Кодировщику нужно передать лишь индекс выбранного кандидата, а ожидаемая длина этого индекса составляет примерно KL(Q||P) бит. Для кодирования целого числа используется код Элиаса-дельта — универсальный префиксный код, не требующий знания диапазона значений. Каждый шаг обучения добавляет к коду ~KL(Qₜ||Pₜ) бит, и суммарная длина получается из этих вкладов.

Контринтуитивный результат: большие модели сжимаются сильнее

Эксперименты проводились на архитектуре GPT-2 с 8 трансформерными блоками и контекстом 512 токенов. Размер варьировался через ширину — от ~44M до 1.5B параметров. Обучение на OpenWebText с character-level токенизацией (словарь 96 символов) и датасете CIFAR-5M (изображения 32×32, переведённые в градации серого). Оптимизатор Adam с μP-скейлингом learning rate, что позволяет корректно переносить гиперпараметры между моделями разного размера.

Результаты на текстовых данных показали поразительную картину. При фиксированном тестовом loss — то есть при одинаковом качестве предсказания — код для большей модели оказывается короче. Разрыв увеличивается с масштабом: модель на 1.5B параметров сжимается в разы эффективнее, чем на 44M, несмотря на то что у неё на порядок больше параметров.

Это прямое подтверждение идеи, которую давно предполагали теоретики: переобучённые нейросети учатся не «большим функциям», а наоборот — находят всё более простые закономерности по мере роста. Просто измерить эту простоту до requential coding было нечем. Квантование показывало обратное (больше параметров → больше бит), а преквенциальный код показывал константу (больше данных → больше бит, независимо от модели). Requential coding впервые разделил эти эффекты.

На визуальных данных (CIFAR-5M) эффект выражен слабее, но качественно тот же: при фиксированном test loss большие модели требуют меньше бит. Это подтверждает, что результат универсален — не артефакт текстовой статистики. Для практического deploy это означает, что при выборе между маленькой моделью с полным датасетом и большой моделью с подвыборкой, requential coding предсказывает преимущество второй — даже при одинаковой тренировочной ошибке.

Ансамбли из нескольких моделей сжимаются ещё сильнее отдельных — потому что усреднённое распределение ближе к истинному, и KL-дивергенция между учеником и ансамблем-учителем меньше. Это даёт теоретическое обоснование ensemble-методам: не просто «усреднение улучшает robustness», а «ансамбль создаёт учителя с более простой функцией, которую ученик сжимает эффективнее».

PAC-Bayes гарантии: лучшее доказательство обобщения для LLM

Самое практичное применение requential coding — строгие гарантии обобщения. Теория PAC-Bayes связывает длину описания модели с тем, насколько хорошо она будет работать на новых данных: чем короче код, тем tighter bound на разницу между тренировочной ошибкой и ошибкой на всём распределении.

Исследователи подставили requential code в PAC-Bayes bound из работы Finzi et al. (2025) и получили state-of-the-art гарантии для языковых моделей с миллиардами параметров. Конкретно: их bound превосходит гарантии, построенные на агрессивном посттренировочном квантовании — даже если квантованию дать нулевую ошибку. При этом в compute-optimal режиме (когда размер модели и объём данных масштабируются по закону Чоффри-Каплана) bound улучшается с ростом: модель становится экспоненциально более сжимаемой относительно размера датасета.

Это математически формализует интуицию, что scaling laws — не просто эмпирика, а следствие фундаментальной сжимаемости языковых распределений. Чем больше модель и данные, тем более сжимаемой становится функция, которую модель выучила. Для инженеров это означает: когда вы масштабируете систему в compute-optimal режиме, вы получаете не просто «лучший loss», а гарантированно более сжимаемое представление — то есть модель, которая с точки зрения теории информации описывается короче.

Текст против изображений: энтропия данных обманчива

Ещё одно открытие requential coding — различие между информацией в датасете и информацией, которую модель может извлечь. Для текста (OpenWebText, энтропия ~5 бит/символ) requential code намного короче, чем для изображений (CIFAR-5M, энтропия ~8 бит/пиксель) при одинаковом test loss. Причина: текст содержит гораздо больше предсказуемой структуры — грамматические правила, факты, логические связи. Изображения на уровне пикселей содержат больше непредсказуемого шума (вариации освещения, текстуры), который модель физически не может выучить.

Это означает, что «объём информации в данных» — не фиксированная величина. У одного и того же датасета есть непредсказуемая часть (случайный шум) и предсказуемая часть (регулярности, которые модель может выучить). Requential coding впервые позволяет разделить эти два компонента: длина кода отражает только предсказуемую часть, а непредсказуемая добавляет фиксированную энтропию, не зависящую от модели.

Ограничения и открытые вопросы

Requential coding — теоретический инструмент, а не готовый алгоритм сжатия. Кодирование (не декодирование, а именно создание сообщения) требует экспоненциального времени от KL-дивергенции, что делает его практически неприменимым для передачи моделей. Декодирование — восстановление модели из кода — работает за полиномиальное время, потому что требует только запустить обучение.

Ещё одна проблема: код растёт с числом шагов обучения и никогда не уменьшается. Если модель на ранних шагах выучила что-то полезное, а на поздних «забыла» (catastrophic forgetting в миниатюре), эта забытая информация всё равно остаётся в коде. Авторы отмечают это как ключевое направление будущих исследований — создать «забывающий» compressor, который не тащит за собой всю историю обучения.

Почему это меняет понимание масштабирования

Requential coding даёт первый строгий инструмент для ответа на вопрос: почему scaling laws работают? Ответ — не в том, что большие модели «запоминают больше», а в том, что они находят более простые функции, которые легче описать. При фиксированном loss большая модель — это более короткий код, а короткий код означает лучшее обобщение по PAC-Bayes.

Для практиков это означает: когда вы выбираете между маленькой моделью на полном датасете и большой моделью на подвыборке, requential coding предсказывает, что вторая будет надёжнее — даже при одинаковой тренировочной ошибке. А для исследователей это открывает путь к созданию training-практик, оптимизированных не по loss, а по сжимаемости — и, как следствие, по обобщению.

Часто задаваемые вопросы

Чем requential coding отличается от квантования?

Квантование сжимает финальные веса модели — код растёт линейно с числом параметров. Requential coding сжимает процесс обучения — код зависит от KL-дивергенции между учителем и учеником. Квантование даёт практические маленькие файлы для инференса; requential coding даёт теоретические bounds на обобщение, но пока не подходит для передачи моделей из-за экспоненциального времени кодирования.

Можно ли использовать requential coding для реального сжатия LLM?

Пока нет. Кодирование (создание сообщения) требует времени, экспоненциального от KL-дивергенции, что для миллиардных моделей невыполнимо. Декодирование (восстановление модели) работает за полиномиальное время. Requential coding — это инструмент для доказательства теорем об обобщении, а не замена GPTQ или AWQ для production-инференса.

Что значит «большие модели сжимаются сильнее»?

При одинаковом test loss (качество предсказания) requential code для модели на 1.5B параметров короче, чем для модели на 44M. Это не значит, что файл модели весит меньше — это значит, что информационное описание обученной функции короче. Большая модель нашла более компактное представление тех же закономерностей.

← Все записи