- 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
Komentar Hacker News