Назад к бенчмарку

CUBR-0037 · прозрачность

Методология бенчмарков

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

1. Корпуса — на чём мы измеряем и почему

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

Silesia (≈212 МБ) — современный эталонный набор: исполняемые файлы, изображения, медицинские снимки, структурные бинари, базы данных и текст. Намеренно разнородный, чтобы ни одна узкая специализация не выиграла его целиком.

enwik8 — первые 100 МБ дампа английской Википедии, канонический бенчмарк естественного языка (основа Hutter Prize).

Canterbury Corpus — давний академический набор, используемый в исследованиях сжатия с 1997 года.

отлаженный 10-файловый корпус (исторический)

Ранний внутренний набор из 10 файлов, использовавшийся на этапе становления. Хранится только как историческая отсылка — числа лидерборда на нём НЕ выдаются за общий результат, именно потому что корпус, под который ты подгоняешься, способен ввести в заблуждение (см. оговорку про overfit ниже).

2. Архиваторы и их точные флаги

Каждый соперник запускается на сильнейшем практичном уровне, чтобы сравнение было честным, а не подстроенным против слабых базовых линий. Это точные вызовы — любой может их воспроизвести:

архиватор флаги
cubrim competitive-min corrected: CUBR-0043 CM19 rows + prior verified rows + fresh exact-317a323 replacements for nci/ptt5/kennedy.xls
gzip -9
bzip2 -9
xz -9e
zstd --ultra -22
brotli -q 11
lz4 -12
ppmd 7z -m0=PPMd
7z -m0=LZMA2 -mx9
rar a -m5

cubrim запускает встроенный конкурентный отбор схем (берёт наименьшую из своих схем на каждый вход). Флаги выше читаются напрямую из опубликованного JSON бенчмарка, поэтому не могут разойтись с тем, что реально измерялось.

Что значит «competitive» у Cubrim competitive

У других архиваторов в таблице стоит фиксированный уровень сжатия (gzip -9, zstd --ultra -22). У Cubrim единого «уровня» нет. Для каждого файла кодер соревновательно пробует несколько внутренних схем кодирования значений — битпак, RLE-коды, контекстный Huffman и семейство BWT с geomix-смешиванием — измеряет каждую и записывает в архив наименьшую, помечая её одним байтом-идентификатором схемы. Поскольку выбирается минимум из кандидатов и из прежнего лучшего результата, новая схема не может ухудшить старую — отбор структурно защищён от регрессий. Поэтому «competitive (built-in scheme selection)» в колонке Cubrim — это не уровень, а архитектура: кодек сам подбирает лучшую схему под конкретные данные.

3. Метрика

Мы приводим коэффициент сжатия — сжатый размер, делённый на исходный. Меньше — лучше. Группы файлов и общий лидерборд считаются size-weighted: Σ сжатых байт ÷ Σ исходных байт по выбранным файлам, тем же методом, что у Silesia/lzbench. Это не среднее рангов по файлам; без взвешивания по скорости, без выборочных единиц.

ratio = compressed_size / original_size  ·  меньше — лучше

4. Почему мы не можем тихо смошенничать

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

Распаковка байт-в-байт, проверяется автоматически

Для каждого файла Cubrim обязан распаковаться обратно в исходник бит-в-бит. Если отличается хоть один байт — результат недействителен и отбрасывается. Сжатие без потерь не может подделать маленькое число, теряя данные — проверка round-trip это ловит.

Конкурентный рельс — без подгонки под файл

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

Каждый прогон несёт code_sha

Каждый бенчмарк помечен точным git-коммитом кодека, который его произвёл. Числа воспроизводимы против этого конкретного коммита — а не движущейся, непроверяемой цели.

этот прогон: code_sha 3cca99589ed0 round-trip 24/24 байт-в-байт

5. Честность как принцип

  • Мы публикуем проигрыши. Cubrim сейчас лидирует в общем мировом агрегате, но бенчмарк всё равно показывает, где другие архиваторы выигрывают по типу или файлу — ppmd на text, 7z на exe/binary и отдельные файловые проигрыши внутри типов, где Cubrim выигрывает агрегат.
  • Мы публикуем тупики. Гипотезы, которые не сработали, остаются NO-GO-карточками в ленте эволюции, с измеренной причиной провала — не удаляются.
  • Мы открыто признаём overfit. Ранний рубеж (H-24) обошёл gzip на отлаженном корпусе, но оказался в 2,2 раза хуже gzip на непересекающемся holdout — мы задокументировали эту регрессию, а не спрятали, и именно поэтому теперь начинаем с мировых корпусов.
  • Мы ре-валидируем при смене датасета. Переход на новый корпус означает измерение заново; результат честен ровно настолько, насколько свежи данные, против которых он проверялся.

6. Открытость

Вся гонка гипотез публична. Каждая идея, каждый замер и каждый вердикт — принят или отклонён — записываются в ленту эволюции по мере событий. Приватного лидерборда нет.