CUBR-0037 · прозрачность
Методология бенчмарков
Как измеряется каждое число на этом сайте — чтобы вам не приходилось верить нам на слово. Корпуса, точные флаги, метрика и проверки, которые делают тихое мошенничество невозможным.
1. Корпуса — на чём мы измеряем и почему
Мы используем стандартные, публично скачиваемые корпуса, на которых сошлась область сжатия. Они выбраны не в угоду Cubrim — это те же файлы, по которым судят любой серьёзный компрессор, охватывающие все типы данных, включая те, где Cubrim сейчас проигрывает.
Silesia (≈212 МБ) — современный эталонный набор: исполняемые файлы, изображения, медицинские снимки, структурные бинари, базы данных и текст. Намеренно разнородный, чтобы ни одна узкая специализация не выиграла его целиком.
enwik8 — первые 100 МБ дампа английской Википедии, канонический бенчмарк естественного языка (основа Hutter Prize).
Canterbury Corpus — давний академический набор, используемый в исследованиях сжатия с 1997 года.
Ранний внутренний набор из 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. Это не среднее рангов по файлам; без взвешивания по скорости, без выборочных единиц.
4. Почему мы не можем тихо смошенничать
Три свойства делают результаты самопроверяемыми. Это не обещания — это механические ограничения, встроенные в то, как запускается бенчмарк.
Распаковка байт-в-байт, проверяется автоматически
Для каждого файла Cubrim обязан распаковаться обратно в исходник бит-в-бит. Если отличается хоть один байт — результат недействителен и отбрасывается. Сжатие без потерь не может подделать маленькое число, теряя данные — проверка round-trip это ловит.
Конкурентный рельс — без подгонки под файл
Cubrim выбирает наименьшую из своих внутренних схем на каждый вход по фиксированному конкурентному правилу. Он не подкручивает параметры под конкретный файл, поэтому хорошее число отражает кодек, а не ручку, повёрнутую под один случай.
Каждый прогон несёт code_sha
Каждый бенчмарк помечен точным git-коммитом кодека, который его произвёл. Числа воспроизводимы против этого конкретного коммита — а не движущейся, непроверяемой цели.
5. Честность как принцип
- Мы публикуем проигрыши. Cubrim сейчас лидирует в общем мировом агрегате, но бенчмарк всё равно показывает, где другие архиваторы выигрывают по типу или файлу — ppmd на text, 7z на exe/binary и отдельные файловые проигрыши внутри типов, где Cubrim выигрывает агрегат.
- Мы публикуем тупики. Гипотезы, которые не сработали, остаются NO-GO-карточками в ленте эволюции, с измеренной причиной провала — не удаляются.
- Мы открыто признаём overfit. Ранний рубеж (H-24) обошёл gzip на отлаженном корпусе, но оказался в 2,2 раза хуже gzip на непересекающемся holdout — мы задокументировали эту регрессию, а не спрятали, и именно поэтому теперь начинаем с мировых корпусов.
- Мы ре-валидируем при смене датасета. Переход на новый корпус означает измерение заново; результат честен ровно настолько, насколько свежи данные, против которых он проверялся.
6. Открытость
Вся гонка гипотез публична. Каждая идея, каждый замер и каждый вердикт — принят или отклонён — записываются в ленту эволюции по мере событий. Приватного лидерборда нет.