- OpenZL, publié par Meta, est un nouveau framework open source de compression qui fournit une compression sans perte pour les données structurées en reconnaissant leur format afin d’exécuter un processus de transformation efficace
- Il applique des étapes de transformation différentes selon chaque format de fichier, tout en étant conçu pour que tous les fichiers puissent être décompressés avec un unique décompresseur universel
- En transmettant explicitement la structure des données au compresseur, il optimise le processus de transformation et permet de choisir différents compromis entre vitesse et taux de compression via des configurations (config) de compression apprises
- Il se distingue aussi par son intégration avec le système Managed Compression interne de Meta, qui permet un réentraînement et une mise à jour automatiques en fonction de l’évolution des données
- Il affiche de hautes performances sur les jeux de données à structure claire, avec le potentiel d’améliorer l’efficacité de traitement dans les datacenters et de simplifier l’écosystème de compression autour d’un décodeur unique
Présentation d’OpenZL
- OpenZL est un framework de compression de données sensible au format publié par Meta, qui offre une efficacité de compression spécialisée pour les données structurées
- Si l’on indique explicitement le format des données, il exploite son graphe de transformation interne pour repérer les régularités et répétitions et compresser plus efficacement
- Conçu comme un successeur conceptuel de Zstandard, il combine les performances de la compression optimisée par format et la maintenabilité d’un exécutable unique
- Zstandard a constitué une avancée majeure dans les datacenters en répondant à la fois aux exigences de vitesse et de taux de compression, mais sa nature généraliste impose des limites aux améliorations progressives
- Pour les données structurées, une compression sur mesure adaptée à la forme des données est plus avantageuse que les méthodes généralistes, à la fois en taux de compression et en vitesse
- Mais construire et exploiter un compresseur/décompresseur dédié pour chaque format de fichier représente une lourde charge
- OpenZL cherche à réunir à la fois les performances de compresseurs spécialisés et la simplicité d’exploitation d’un binaire unique
Compression fondée sur la structure
- Là où un compresseur classique traite les données de manière heuristique, OpenZL reçoit explicitement la structure des données en entrée
- L’utilisateur peut décrire la forme des données (lignes, colonnes, énumérations, structures imbriquées, etc.) via Simple Data Description Language (SDDL)
- À partir de ces informations, OpenZL génère, via un apprentissage offline (trainer), une séquence optimale de transformations (Plan)
- Lors de la compression, il construit ensuite le graphe de décodage réel (Resolved Graph) sur cette base et l’intègre dans la frame
Exemple : compression des données SAO
- En prenant comme exemple le fichier SAO du Silesia Compression Corpus, OpenZL sépare chaque champ pour les transformer en flux de données homogènes, puis applique une optimisation spécifique à chacun
- La coordonnée de l’axe X (SRA0) présente une tendance ordonnée, d’où l’application d’une transformation delta
- La coordonnée de l’axe Y (SDEC0) exploite une plage de valeurs limitée via une transformation transpose
- Les autres champs, avec peu de valeurs distinctes, utilisent une transformation tokenize pour une compression fondée sur dictionnaire
- Au final, OpenZL obtient plus du double du taux de compression de zstd, avec une vitesse supérieure (340 MB/s)
Génération automatique du compresseur et apprentissage
- Le trainer d’OpenZL explore et apprend automatiquement des stratégies de compression à partir d’échantillons de données
- Processus d’apprentissage : describe(SDDL) → train(génération du Plan) → compress(intégration du graphe) → decode(restauration avec un binaire unique)
- Il utilise des control points pour sélectionner à l’exécution le chemin optimal à partir d’informations statistiques
- Même si un nouveau plan est appliqué, les anciennes données restent décompressables, ce qui préserve la rétrocompatibilité
Les avantages d’un décompresseur unique
- Quel que soit le format utilisé pour la compression, OpenZL permet la restauration via un unique binaire de décompression
- Il suffit de ne réaliser qu’une seule fois les vérifications de sécurité et de fiabilité pour les appliquer à l’ensemble du système
- Lors des mises à jour du décompresseur, les données historiques bénéficient elles aussi des gains de performance
- Cela garantit la simplicité opérationnelle et la cohérence à l’échelle de toute la flotte
- Il est possible de gérer simultanément plusieurs formats tout en préservant la compatibilité descendante
Résultats de comparaison des performances
- Sur divers jeux de données, OpenZL atteint un meilleur taux de compression et une meilleure vitesse que des compresseurs généralistes comme zstd ou xz
- SAO : taux de compression multiplié par 2,06, vitesse de restauration de 1200 MB/s
- ERA5 (données numériques) : meilleur taux de compression à temps égal, ou vitesse supérieure à taux de compression égal
- Sur des jeux de données Parquet et CSV aussi, l’approche sensible au format permet une optimisation sur mesure
- En revanche, pour des données sans structure comme le texte, l’effet reste limité, avec repli sur zstd pour garantir un niveau minimal de performance
- Il permet de choisir différentes combinaisons selon trois axes — taux de compression, vitesse de compression et vitesse de restauration — offrant une flexibilité différente du simple réglage de “niveau” des compresseurs traditionnels
Évolution des données et réentraînement automatique
- Grâce à son intégration avec Managed Compression de Meta, OpenZL réapprend automatiquement les plans de compression lorsque le format des données change
- Des échantillons sont prélevés et évalués périodiquement, puis une meilleure configuration est appliquée automatiquement si elle est trouvée
- Le décompresseur reste inchangé, ce qui réduit au minimum les risques opérationnels
Participation à l’écosystème open source et orientations futures
- OpenZL est adapté aux données structurées en vecteurs, tableaux et arbres, et montre une excellente efficacité sur les séries temporelles, les tenseurs de ML et les tables de base de données
- Pour les textes sans structure (ex. : enwik, dickens, etc.), il utilise zstd
- Feuille de route :
- extension de la bibliothèque de transformations pour les séries temporelles et les données maillées
- renforcement de l’expressivité de SDDL pour les données imbriquées
- amélioration des performances et de la stabilité de l’explorateur automatique de compresseurs
- Comment participer à la communauté :
- exemples et documentation disponibles sur le site officiel d’OpenZL et le dépôt GitHub
- test de nouveaux formats de données et proposition de Plan
- contributions possibles à l’optimisation du moteur C/C++, à l’ajout de nouvelles transformations et aux benchmarks
Conclusion
- OpenZL propose une nouvelle approche qui standardise la compression fondée sur la reconnaissance du format tout en permettant d’unifier l’écosystème existant autour d’un décodeur unique
- Meta entend ainsi améliorer simultanément l’efficacité de compression, la vitesse et la maintenabilité à l’échelle de ses datacenters
1 commentaires
Avis Hacker News