Parquet Content-Defined Chunking facilita la deduplicación con Xet en Hugging Face
Sources: https://huggingface.co/blog/parquet-cdc, Hugging Face Blog
TL;DR
- Parquet Content-Defined Chunking (CDC) ya está disponible en PyArrow y Pandas y funciona con el almacenamiento Xet de Hugging Face para deduplicación eficiente.
- CDC deduplica datos a nivel de páginas de datos antes de la serialización y compresión, reduciendo cargas y descargas entre repositorios y archivos.
- Activa Parquet CDC pasando
use_content_defined_chunking=Trueal escribir Parquet; las URIs de PyArrow se pueden usar con el esquemahf://para lecturas/escrituras en el Hub. - La combinación CDC + Xet reduce significativamente la transferencia de datos y los costos de almacenamiento para grandes conjuntos de datos en Hugging Face.
Contexto y antecedentes
Parquet es un formato de almacenamiento en columnas ampliamente utilizado en ingeniería de datos, y Hugging Face alberga una gran cantidad de datos Parquet en el Hub. El nuevo almacenamiento Xet utiliza chunking definido por el contenido para deduplicar bloques de datos, reduciendo costos de almacenamiento y acelerando uploads y downloads. Dado que la disposición de Parquet, especialmente los bloques de columna y las páginas de datos, puede generar representaciones en bytes distintas ante cambios pequeños, la deduplicación puede ser subóptima sin un chunking que se adapte al contenido. Aquí entra CDC: alinea los límites de los chunks con los valores de datos lógicos, permitiendo una deduplicación más eficaz antes de serialización o compresión.
La demostración utiliza un subconjunto manejable del conjunto de datos OpenOrca para ilustrar el flujo. A partir de PyArrow 21.0.0, las URIs de Hugging Face pueden utilizarse directamente en funciones de PyArrow para leer y escribir Parquet (y otros formatos) en el Hub mediante el esquema hf://. Esta integración permite operaciones de extremo a extremo de Parquet en el Hub sin salir del entorno y muestra cómo CDC interactúa con Xet para deduplicación entre repos y archivos. El objetivo es reducir la transferencia de datos manteniendo la accesibilidad y compatibilidad con lectores/escritores existentes. Hugging Face Blog.
Los sistemas tradicionales no deduplican archivos entre repos, lo que lleva a recargas y redescargas completas. En cambio, un sistema que utiliza chunking definido por el contenido puede reconocer contenido idéntico y evitar transferir datos sin cambios. El artículo muestra que tablas idénticas enviadas al Hub pueden transferirse instantáneamente cuando se habilita CDC, y la deduplicación funciona entre repos. Esta capacidad entre repos es una característica clave de Xet para facilitar el intercambio de datos. Hugging Face Blog.
Las demostraciones analizan cómo la deduplicación cambia cuando se agregan o eliminan columnas o cuando se cambian tipos, apoyándose en heatmaps y estimaciones para entender dónde se transfieren los datos. Hugging Face Blog.
Para ilustrar el mecanismo, el artículo muestra que activar Parquet CDC da lugar a transferencias mucho menores al subir el conjunto original y el modificado, en comparación con el caso sin CDC. Los mismos beneficios también se observan para descargas a través de huggingface_hub.hf_hub_download() y datasets.load_dataset(). Hugging Face Blog.
Novedades
Los puntos centrales son: soporte de CDC Parquet en PyArrow y Pandas para optimizar la deduplicación con Xet; activar CDC con use_content_defined_chunking=True y usar URIs hf:// para operaciones en el Hub. Hugging Face Blog.
- Los beneficios de deduplicación dependen de cómo se distribuyen los cambios; si la mayor parte de las páginas se ve afectada, el beneficio puede disminuir. CDC trabaja a nivel de páginas de datos Parquet, antes de serialización y compresión. Hugging Face Blog.
- Los creadores de Parquet usan por defecto grupos de filas fijos; ajustar ese tamaño puede mejorar el rendimiento de acceso aleatorio o la memoria. Cambiar la frontera de los grupos puede mover valores entre páginas y afectar la deduplicación. Hugging Face Blog.
- En datasets con múltiples archivos, CDC + Xet deduplican datos incluso cuando los archivos están particionados en límites diferentes, favoreciendo el paralelismo y el acceso. Hugging Face Blog.
Por qué importa (impacto para desarrolladores/empresas)
Para equipos que manejan grandes volúmenes de datos, CDC Parquet en Xet se traduce en costos y tiempos de transferencia reducidos. Beneficios prácticos:
- Transferencias de datos mucho menores durante cargas y descargas gracias a la deduplicación entre archivos y repos.
- Costos de almacenamiento reducidos al evitar reescribir datos ya conocidos por el storage.
- Mejor colaboración entre equipos, con actualizaciones de datos sin necesidad de re-subir todo.
- Compatibilidad con flujos Parquet existentes, con beneficios de CDC y Xet. En la práctica, las organizaciones con grandes conjuntos Parquet en el Hub pueden esperar ciclos de iteración más rápidos y menor uso de banda ancha para distribución. Este enfoque se alinea con objetivos amplios de gestión de almacenamiento, reduciendo movimientos innecesarios de datos sin sacrificar la accesibilidad. Hugging Face Blog.
Detalles técnicos o Implementación
Resumen práctico para incorporar CDC Parquet en flujos de trabajo:
- CDC Parquet es compatible con PyArrow 21.0.0+ y Pandas, permitiendo chunking basado en contenido antes de la serialización y compresión. La integración con Xet facilita la deduplicación entre archivos y repos.
- Para habilitar CDC, use
write_parquetconuse_content_defined_chunking=True. Las URIshf://pueden usarse para acceder al Hub. Hugging Face Blog. - Los beneficios de deduplicación dependen de la distribución de cambios; si la mayor parte de las páginas se ve afectada, el beneficio puede disminuir. CDC funciona a nivel de páginas de datos Parquet, antes de la serialización y compresión. Hugging Face Blog.
- El tamaño de row-group por defecto y la distribución de archivos pueden influir en la deduplicación; ajustar estos parámetros puede mejorar rendimiento o uso de memoria. Hugging Face Blog.
- En datasets con múltiples archivos, CDC + Xet deduplican datos incluso cuando los archivos están en fronteras distintas, favoreciendo paralelismo y acceso eficiente. Hugging Face Blog.
- Lectores y herramientas de descarga se benefician de CDC, con soporte para
hf_hub_download()ydatasets.load_dataset(). Hugging Face Blog. Consideraciones: elegir el tamaño adecuado de row-group según la carga de trabajo y entender que la distribución de cambios influye en el rendimiento. CDC se aplica a nivel de páginas de datos Parquet, lo que facilita un chunking coherente y una deduplicación más efectiva durante actualizaciones. Hugging Face Blog.
Principales conclusiones (Key takeaways)
- CDC Parquet aporta chunking definido por el contenido para mejorar la deduplicación en Xet.
- Activarlo con
use_content_defined_chunking=Truefunciona con URIshf://para operaciones en el Hub. - Esta combinación reduce transferencia de datos y costos de almacenamiento, y facilita deduplicación entre archivos y repos.
- El tamaño de row-group y la distribución de cambios influyen en el rendimiento; CDC mitiga muchos retos asociados.
- Lectores, escritores y herramientas de descarga se benefician de flujos CDC-enabled manteniendo la compatibilidad con pipelines Parquet existentes. Hugging Face Blog.
Preguntas frecuentes (FAQ)
- Q: ¿Qué es Parquet Content-Defined Chunking (CDC)? A: CDC chunking las páginas de datos Parquet según el contenido para mejorar la deduplicación durante la escritura, especialmente en almacenamiento orientado a contenido como Xet. Hugging Face Blog.
- Q: ¿Cómo interactúa CDC con el almacenamiento Xet de Hugging Face? A: CDC alinea los límites de los bloques con los valores de datos, permitiendo una deduplicación más eficiente entre archivos y repos en Xet. Hugging Face Blog.
- Q: ¿Cómo activo CDC Parquet en mi flujo de trabajo?
A: Usa
write_parquetconuse_content_defined_chunking=True. El acceso al Hub víahf://es compatible para lecturas/escrituras. Hugging Face Blog. - Q: ¿Existen trade-offs o limitaciones? A: La ganancia de deduplicación depende de la distribución de cambios: si la mayoría de las páginas se ve afectada, el beneficio puede disminuir. La configuración del row-group y la división en archivos también influyen. Hugging Face Blog.
Referencias
More news
Scaleway se une a los Proveedores de Inferencia de Hugging Face para Inferencia Serverless y de Baja Latencia
Scaleway es ahora un Proveedor de Inferencia soportado en Hugging Face Hub, lo que permite inferencia serverless directamente en las páginas de modelos con los SDK de JS y Python. Accede a modelos open-weight populares y disfruta de flujos de IA escalables y de baja latencia.
Acelera ZeroGPU Spaces con la compilación AoT de PyTorch
Descubre cómo la compilación Ahead-of-Time (AoT) de PyTorch acelera ZeroGPU Spaces exportando y recargando modelos optimizados, con cuantización FP8, formas dinámicas y demos prácticas.
Haz que tus ZeroGPU Spaces vayan más rápido con la compilación AoT de PyTorch
Descubre cómo la compilación ahead-of-time (AoT) de PyTorch acelera ZeroGPU Spaces en GPUs Nvidia H200, con recarga instantánea, cuantización FP8, formas dinámicas y ganancias de rendimiento (1.3×–1.8×) para Flux, Wan y LTX.
Generar imágenes con Claude y Hugging Face: conectar Claude a Spaces vía MCP
Descubre cómo Claude puede generar imágenes de alta calidad conectándose a Hugging Face Spaces a través del MCP Server, usando FLUX.1-Krea-dev para realismo y Qwen-Image para renderizado de texto preciso, con pasos prácticos.
Nuevo Nemotron Nano 2: modelo de razonamiento abierto líder con 6x de rendimiento
El Nemotron Nano 2 9B es un modelo de razonamiento abierto para precisión empresarial y eficiencia en el edge, que ofrece 6x de rendimiento y un presupuesto de pensamiento configurable.
De Cero a GPU: Construcción y Escalado de Kernels CUDA Listos para Producción con Kernel Builder
Guía completa para diseñar, compilar y desplegar kernels CUDA de producción usando Hugging Face Kernel Builder, con bindings de PyTorch, builds multi-arquitectura y distribución en Hub.