Parquet Content-Defined Chunking Potencializa Deduplicação com Xet no Hugging Face
Sources: https://huggingface.co/blog/parquet-cdc, Hugging Face Blog
TL;DR
- Parquet Content-Defined Chunking (CDC) está disponível no PyArrow e Pandas e funciona com o storage Xet do Hugging Face para deduplicação eficiente.
- CDC deduplica dados no nível de páginas de dados antes da serialização e compressão, reduzindo uploads/downloads entre repositórios e arquivos.
- Ative Parquet CDC passando
use_content_defined_chunking=Trueao gravar Parquet; URIs do PyArrow podem ser usados com o esquemahf://para leituras/escritas no Hub. - A combinação CDC + Xet reduz significativamente a transferência de dados e os custos de armazenamento para grandes conjuntos de dados no Hugging Face.
Contexto e antecedentes
Parquet é um formato de armazenamento em colunas amplamente utilizado na engenharia de dados, e o Hugging Face hospeda uma grande quantidade de dados Parquet no Hub. O novo storage Xet usa chunking definido pelo conteúdo para deduplicar blocos de dados, reduzindo custos de armazenamento e acelerando uploads e downloads. Como o layout do Parquet—especialmente os blocos de coluna e as páginas de dados—pode produzir representações em bytes diferentes para pequenas alterações, a deduplicação pode ser subótima sem um chunking alinhado ao conteúdo. É aí que o CDC entra: ele alinha os limites dos blocos com os valores lógicos, permitindo deduplicação mais eficaz antes da serialização ou compressão.
O texto utiliza o conjunto de demonstração OpenOrca para ilustrar o fluxo. A partir do PyArrow 21.0.0, URIs do Hugging Face podem ser usados diretamente em funções PyArrow para ler e gravar Parquet (e outros formatos) no Hub via o esquema hf://. Essa integração viabiliza operações de fim a fim de Parquet no Hub sem sair do ambiente, demonstrando como o CDC interage com o Xet para deduplicação entre repositórios e arquivos. O objetivo maior é reduzir a transferência de dados mantendo a acessibilidade e a compatibilidade com readers/ Writers existentes. Hugging Face Blog.
Arquivos tradicionais não deduplicam entre repositórios, levando a reenvios e redownloads completos. Em contraste, um sistema que utiliza chunking definido pelo conteúdo pode reconhecer conteúdo idêntico e evitar transferir dados não alterados. O post explica que tabelas idênticas enviadas ao Hub podem ser transferidas instantaneamente com CDC, e a deduplicação funciona entre repositórios. Esse recurso cross-repositório é uma capacidade chave do Xet para facilitar compartilhamento de dados. Hugging Face Blog.
As demonstrações incluem observações sobre como a deduplicação muda quando novas colunas são adicionadas, removidas ou com mudanças de tipos, com heatmaps e estimativas de deduplicação para entender onde os dados são transferidos. Hugging Face Blog.
Para ilustrar o mecanismo, o post mostra que ativar o Parquet CDC resulta em transferências significativamente menores ao enviar o conjunto original e o alterado, em comparação com o caso sem CDC. Os mesmos benefícios também aparecem para downloads via huggingface_hub.hf_hub_download() e datasets.load_dataset(). Hugging Face Blog.
O que há de novo
As atualizações centrais são: um recurso Parquet CDC disponível nos escritores Parquet e um sistema que aproveita o storage Xet para deduplicar no nível de páginas de dados. Pontos-chave:
- CDC Parquet está disponível no PyArrow e no Pandas, com deduplicação aprimorada pelo Xet.
- Ativar CDC é simples: use
write_parquetcomuse_content_defined_chunking=True. Também é possível trabalhar com URIshf://para operações no Hub. Hugging Face Blog. - Os benefícios de deduplicação dependem de como as mudanças se distribuem pelas páginas; mudanças que afetam muitas páginas podem reduzir o ganho, enquanto alterações localizadas tendem a melhorar. CDC atua no nível de páginas de dados da Parquet, antes da serialização/compressão. Hugging Face Blog.
- Os escritores de Parquet utilizam grupos de linhas de tamanho fixo por padrão (PyArrow padrão é 1 Mi de linhas). Os escritores de datasets podem ajustar esse tamanho para equilibrar desempenho de acesso aleatório e uso de memória. Mudanças que deslocam linhas entre os grupos de linhas afetam páginas de dados, e CDC ajuda a mitigar esse impacto. Hugging Face Blog.
- Em datasets com vários arquivos, CDC + Xet pode deduplicar dados mesmo quando os arquivos são divididos em fronteiras diferentes, apoiando paralelismo eficiente. Hugging Face Blog.
- Leitores e ferramentas de download também se beneficiam do CDC, mantendo compatibilidade com caminhos de leitura etc. Hugging Face Blog.
Por que isso importa (impacto para desenvolvedores/empresas)
Para equipes que lidam com grandes volumes de dados, CDC Parquet com Xet se traduz em reduções de custo e tempo. Benefícios práticos:
- Transferência de dados significativamente menor durante uploads e downloads devido à deduplicação entre arquivos e repositórios.
- Custos de armazenamento reduzidos por não regravar dados já conhecidos pelo storage.
- Melhor colaboração entre equipes, com atualizações de dados sem reenvio completo.
- Compatibilidade com fluxos de trabalho Parquet existentes, ganhando eficiência de CDC e Xet. Na prática, organizações com grandes datasets Parquet no Hub podem esperar ciclos de iteração mais rápidos para atualizações e menor largura de banda necessária para distribuição. A abordagem está alinhada a metas maiores de gestão de armazenamento, reduzindo o desperdício de movimento de dados sem sacrificar acessibilidade. Hugging Face Blog.
Detalhes técnicos ou Implementação
Resumo prático para incorporar CDC Parquet em fluxos de trabalho:
- CDC Parquet é suportado no PyArrow 21.0.0+ e no Pandas, permitindo chunking baseado no conteúdo antes da serialização e compressão. A integração com Xet facilita a deduplicação entre arquivos e repositórios.
- Para habilitar CDC, use
write_parquetcomuse_content_defined_chunking=True. Em PyArrow, URIshf://podem ser usados para leituras/escritas no Hub. Hugging Face Blog. - Os benefícios de deduplicação dependem da distribuição de mudanças. Se a maioria das páginas for afetada, o ganho tende a diminuir. CDC funciona no nível de páginas de dados da Parquet, antes da serialização/compressão. Hugging Face Blog.
- Os ajustes de tamanho de row-group (por exemplo, 1 Mi linhas por padrão) influenciam como mudanças se distribuem entre grupos e páginas; ajustar isso pode melhorar desempenho ou uso de memória. Hugging Face Blog.
- Em datasets com vários arquivos, CDC + Xet deduplicam dados mesmo que os arquivos estejam particionados em fronteiras diferentes, mantendo paralelismo eficiente. Hugging Face Blog.
- Leitores e ferramentas de download também tiram proveito do CDC, com suporte a
hf_hub_download()edatasets.load_dataset(). Hugging Face Blog. Considerações incluem escolher o tamanho adequado de row-group para o workload específico e reconhecer que a distribuição de mudanças limita o ganho de deduplicação. O CDC opera no nível de páginas de dados da Parquet, o que facilita chunking consistente e deduplicação entre atualizações. Hugging Face Blog.
Principais pontos (Key takeaways)
- CDC Parquet traz chunking definido pelo conteúdo para melhorar a deduplicação no storage Xet.
- Ativação de CDC é simples com
use_content_defined_chunking=Truee funciona com URIshf://para operações no Hub. - A combinação reduz transferência de dados e custos de armazenamento, além de facilitar deduplicação entre arquivos e repositórios.
- O tamanho de row-group e a distribuição de mudanças influenciam o desempenho da deduplicação; CDC mitiga muitos desafios, chunking por conteúdo.
- Leitores, escritores e ferramentas de download se beneficiam de fluxos CDC-enabled, mantendo compatibilidade com pipelines Parquet existentes. Hugging Face Blog.
FAQ
-
O que é Parquet Content-Defined Chunking (CDC)?
CDC é um recurso do Parquet que chunking páginas de dados com base no conteúdo para melhorar a deduplicação ao gravar dados, especialmente em storage de endereço de conteúdo como Xet. [Hugging Face Blog](https://huggingface.co/blog/parquet-cdc).
-
Como o CDC interage com o storage Xet do Hugging Face?
O CDC alinha os limites dos blocos com os valores de dados, permitindo deduplicação mais eficiente entre arquivos e repositórios no Xet. [Hugging Face Blog](https://huggingface.co/blog/parquet-cdc).
-
Como habilito o Parquet CDC no meu fluxo de trabalho?
Utilize `write_parquet` com `use_content_defined_chunking=True` no PyArrow (o Pandas também suporta). A leitura/escrita no Hub pode usar `hf://` URIs. [Hugging Face Blog](https://huggingface.co/blog/parquet-cdc).
-
Existem trade-offs ou limitações?
O ganho de deduplicação depende de como as mudanças se distribuem pelas páginas; mudanças que afetam muitas páginas podem reduzir o benefício. O tamanho do row-group e a divisão em múltiplos arquivos também influenciam. [Hugging Face Blog](https://huggingface.co/blog/parquet-cdc).
Referências
More news
Scaleway Como Novo Fornecedor de Inferência no Hugging Face para Inferência serverless de Baixa Latência
A Scaleway é agora um Fornecedor de Inferência compatível no Hugging Face Hub, permitindo inferência serverless diretamente nas páginas de modelo com as SDKs JS e Python. Acesse modelos abertos populares com operações escaláveis e baixa latência.
Faça seus ZeroGPU Spaces trabalharem rápido com compilação ahead-of-time do PyTorch
Spaces com ZeroGPU ganham demos mais rápidas em hardware Nvidia H200 por meio da compilação ahead-of-time (AoT) do PyTorch, com inicialização mais ágil e inferência eficiente, suporte a FP8 e formas dinâmicas.
Faça seus ZeroGPU Spaces ficarem mais rápidos com compilação AoT do PyTorch
Descubra como a compilação ahead-of-time (AoT) do PyTorch acelera ZeroGPU Spaces em GPUs Nvidia H200, com recarregamento instantâneo, quantização FP8, formas dinâmicas e ganhos de desempenho práticos (1,3x–1,8x) para Flux, Wan e LTX.
Gerar imagens com Claude e Hugging Face: ferramentas de IA fáceis de usar
Claude se conecta ao Hugging Face Spaces para acessar modelos de imagem de ponta, permitindo resultados realistas e com texto via MCP Server, com ferramentas como FLUX.1-Krea-dev e Qwen-Image.
Nemotron Nano 2 Open 9B para Raciocínio lidera ranking com 6x de Throughput
O Nemotron Nano 2 9B da NVIDIA é um modelo de raciocínio enterprise aberto, com backbone híbrido Transformer–Mamba e orçamento de pensamento configurável, oferecendo até 6x de throughput e potencial economia de até 60% em inferência para pipelines edge a nuvem.
Do Zero à GPU: Construindo e escalando Kernels CUDA de produção com Kernel-Builder
Guia completo para criar, validar e distribuir kernels CUDA de produção usando o Kernel Builder da Hugging Face. Aprenda a registrar kernels no PyTorch, garantir builds multi- arquitetura e publicar via Hugging Face Hub.