- PVSM.RU - https://www.pvsm.ru -
Если использовать нейросеть как «большой словарь токенов» для архиватора, то можно разработать архиватор с рекордным коэффициентом сжатия. Например, сейчас в мировом бенчмарке Large Text Compression Benchmark [1] (LTCB) лидирует компрессор NNCP [2], в котором Фабрис Беллар реализовал примерно такую идею:
|
Результаты LTCB на текстовом корпусе enwik9 [3] (первые 1 000 000 000 байт текста англоязычной Википедии — |
||||
|
Программа |
Результат (байт) |
Коэффициент |
Размер декодера |
Всего |
|---|---|---|---|---|
|
gzip 1.3.5 |
322 591 995 |
3,10 : 1 |
38 801 |
322 630 796 |
|
xz 5.2.1 |
197 331 816 |
5,07 : 1 |
36 752 |
197 368 568 |
|
CMIX (v21) |
107 693 380 |
9,24 : 1 |
223 485 |
108 244 767 |
|
NNCP 3.2 |
106 632 363 |
9,32 : 1 |
628 955 |
107 261 318 |
Как видим, с помощью нейронок тексты Википедии сжимаются с коэффициентом 9:1. Мы просто конвертируем текст в токены с помощью открытого токенизатора. Например, OpenAI много лет использует один и тот же токенизатор tiktoken [4], который устанавливается через PyPi:
pip install tiktoken
Этот токенизатор использует алгоритм кодирования байт-пар BPE [5], изначально созданный в 1994 году именно для сжатия данных.
BPE заменяет наиболее частую пару байтов на новый байт, который не содержится в исходном наборе данных:
ABABCABCD ------Исходная строка входных данных
XXCXCD----------Пара AB заменяется на неиспользуемый X
XYYD------------Пара XC заменяется на неиспользуемый Y
Для восстановления исходного набора данных хранится таблица замен. Токены соответствуют различным объёмам исходного текста: от отдельных символов (включая одиночные цифры или знаки препинания) до целых слов (даже длинных составных):
Токенизатор SentencePiece [7] от компании Google тоже основан на алгоритме BPE.
Превращение текста в токены — обратимый процесс, так что полученные токены всегда можно преобразовать обратно в исходный текст. И сжатие происходит без потерь, то есть это классический lossless-кодек.
Многослойные нейросети RNN исключительно эффективны в предсказании следующего слова [8], и не только слова. После обучения нейросеть усваивает основные признаки любых данных и умеет сама синтезировать или восстанавливать такие данные на основе скудной информации:
Вопрос в следующем: а можно ли повторить такой подход в сжатии звука? То есть разработать аудиокодек на трансформерах, который будет надёжно предсказывать не следующее слово, а следующий звуковой сэмпл?
В 2016 году DeepMind опубликовала генеративную звуковую модель WaveNet [9], которая вполне реалистично синтезировала человеческую речь [10] в режиме text-to-speech, хотя в «творческом» режиме свободного текста явно запиналась, подбирая слова [11].
С тех пор технологии значительно продвинулись, и сейчас синтезированная речь в нейронках Gemini [13], ChatGPT Advanced Voice Mode [14], Qwen [15] и Moshi [16] практически неотличима от настоящей.
В июле 2024 года французская компания Kyutai опубликовала речевую модель Moshi [17]. Это был первый в мире голосовой end-to-end AI с открытыми исходниками, способный вести диалог в реальном времени и свободный для использования всеми желающими.
Модель умеет думать и говорить одновременно, синтезирует свободный поток слов на любую тему, распознавая речь и генерируя ответы. Демо [16] работает во всех браузерах, беседы ограничены 5 мин.
Один из основных компонентов модели — нейронный аудиокодек Mimi с остаточной векторной квантизацией и семантическими знаниями, извлечёнными из самонастраиваемой речевой модели.
Аудиокодек и выполняет токенизацию звука примерно таким же способом, как вышеупомянутый алгоритм BPE работает с текстом. Более подробно процесс дискретизации звуковых волн в аудиотокены описан в научных работах «SoundStream: end-to-end нейронный аудиокодек» [18] (Zeghidour et al., 2021) и «Сжатие высококачественного аудио с использованием нейросетей» [19] (D´efossez et al., 2023, arXiv:2210.13438v1). Mimi работает как автоэнкодер.
В научной литературе [20] эти токены называются акустическими, так как они моделируют тонкие звуковые особенности и оптимизированы для высококачественной реконструкции звука. Хотя акустические токены отлично подходят для моделей text-to-audio (text-to-speech, text-to-music), для генерации речи требуется сочетать их с семантическими токенами, извлечёнными из самонаблюдаемых моделей речи [21].
В отличие от акустических аналогов, семантические токены не позволяют восстанавливать высококачественный аудиофайл, но сильно коррелируют с лингвистическим содержанием. Это сходство с языком позволяет генерировать понятную и последовательную речь даже без текстового описания, используя семантические аудиотокены в качестве префикса для предсказания акустических токенов.
Тем не менее, этот гибридный подход к токенизации несовместим с генерацией в реальном времени. Семантические токены обычно не являются причинными и, следовательно, могут быть вычислены только в офлайн-режиме. Более того, генерация акустических и семантических токенов с помощью отдельных энкодеров представляет собой значительную вычислительную нагрузку. Поэтому Mimi использует дистилляцию для передачи некондиционной, высокоуровневой семантической информации в токены, производимые каузальной моделью, что позволяет осуществлять потоковое кодирование и декодирование семантико-акустических токенов.
Разработчики опубликовали отдельный пост в блоге [6] с описанием работы нейронных аудиокодеков на примере Mimi.
Базовая архитектура Mimi сделана по образцу SoundStream [18] (от Google) и Encodec [19] (от экстремистов из Meta), включает в себя автоэнкодер SeaNet [22] и квантователь Residual Vector Quantizer (RVQ) [18].

Квантователь RVQ преобразует массив данных в одномерный вид с формой (t/128 * 8), а LLM предсказывает восемь уровней на отдельных временных шагах:
Таким образом, вместо предсказания сэмплов напрямую, нейронный аудиокодек работает в три этапа:
Токенизация звука.
Предсказание следующих токенов в LLM.
Восстановление оригинала.
Компания Kyutai — это вообще один из редких примеров успехов европейской науки в области ML и AI, потому что в этой сфере Старый Свет немного уступает США и Китаю. Но вот один из первых нейронных аудиокодеков разработали именно здесь.
В 2025 году аудиокодек Mimi стал практически стандартом для сжатия звука в токены, он токенизирует аудио со скоростью 12,5 Гц (около 24 токенов в секунду для каждого слоя квантования), эффективно сжимая голос и окружающие звуки.
После Moshi появились другие модели, которые нативно поддерживают звук, вот некоторые из них:
CSM [23] (Sesame, 2025): голосовой чат, Llama + Mimi;
Qwen3-Omni [15] (Alibaba, 2025): мультимодальная LLM от Alibaba. Аудио на выходе генерируется отдельной моделью talker, а её выдача не подаётся обратно, так что это по сути текстовая модель с функцией text-to-speech;
MiMo-Audio [24] (Xiaomi, 2025): только звук;
LFM2-Audio [25] (Liquid AI, 2025): аудио/текст, использует кодек Mimi.
Но рынок развивается очень стремительно, и уже в 2026−2027 гг. может многое измениться. Кроме упомянутых выше SoundStream и Encodec, можно упомянуть ещё нейронные аудиокодеки DAC [26] (Descript Audio Codec) и SNAC [27] (Neural Audio Codec).
Вообще, технологии сжатия данных не стоят на месте, каждый год появляются новые научные работы в этой области, исследования и конкретные прикладные разработки, которые можно применять на практике. Например, недавно вышел любопытный архиватор fc [28] (Floating-Point Compressor), это эффективный новый lossless-компрессор для потоков 64-битных цифр с плавающей запятой формата IEEE-754 [29] (FP64, float64, числа двойной точности или double). Он не выполняет токенизации, но теоретически тоже может использоваться для сжатия звука, как и нейронные аудиокодеки, или вместе с ними.
64-битные числа состоят из знака (1 бит), экспоненты (11 бит до запятой) и мантиссы (оставшиеся 52 бита, после запятой).
При малейшем изменении числа мантисса в двоичном коде сильно изменяется, поэтому для обычных архиваторов она представляет случайный шум. Например, у чисел 2,5439 и 2,5438 совпадают знак, экспонента и первые 13 знаков мантиссы, а далее идёт 39 бит случайного шума, который практически не сжимается:
Мантисса 2,5439 в double: 01000101100111101000000111110010000100101101011101110
Мантисса 2,5438 в double: 01000101100110110011110100000111110010000100101101106
Специализированные кодеки разделяют поток на три независимые дорожки и применяют математическое предсказание к мантиссам соседних чисел, превращая хаотичный шум в более простые для сжатия цепочки данных. Конкретно fc разделяет поток на адаптивно изменяющиеся блоки, а потом использует набор специализированных предсказателей/преобразователей/кодеров для чисел с плавающей запятой — и проверяет, какой из них наиболее эффективен для конкретного блока чисел. То есть он работает как метаархиватор, используя несколько разных методов для сжатия и выбирая лучший.
В результате fc в несколько раз эффективнее стандартных архиваторов, а также неплохо выглядит (чуть ниже среднего) по скорости кодирования и декодирования:
|
Кодек |
Степень сжатия |
Кодирование (МБ/с) |
Декодирование (МБ/с) |
|---|---|---|---|
|
fc |
3,07 |
120 |
1277 |
|
zstd -3 |
2,07 |
528 |
1556 |
|
zstd -9 |
2,09 |
111 |
1572 |
|
fpzip |
1,71 |
123 |
121 |
|
lz4hc -9 |
1,69 |
51 |
5835 |
|
gorilla |
1,66 |
683 |
971 |
|
lz4 |
1,62 |
2176 |
5353 |
Компрессор предназначен для временны́х рядов, научных данных, симуляций и аналитики, где числа часто имеют структуру: это гладкие кривые, повторяющиеся значения, фиксированные приращения, периодические сигналы, предсказуемые дельты или мантиссы с низкой энтропией.
Если автор в будущем расширит программу для поддержки 32-битных float, то он подойдёт и для lossless-сжатия высококачественного звука.
© 2026 ООО «МТ ФИНАНС»
Автор: alizar
Источник [30]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/float/453325
Ссылки в тексте:
[1] Large Text Compression Benchmark: https://www.mattmahoney.net/dc/text.html
[2] NNCP: https://bellard.org/nncp/
[3] enwik9: http://mattmahoney.net/dc/textdata.html
[4] tiktoken: https://github.com/openai/tiktoken
[5] BPE: http://www.pennelynn.com/Documents/CUJ/HTML/94HTML/19940045.HTM
[6] источник: https://kyutai.org/codec-explainer
[7] SentencePiece: https://github.com/google/sentencepiece
[8] исключительно эффективны в предсказании следующего слова: https://karpathy.github.io/2015/05/21/rnn-effectiveness/
[9] WaveNet: https://deepmind.google/blog/wavenet-a-generative-model-for-raw-audio/
[10] реалистично синтезировала человеческую речь: https://storage.googleapis.com/gdm-deepmind-com-prod-public/media/media/us-english-parametric-1.wav
[11] явно запиналась, подбирая слова: https://storage.googleapis.com/gdm-deepmind-com-prod-public/media/media/speaker-1.wav
[12] блога: https://deepmind.google/discover/blog/wavenet-a-generative-model-for-raw-audio/
[13] Gemini: https://blog.google/technology/google-deepmind/gemini-2-5-native-audio/
[14] Advanced Voice Mode: https://openai.com/index/hello-gpt-4o/
[15] Qwen: https://qwen.ai/blog?id=fdfbaf2907a36b7659a470c77fb135e381302028&from=research.research-list
[16] Moshi: https://moshi-chat.kyutai.org/
[17] речевую модель Moshi: https://arxiv.org/abs/2410.00037
[18] «SoundStream: end-to-end нейронный аудиокодек»: https://dl.acm.org/doi/10.1109/TASLP.2021.3129994
[19] «Сжатие высококачественного аудио с использованием нейросетей»: https://arxiv.org/abs/2210.13438
[20] научной литературе: https://arxiv.org/abs/2209.03143
[21] самонаблюдаемых моделей речи: https://arxiv.org/abs/2006.11477
[22] SeaNet: https://www.isca-archive.org/interspeech_2020/tagliasacchi20_interspeech.html
[23] CSM: https://www.sesame.com/research/crossing_the_uncanny_valley_of_voice
[24] MiMo-Audio: https://github.com/XiaomiMiMo/MiMo-Audio
[25] LFM2-Audio: https://www.liquid.ai/blog/lfm2-audio-an-end-to-end-audio-foundation-model
[26] DAC: https://github.com/descriptinc/descript-audio-codec
[27] SNAC: https://arxiv.org/abs/2410.14411
[28] fc: https://github.com/xtellect/fc
[29] IEEE-754: https://en.wikipedia.org/wiki/Double-precision_floating-point_format
[30] Источник: https://habr.com/ru/companies/ruvds/articles/1040026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1040026
Нажмите здесь для печати.