- Meta'nın duyurduğu OpenZL, yapılandırılmış veriler için kayıpsız sıkıştırma sunan yeni bir açık kaynaklı sıkıştırma çerçevesi olup, veri biçimini tanıyarak verimli dönüşüm süreçleri yürütür
- Her dosya biçimine farklı dönüşüm adımları uygular, ancak tüm dosyaların tek bir genel amaçlı decompresser ile açılabilmesi için tasarlanmıştır
- Sıkıştırıcıya veri yapısı açıkça iletilerek dönüşüm süreci optimize edilir ve öğrenilmiş sıkıştırma yapılandırmaları (config) sayesinde hız ile sıkıştırma oranı arasında farklı denge noktaları seçilebilir
- Meta içindeki Managed Compression sistemiyle entegre çalışır; verideki değişimlere göre otomatik yeniden eğitim ve güncelleme yapabilmesi öne çıkan özelliklerindendir
- Yapısı belirgin veri kümelerinde yüksek performans göstererek veri merkezi işleme verimliliğini artırır ve sıkıştırma ekosistemini tek bir decoder ile sadeleştirme potansiyeli sunar
OpenZL'ye genel bakış
- OpenZL, Meta'nın duyurduğu biçim farkındalıklı veri sıkıştırma çerçevesi olup, yapılandırılmış veriler için özelleşmiş sıkıştırma verimliliği sunar
- Verinin biçimi açıkça belirtildiğinde, iç dönüşüm grafiği üzerinden verideki düzenlilik ve tekrarları bularak daha verimli sıkıştırma yapar
- Zstandard'ın devamı niteliğinde bir kavram olarak, biçime göre optimize edilmiş sıkıştırmanın performansını tek bir çalıştırılabilir dosyanın bakım kolaylığıyla birleştiren bir yapıya sahiptir
- Zstandard, veri merkezlerinde hız ve sıkıştırma oranını aynı anda karşılayarak büyük bir sıçrama yaratmış olsa da, algoritmanın genelliğinden kaynaklanan kademeli iyileştirme sınırları vardır
- Yapılandırılmış verilerde, genel sıkıştırma yöntemlerine kıyasla biçime uygun özelleştirilmiş sıkıştırma hem oran hem hız açısından daha avantajlıdır
- Ancak her dosya biçimi için özel sıkıştırıcı/geri açıcı geliştirme ve işletme yükü büyüktür
- OpenZL, ayrı ayrı özelleştirilmiş sıkıştırıcıların performansını ve tek binary ile çalıştırma kolaylığını aynı anda hedefler
Yapı temelli sıkıştırma yaklaşımı
- Geleneksel sıkıştırıcılar veriyi tahmine dayalı işlerken, OpenZL veri yapısını açık bir girdi olarak alır
- Kullanıcılar Simple Data Description Language (SDDL) ile verinin şeklini (satırlar, sütunlar, enum'lar, iç içe yapılar vb.) tanımlayabilir
- Bu bilgiye dayanarak OpenZL, çevrimdışı eğitim (trainer) ile en iyi dönüşüm dizisini (Plan) üretir
- Sonrasında sıkıştırma sırasında bu Plan temel alınarak gerçek çözümleme grafiği (Resolved Graph) oluşturulur ve frame içine gömülür
Örnek: SAO verisinin sıkıştırılması
- Silesia Compression Corpus içindeki SAO dosyası örneğinde OpenZL, her alanı ayırıp homojen veri akışlarına dönüştürdükten sonra ayrı ayrı optimize eder
- X ekseni koordinatları (SRA0) sıralı olma eğilimi gösterdiği için delta dönüşümü uygulanır
- Y ekseni koordinatları (SDEC0) değer aralığı kısıtından yararlanılarak transpose dönüşümü uygulanır
- Diğer alanlarda ise düşük benzersiz değer sayısı nedeniyle tokenize dönüşümü ile sözlük tabanlı sıkıştırma yapılır
- Sonuç olarak zstd'ye kıyasla 2 katın üzerinde sıkıştırma oranı ve daha yüksek hız (340 MB/s) elde edilir
Otomatik sıkıştırıcı üretimi ve eğitim süreci
- OpenZL'nin trainer bileşeni, veri örneklerine dayanarak sıkıştırma stratejilerini otomatik olarak keşfeder ve öğrenir
- Eğitim süreci: describe(SDDL) → train(Plan oluşturma) → compress(grafiği gömme) → decode(tek binary ile geri açma)
- Control point'ler kullanılarak çalışma zamanında istatistiksel bilgilere göre en uygun yol seçilir
- Yeni bir plan uygulansa bile mevcut veriler aynı şekilde çözülebilir, yani geriye dönük uyumluluk korunur
Tek decompresser'ın avantajları
- OpenZL, hangi biçimle sıkıştırılmış olursa olsun veriyi tek bir decompresser binary'si ile geri açabilir
- Güvenlik ve kararlılık doğrulaması yalnızca bir kez yapılarak tüm sisteme uygulanabilir
- Decompresser güncellendiğinde, geçmişte sıkıştırılmış tüm veriler için de performans iyileştirmeleri uygulanabilir
- Operasyonel sadelik ve filo genelinde tutarlılık sağlanır
- Birden fazla biçim aynı anda yönetilirken bile geriye dönük uyumluluk korunur
Performans karşılaştırma sonuçları
- Çeşitli veri kümelerinde zstd, xz gibi genel amaçlı sıkıştırıcılara kıyasla daha yüksek sıkıştırma oranı ve hız elde edilmiştir
- SAO: 2,06 kat sıkıştırma oranı, 1200 MB/s geri açma hızı
- ERA5 (sayısal veri): aynı sürede daha yüksek sıkıştırma oranı ya da aynı sıkıştırma oranında daha hızlı performans
- Parquet ve CSV veri kümelerinde de biçim farkındalığı sayesinde özelleştirilmiş optimizasyon mümkündür
- Ancak metin tabanlı gibi yapısız verilerde etkisi sınırlıdır ve asgari performansı garanti etmek için zstd'ye fallback yapar
- Sıkıştırma oranı / sıkıştırma hızı / geri açma hızı olmak üzere üç eksende farklı kombinasyonlar seçilebilir; bu da geleneksel sıkıştırıcılardaki “seviye” ayarından farklı bir esneklik sunar
Veri evrimi ve otomatik yeniden eğitim
- Meta'nın Managed Compression sistemiyle bağlantılı olarak, veri biçimi değiştiğinde sıkıştırma planı otomatik olarak yeniden eğitilir
- Düzenli örnekleme ve değerlendirme sonrasında daha iyi bir plan bulunursa otomatik güncelleme yapılır
- Decompresser aynı kaldığından operasyonel risk en aza iner
Açık kaynak ekosistemine katılım ve gelecek yönelimleri
- OpenZL; vektör, tablo ve ağaç yapılı veriler için uygundur ve zaman serileri, ML tensor'ları, veritabanı tabloları gibi alanlarda yüksek verim gösterir
- Yapısız metinlerde (ör. enwik, dickens vb.) zstd kullanılır
- Gelecek planları:
- Zaman serileri ve ızgara verileri için dönüşüm kütüphanesini genişletmek
- SDDL'nin iç içe veri ifade gücünü artırmak
- Otomatik sıkıştırıcı gezgininin performansını ve kararlılığını iyileştirmek
- Topluluğun katılma yolları:
- Resmî OpenZL sitesi ve GitHub deposu üzerinden örnekler ve dokümantasyon incelenebilir
- Yeni veri biçimlerini test etmek ve Plan önerilerinde bulunmak
- C/C++ motor optimizasyonu, yeni dönüşümler ekleme ve benchmark katkıları yapılabilir
Sonuç
- OpenZL, biçim farkındalıklı sıkıştırmayı standartlaştırırken mevcut ekosistemi tek bir decoder etrafında birleştirebilecek yeni bir yaklaşım sunuyor
- Meta, bununla veri merkezleri genelinde sıkıştırma verimliliğini, hızı ve bakım kolaylığını aynı anda iyileştirmeyi hedefliyor
1 yorum
Hacker News görüşleri