Теория информации
Сжатие данных: JPEG, H.265, LLM
Каждое JPEG-фото на вашем телефоне - это 50-летний алгоритм Насира Ахмеда (DCT, 1974). Каждый токен в ChatGPT - это алгоритм Gage (BPE, 1994). Теория информации незаметно пронизывает каждый байт данных.
- **Netflix** адаптивно меняет настройки H.265 в зависимости от сложности сцены. «Тёмные» сцены «Игры престолов» были сжаты хуже - и зрители заметили блочные артефакты. Netflix потом переобработал весь контент.
- **Apple HEIF** (iPhone 12+) хранит живые фото в H.265 контейнере с прозрачностью. Размер фото уменьшился в 2 раза без потери видимого качества.
- **Llama 3** перешёл с 32K на 128K токенов в словаре и улучшил поддержку не-английских языков и кода - прямой эффект токенизации.
Предварительные знания
Transform Coding
Transform coding - универсальный принцип современного сжатия: преобразовать сигнал в домен, где энергия концентрируется в малом числе коэффициентов. DCT (дискретное косинусное преобразование) для изображений, MDCT для аудио, лифтинговые вейвлеты для JPEG2000. После трансформации большинство коэффициентов близки к нулю и хорошо квантуются.
**Karhunen-Loève Transform (KLT):** теоретически оптимальное преобразование - собственные векторы ковариационной матрицы. Декоррелирует компоненты полностью. DCT - практическое приближение KLT для стационарных сигналов. Для типичных изображений DCT почти оптимален.
| Преобразование | Применение | Свойство |
|---|---|---|
| DCT | JPEG, H.264, H.265 | Концентрация энергии в DC + низких AC |
| MDCT | MP3, AAC, Vorbis | Перекрывающиеся блоки, без артефактов |
| Wavelet (DWT) | JPEG2000, EZW | Многоуровневое разрешение |
| Learned transform | Neural codecs (Balle) | Оптимизирован под данные |
Историческая справка
DCT предложил Насир Ахмед в 1974 году - изначально без практического применения. В 1992 году стал ядром стандарта JPEG. Именно DCT сделал цифровую фотографию практичной. Сегодня каждое JPEG-изображение использует этот 50-летний алгоритм.
JPEG всегда создаёт «квадратные блочные артефакты» из-за 8×8 блоков
Блочные артефакты появляются только при высоких Q (низком качестве). При высоком качестве JPEG блоки плавно стыкуются. H.265 использует переменные блоки до 64×64.
Артефакты - следствие агрессивного квантования высокочастотных DCT-коэффициентов. При консервативном квантовании блочность незаметна.
Почему в Q-таблице JPEG значения в правом нижнем углу (высокие частоты) больше, чем в левом верхнем?
Видеосжатие: H.265 и AV1
Видео - это последовательность изображений с высокой темпоральной корреляцией: соседние кадры отличаются незначительно. Видеокодеки используют это: inter-кодирование находит блок в предыдущем кадре (motion estimation) и кодирует только разницу (residual). H.265/HEVC и AV1 добавляют предсказание внутри кадра, иерархические блочные структуры и сложные энтропийные кодеры.
**Inter-кодирование:** текущий блок = predicted + residual. Predicted = блок из reference frame + motion vector. Residual = DCT(current − predicted). Если residual мал - почти нет потерь информации. Motion compensation может уменьшить энергию residual в 10-100 раз по сравнению с intra-кодированием.
| Кодек | Год | Ключевые улучшения | BD-Rate vs H.264 |
|---|---|---|---|
| H.264/AVC | 2003 | CABAC, B-frames | 0% (базовый) |
| H.265/HEVC | 2013 | CTU до 64×64, 35 intra modes | -50% |
| VP9 | 2012 | Google, открытый | -45% |
| AV1 | 2018 | Open, superblock 128×128 | -65% |
| VVC/H.266 | 2020 | BDOF, affine motion | -50% vs HEVC |
Историческая справка
H.265 (2013) был разработан консорциумом HEVC, но лицензионные споры замедлили его принятие. Google, Amazon, Netflix создали Alliance for Open Media и разработали AV1 (2018) - открытый кодек без лицензионных отчислений. YouTube, Netflix и Firefox перешли на AV1 к 2020-2022 годам.
H.265 вдвое эффективнее H.264 для всего контента
Выигрыш H.265 зависит от сложности сцены. Для статичного контента выигрыш больше, для динамичного - меньше. Среднее -50% - по специальным тестовым последовательностям.
Улучшения HEVC (большие блоки, больше intra-мод) лучше работают для однородного контента. Сложные сцены с мелкими деталями выигрывают меньше.
Почему видео с быстрым движением (экшн-фильм) сжимается хуже, чем статичная сцена?
Neural Compression
Нейросетевые кодеки (2017-2023) заменяют фиксированные трансформации (DCT) на обученные. Архитектура: энкодер → квантование → энтропийное кодирование → декодер. Это по сути VAE с явной оптимизацией R-D компромисса: L = rate + λ·distortion. Модели Balle et al. (Google), VCT, ELIC превзошли AV1 при низких битрейтах по PSNR и SSIM.
**Нейросетевой кодек:** min_{θ,φ} E[−log p_θ(ŷ)] + λ·d(x, decoder_φ(ŷ)), где ŷ = quantize(encoder(x)). Entropy model p_θ(ŷ) - гиперприорная сеть, оценивающая вероятности для ANS/арифм. кодера. При λ=0: только скорость (максимальное сжатие). При λ→∞: только качество.
| Система | Архитектура | vs AV1 | Год |
|---|---|---|---|
| Balle et al. | CNN-VAE + hyperprior | сравнимо | 2018 |
| ELIC | CNN-VAE + channel context | -30% bits | 2022 |
| VCT | ViT encoder + autoregressive | -20% bits | 2022 |
| MS-ILLM | Diffusion decoder | лучше по LPIPS | 2023 |
| HEIC (Apple) | Классический + ML tools | production | 2020 |
Историческая справка
Johannes Balle (Google Research) опубликовал первые практические нейросетевые кодеки изображений в 2016-2018. Apple использует нейросетевые компоненты в HEIF (High Efficiency Image Format) с iPhone 12. В 2023 году несколько нейросетевых кодеков впервые статистически значимо превзошли AV1 на стандартных тестах.
Нейросетевые кодеки заменят JPEG и H.265 в ближайшие 2-3 года
Нейросетевые кодеки превосходят классические только при определённых битрейтах и метриках. Практическое внедрение требует скорости кодирования, универсальности и обратной совместимости.
H.265/AV1 реализованы в hardware (ASIC). Нейросетевые кодеки требуют GPU/NPU. Переход займёт 10-15 лет, начиная со специализированных применений.
В нейросетевом кодеке параметр λ в L = rate + λ·distortion контролирует:
Токенизация LLM как сжатие
BPE-токенизатор (Byte Pair Encoding) - это компрессор без потерь: он находит часто встречающиеся подстроки и заменяет их одним токеном. По сути это LZ78/LZW применённый к тексту. Словарь токенов - это «словарь» в смысле LZW. Количество токенов на слово ≈ 1/степень_сжатия. GPT-4 использует ~100K токенов, сжимая английский текст примерно в 3-4 раза относительно UTF-8.
**BPE как компрессия:** Инициализируем словарь байтами. Итеративно: находим пару с максимальной частотой, добавляем её в словарь. Повторяем V раз (V = размер словаря). Результат: оптимизированный словарь для данного корпуса. Compression ratio ≈ 3-4x для английского. LLM работает в токенном пространстве - токенизация влияет на эффективность модели.
| Токенизатор | Модель | Словарь | Bytes/token |
|---|---|---|---|
| BPE | GPT-2, GPT-4 | 50K-100K | ~4 (English) |
| WordPiece | BERT, T5 | 30K | ~4 (English) |
| SentencePiece | LLaMA, Gemma | 32K-256K | ~3-5 |
| Byte-level BPE | GPT-4, Claude | 100K | ~4-6 |
Историческая справка
BPE изначально предложен как алгоритм сжатия данных Gage (1994). В NLP его адаптировал Sennrich (2016) для нейронного машинного перевода. OpenAI использует tiktoken с BPE для всех GPT-моделей. Выбор токенизатора влияет на способность модели к математике и кодингу - исследование активно продолжается.
Токенизация - просто технический шаг перед «настоящим» обучением LLM
Токенизация фундаментально влияет на возможности модели: арифметику, кодинг, многоязычность и эффективность контекстного окна.
LLM работает в токенном пространстве. Если 'run' и 'running' - разные токены без закономерной связи, модели сложнее понять морфологию. Хорошая токенизация - часть моделирования.
Почему математика и код сложнее для LLM, чем английский текст, с точки зрения токенизации?
Ключевые идеи
- **Transform coding:** DCT/MDCT концентрирует энергию → квантование незначимых коэффициентов → энтропийное кодирование. Основа JPEG, MP3, H.265.
- **Видеосжатие:** inter-кодирование = motion estimation + residual coding. AV1 эффективнее H.264 на 65% при том же качестве.
- **Нейросетевые кодеки:** VAE-архитектура + оптимизация R(D). ELIC (2022) превосходит AV1 при низких битрейтах.
- **BPE-токенизация** - это LZW для текста. Качество токенизации влияет на математику, кодинг и многоязычность LLM.
Связанные темы
Сжатие данных объединяет все разделы теории информации в практику:
- Rate-Distortion Theory — Теоретическая основа для всех lossy-форматов и нейросетевых кодеков
- Кодирование без потерь: Хаффман, LZ — BPE - это вариант LZ77/LZW применённый к тексту
- Information Theory в ML — Neural compression = VAE + явная R-D оптимизация
Вопросы для размышления
- BPE токенизация - это без-потерь или с-потерями для текста? Как это влияет на возможности LLM?
- Нейросетевые кодеки обучаются на конкретных данных (фотографии людей, природа). Что произойдёт при сжатии медицинских изображений?
- AV1 - открытый кодек, свободный от патентов. Как это повлияло на его принятие в индустрии по сравнению с H.265?