- O OpenZL, lançado pela Meta, é um novo framework de compressão open source que oferece compressão sem perdas para dados estruturados, reconhecendo o formato dos dados para executar um processo de transformação eficiente
- Aplica etapas de transformação diferentes para cada formato de arquivo, mas foi projetado para que todos os arquivos possam ser descompactados com um único descompressor genérico
- Ao fornecer explicitamente a estrutura dos dados ao compressor, ele otimiza o processo de transformação e permite escolher diferentes pontos de equilíbrio entre velocidade e taxa de compressão por meio de configurações (configs) de compressão treinadas
- Destaca-se pela integração com o sistema interno Managed Compression da Meta, permitindo retreinamento e atualização automáticos conforme os dados mudam
- Apresenta alto desempenho em conjuntos de dados com estrutura bem definida, podendo melhorar a eficiência de processamento em datacenters e simplificar o ecossistema de compressão com um único decodificador
Visão geral do OpenZL
- O OpenZL é um framework de compressão de dados com reconhecimento de formato lançado pela Meta, oferecendo eficiência de compressão especializada para dados estruturados
- Ao informar explicitamente o formato dos dados, ele usa um grafo interno de transformações para identificar regularidades e repetições e comprimir de forma mais eficiente
- Como um conceito sucessor do Zstandard, sua estrutura combina o desempenho da compressão otimizada por formato com a facilidade de manutenção de um único executável
- O Zstandard representou um grande avanço nos datacenters ao atender simultaneamente velocidade e taxa de compressão, mas há limites para melhorias incrementais devido à generalização do algoritmo
- Em dados estruturados, uma compressão personalizada para o formato é superior aos métodos genéricos tanto em taxa quanto em velocidade
- Porém, há um grande custo operacional para construir e manter compressores/descompressores dedicados para cada formato de arquivo
- O OpenZL busca ao mesmo tempo o desempenho de compressores personalizados e a simplicidade operacional de um único binário
Método de compressão baseado em estrutura
- Enquanto compressores tradicionais tratam os dados com base em inferência, o OpenZL recebe a estrutura dos dados como entrada explícita
- O usuário pode descrever a forma dos dados (linhas, colunas, enumerações, estruturas aninhadas etc.) usando a Simple Data Description Language (SDDL)
- Com base nessas informações, o OpenZL gera uma sequência ótima de transformações (Plan) por meio de treinamento offline
- Depois, na compressão, cria o grafo de decodificação real (Resolved Graph) com base nesse Plan e o incorpora ao frame
Exemplo: compressão de dados SAO
- Usando o arquivo SAO do Silesia Compression Corpus como exemplo, o OpenZL separa cada campo e o transforma em streams de dados homogêneos, aplicando otimização individual
- A coordenada do eixo X (SRA0), por ter tendência de ordenação, recebe transformação delta
- A coordenada do eixo Y (SDEC0) usa uma transformação transpose aproveitando a limitação de faixa
- Os demais campos, por terem baixa cardinalidade, usam transformação tokenize para compressão baseada em dicionário
- Como resultado, registrou mais de 2x a taxa de compressão em relação ao zstd e maior velocidade (340 MB/s)
Geração automática de compressores e processo de treinamento
- O treinador do OpenZL explora e aprende automaticamente estratégias de compressão com base em amostras de dados
- Fluxo de treinamento: describe(SDDL) → train(geração do Plan) → compress(incorporação do grafo) → decode(restauração com binário único)
- Usa control points para escolher, em tempo de execução, o caminho ideal com base em informações estatísticas
- Mesmo com a aplicação de um novo Plan, os dados existentes continuam podendo ser decodificados, preservando a retrocompatibilidade
Vantagens de um único descompressor
- O OpenZL permite restaurar qualquer formato comprimido com um único binário de descompressão
- A validação de segurança e estabilidade precisa ser feita apenas uma vez para aplicação em todo o sistema
- Ao atualizar o descompressor, melhorias de desempenho também passam a valer para todos os dados antigos
- Garante simplicidade operacional e consistência em toda a frota
- Mantém compatibilidade retroativa mesmo gerenciando vários formatos simultaneamente
Resultados de comparação de desempenho
- Em vários conjuntos de dados, alcançou taxa de compressão e velocidade superiores a compressores genéricos como zstd e xz
- SAO: taxa de compressão 2,06x e velocidade de restauração de 1200 MB/s
- ERA5 (dados numéricos): maior taxa de compressão no mesmo tempo, ou maior velocidade na mesma taxa de compressão
- Em datasets Parquet e CSV, também permite otimização personalizada com base no reconhecimento de formato
- No entanto, em dados sem estrutura, como texto, o efeito é limitado, e ele recorre ao zstd como fallback para garantir desempenho mínimo
- É possível escolher várias combinações entre taxa de compressão, velocidade de compressão e velocidade de restauração, oferecendo flexibilidade diferente do ajuste de “nível” dos compressores tradicionais
Evolução dos dados e retreinamento automático
- Integrado ao Managed Compression da Meta, ele retreina automaticamente o plano de compressão quando o formato dos dados muda
- Faz amostragem e avaliação periódicas e, se encontrar um plano melhor, atualiza automaticamente
- O descompressor permanece o mesmo, minimizando o risco operacional
Participação no ecossistema open source e direção futura
- O OpenZL é adequado para dados estruturados em vetores, tabelas e árvores e mostra excelente eficiência em séries temporais, tensores de ML e tabelas de banco de dados
- Para texto sem estrutura (ex.: enwik, dickens etc.), aplica zstd
- Planos futuros:
- Expandir a biblioteca de transformações para séries temporais e dados em grade
- Reforçar a capacidade de expressão de dados aninhados no SDDL
- Melhorar o desempenho e a estabilidade do explorador automático de compressores
- Como participar da comunidade:
- No site oficial do OpenZL e no repositório no GitHub, é possível consultar exemplos e documentação
- Testar novos formatos de dados e propor Plans
- Contribuir com otimização do engine em C/C++, novas transformações e benchmarks
Conclusão
- O OpenZL é uma nova abordagem que padroniza a compressão com reconhecimento de formato e, ao mesmo tempo, pode unificar o ecossistema existente em torno de um único decodificador
- Com isso, a Meta busca melhorar simultaneamente a eficiência de compressão, velocidade e manutenibilidade em todo o datacenter
1 comentários
Comentários no Hacker News