6 poin oleh GN⁺ 2025-10-07 | 1 komentar | Bagikan ke WhatsApp
  • OpenZL yang dirilis Meta adalah framework kompresi open-source baru yang menyediakan kompresi lossless untuk data terstruktur, dengan mengenali format data agar dapat menjalankan proses transformasi secara efisien
  • Menerapkan tahap transformasi yang berbeda untuk tiap format file, tetapi dirancang agar semua file tetap dapat didekode menggunakan satu dekompresor universal
  • Dengan menyampaikan struktur data secara eksplisit ke kompresor, proses transformasi dapat dioptimalkan, dan melalui konfigurasi kompresi (config) yang telah dipelajari, pengguna dapat memilih berbagai titik keseimbangan antara kecepatan dan rasio kompresi
  • Terintegrasi dengan sistem Managed Compression internal Meta, sehingga dapat dilatih ulang dan diperbarui secara otomatis mengikuti perubahan data
  • Menunjukkan performa tinggi pada dataset dengan struktur yang jelas, sehingga berpotensi meningkatkan efisiensi pemrosesan di data center dan menyederhanakan ekosistem kompresi lewat satu dekoder tunggal

Ikhtisar OpenZL

  • OpenZL adalah framework kompresi data sadar format yang dirilis Meta, dan menawarkan efisiensi kompresi khusus untuk data terstruktur
    • Jika format data dinyatakan secara eksplisit, OpenZL menggunakan graf transformasi internal untuk menemukan pola keteraturan dan pengulangan dalam data agar kompresi menjadi lebih efisien
  • Sebagai konsep penerus Zstandard, arsitekturnya menggabungkan performa kompresi teroptimasi per format dengan kemudahan pemeliharaan dari satu executable tunggal
    • Zstandard telah menjadi lompatan besar di data center dengan memenuhi kecepatan dan rasio kompresi sekaligus, tetapi ada batas perbaikan bertahap karena generalisasi algoritmenya
  • Pada data terstruktur, kompresi yang disesuaikan dengan bentuk data lebih unggul daripada metode umum, baik dari sisi rasio maupun kecepatan
  • Namun, membangun dan mengoperasikan kompresor/dekompresor khusus untuk setiap format file menimbulkan beban yang besar
  • OpenZL mengejar sekaligus performa kompresor khusus per format dan kemudahan operasional dari satu binary

Metode kompresi berbasis struktur

  • Sementara kompresor umum memproses data berdasarkan tebakan, OpenZL menerima struktur data sebagai input eksplisit
    • Pengguna dapat mendeskripsikan bentuk data (baris, kolom, enum, struktur bertingkat, dan sebagainya) melalui Simple Data Description Language (SDDL)
    • Berdasarkan informasi ini, OpenZL menghasilkan urutan transformasi optimal (Plan) melalui pelatihan offline (trainer)
    • Setelah itu, saat kompresi dilakukan, OpenZL membuat graf decoding aktual (Resolved Graph) berdasarkan Plan tersebut lalu menyematkannya ke dalam frame

Contoh: kompresi data SAO

  • Dengan file SAO dari Silesia Compression Corpus sebagai contoh, OpenZL memisahkan tiap field menjadi stream data homogen lalu melakukan optimasi individual
    • Koordinat sumbu X (SRA0) memiliki kecenderungan terurut sehingga diterapkan transformasi delta
    • Koordinat sumbu Y (SDEC0) memanfaatkan keterbatasan rentang sehingga diterapkan transformasi transpose
    • Field lainnya, karena jumlah nilai uniknya rendah, dikompresi berbasis kamus melalui transformasi tokenize
  • Hasilnya, dibandingkan zstd, OpenZL mencatat rasio kompresi lebih dari 2x dan kecepatan lebih tinggi (340 MB/s)

Pembuatan kompresor otomatis dan proses pelatihan

  • Trainer OpenZL secara otomatis mengeksplorasi dan mempelajari strategi kompresi berdasarkan sampel data
    • Proses pelatihan: describe(SDDL) → train(membuat Plan) → compress(menyematkan graf) → decode(memulihkan dengan satu binary)
    • Menggunakan control points untuk memilih jalur optimal saat runtime berdasarkan informasi statistik
    • Bahkan ketika Plan baru diterapkan, data lama tetap dapat didekode seperti biasa, sehingga kompatibilitas mundur tetap terjaga

Keunggulan satu dekompresor tunggal

  • OpenZL memungkinkan data yang dikompresi dengan format apa pun untuk dipulihkan menggunakan satu binary dekompresor
    • Verifikasi keamanan dan stabilitas cukup dilakukan satu kali untuk diterapkan ke seluruh sistem
    • Saat dekompresor diperbarui, peningkatan performa juga berlaku untuk seluruh data lama
    • Menjamin kesederhanaan operasional dan konsistensi di seluruh armada sistem
    • Tetap menjaga kompatibilitas ke bawah meskipun banyak format dikelola secara bersamaan

Hasil perbandingan performa

  • Pada berbagai dataset, OpenZL mencapai rasio kompresi dan kecepatan yang lebih tinggi dibanding kompresor umum seperti zstd dan xz
    • SAO: rasio kompresi 2.06x, kecepatan dekompresi 1200 MB/s
    • ERA5 (data numerik): rasio kompresi lebih tinggi dalam waktu yang sama, atau kecepatan lebih tinggi pada rasio kompresi yang sama
    • Pada dataset Parquet dan CSV juga dimungkinkan optimasi khusus berbasis pengenalan format
  • Namun, untuk data tanpa struktur seperti yang berbasis teks, efektivitasnya terbatas dan sistem akan fallback ke zstd untuk menjamin performa minimum
  • Pengguna dapat memilih beragam kombinasi pada tiga sumbu: rasio kompresi / kecepatan kompresi / kecepatan dekompresi, sehingga memberi fleksibilitas yang berbeda dari sekadar pengaturan “level” pada kompresor tradisional

Evolusi data dan pelatihan ulang otomatis

  • Terhubung dengan Managed Compression milik Meta sehingga ketika format data berubah, Plan kompresi dapat dilatih ulang secara otomatis
    • Sistem melakukan sampling dan evaluasi secara berkala, lalu memperbarui otomatis jika ditemukan Plan yang lebih baik
    • Dekompresor tetap sama sehingga risiko operasional diminimalkan

Partisipasi ekosistem open-source dan arah selanjutnya

  • OpenZL cocok untuk data berstruktur vektor, tabel, dan pohon, serta menunjukkan efisiensi tinggi pada deret waktu, tensor ML, dan tabel database
  • Untuk teks tanpa struktur (misalnya enwik, dickens, dll.), digunakan zstd
  • Rencana ke depan:
    • Memperluas library transformasi untuk data deret waktu dan grid
    • Memperkuat daya ekspresif SDDL untuk merepresentasikan data bertingkat
    • Meningkatkan performa dan stabilitas penjelajah kompresor otomatis
  • Cara berpartisipasi dalam komunitas:
    • Contoh dan dokumentasi tersedia di situs resmi OpenZL dan repositori GitHub
    • Menguji format data baru dan mengusulkan Plan
    • Berkontribusi pada optimasi engine C/C++, penambahan transformasi baru, dan benchmark

Kesimpulan

  • OpenZL adalah pendekatan baru yang menstandarkan kompresi berbasis pengenalan format sekaligus memungkinkan integrasi ekosistem yang ada dengan satu dekoder sebagai pusatnya
  • Melalui ini, Meta ingin sekaligus meningkatkan efisiensi kompresi, kecepatan, dan kemudahan pemeliharaan di seluruh data center

1 komentar

 
GN⁺ 2025-10-07
Komentar Hacker News
  • Setelah melihat posting HN terbaru tentang kompresi data genomik (tautan), saya sangat berusaha menahan diri untuk tidak membahas OpenZL; ini benar-benar contoh yang menunjukkan bahwa bahkan transformasi yang sangat sederhana pada data bisa sangat meningkatkan efisiensi kompresi, dan OpenZL juga bisa melakukan transformasi seperti ini dengan mudah secara internal (menggunakan SDDL)
    • Saya langsung teringat posting itu; penasaran apakah ada yang pernah membandingkan kompresor khusus yang disebut di sana dengan OpenZL. Sebagai contoh, dataset Grace Blackwell 2.6Tbp 661k adalah benchmark klasik dalam genom mikroba, dan metode MiniPhy dari Karel Břinda memangkasnya dari 2.46TiB menjadi 27GiB (rasio kompresi 91). Saya penasaran apakah hasil serupa mungkin dicapai
    • Saya ingin melihat hasil benchmark pada format genom umum (fa, fq, sam, vcf), terutama penasaran soal penerapannya pada data nanopore. Penyimpanan FAST5/POD5 sulit ditangani, jadi banyak data yang berguna hilang
    • [0] Saya penulis postingnya; selamat karena sudah menahan diri, dan itu keputusan yang bagus. Saya pasti ingin mencobanya. Selain panduan OpenZL untuk melatih kompresor fasta (tautan), apakah ada saran tambahan?
  • Sedikit terkait, baru-baru ini ada diskusi tentang format file F3 (tautan); di sana juga dimungkinkan kompresi sadar format dengan menyematkan kode decompressor sebagai WASM. Motivasi utama F3 adalah kompatibilitas masa depan, tetapi ia juga bisa memakai algoritme kompresi khusus. Pendekatannya benar-benar berbeda dari OpenZL, dan dependensi OpenZL juga jauh lebih ringan (hanya perlu compiler/runtime SDDL)
    • zpaq juga sudah punya fitur embedded decompressor selama 15 tahun, jadi agak disayangkan tidak disebut
    • Saya khawatir memasukkan kode yang bisa dieksekusi ke dalam file terkompresi akan memperbesar kerentanan terhadap virus
  • Saya terkejut ada tool sebagus ini; menurut saya ini seharusnya muncul jauh lebih awal. Kalau struktur kontainer data dipahami dengan benar, efisiensi deduplikasi bisa naik drastis. Lisensi BSD-3-Clause, implementasi C++ yang rapi, dokumentasi juga sangat baik. Saya berharap lebih banyak format file akan ditambahkan
    • Spesialisasi format file bukan hal baru (misalnya prefilter opcode x86 di 7-Zip, atau penyematan specialized decoder bytecode di ZPAQ), tetapi implementasi nyata OpenZL, cara mendeskripsikan data, dan sistem training-nya sangat mengesankan
  • Kalau pemahaman saya benar, dengan mendeskripsikan struktur data di SDDL, kompresor tampaknya bisa menyusun strategi kompresi optimal untuk tiap bagian. Kelihatannya sangat keren; saya harap ini bisa berkembang menjadi framework umum untuk kompresi format kustom
    • Betul! SDDL (tautan) menyediakan toolkit no-code untuk melakukan hal ini. Fungsinya memang masih terbatas untuk sekarang, tetapi akan diperluas ke depannya. Sebelum itu, parser format juga bisa dibuat langsung dengan C++ atau Python. Sebagai catatan, kode ini hanya diperlukan di sisi kompresor, dan dekompresor bekerja tanpa bergantung pada format
  • Saya penasaran apakah tool ini mendukung seekable compression
  • Sambil melihat dokumentasinya, saya penasaran seberapa baik AI bisa mengubah penjelasan teknologi yang sudah ada seperti imhex atau Kaitai menjadi SDDL. Dengan cara ini, rasanya kumpulan skema yang bagus bisa dikumpulkan dengan cepat
    • Baru pertama kali saya tahu ada tool seperti itu, tetapi sepertinya memang bisa dikonversi ke SDDL. Saya pasti akan mengeceknya
  • Nimble dari Meta mengintegrasikan OpenZL (versi sebelum OSS) secara native, dan mereka mendapatkan keuntungan yang sangat besar
    • Kompresi backend untuk format data berbasis kolom sangat cocok dengan OpenZL. Kalau diketahui bahwa data yang dikompresi adalah angka seperti i64 atau float, keuntungannya langsung besar dibanding Zstandard
  • Saya penasaran apakah OpenZL cocok untuk data log (log JSON dengan skema yang belum pasti). Saya sedang mengembangkan tool kompresi log (tautan)
  • Non-Linear Compression (kompresi non-linear) dulu pernah sedikit saya coba sebagai ide, tetapi tidak berkembang jauh (tautan); jadi saya sangat senang melihat upaya seperti ini, terima kasih sudah membagikannya
  • Ini terlihat gila menarik, saya pasti akan mencobanya malam ini pada CSV berukuran besar
    • Akan menyenangkan kalau Anda membagikan pengalaman pemakaiannya. OpenZL awalnya dikembangkan untuk penggunaan internal Meta, dan belakangan banyak upaya dilakukan agar pengguna eksternal juga bisa memakainya dengan mudah. Masukan sangat diterima