huggingface/xet-core

xet client tech, used in huggingface_hub

解决的问题

xet-core 提供了一个高性能的存储系统,专为 AI 模型和数据集中常见的大型二进制文件设计。通过实现基于分块的去重机制,它解决了这些文件存储和传输效率低下的问题,确保只有文件中唯一的部分被上传或下载,从而减少带宽和存储开销。

工作原理

该项目实现了内容寻址存储(CAS)系统。它将文件拆分为块,并使用数据处理流水线进行分块、去重和重建。利用本地磁盘缓存加速数据检索,并提供 Python 绑定,以便集成到 huggingface_hub 库中。此外,还包含一个与 Git LFS 兼容的 CLI 工具(git-xet),供偏好命令行操作的用户使用。

适用人群

该库主要面向 huggingface_hub 的开发者以及从 Hugging Face Hub 上传或下载大规模 AI 资产的用户,不打算作为独立库供终端用户直接使用。

主要亮点

  • 基于分块的去重:避免在不同二进制文件之间重复传输和存储数据。
  • 本地磁盘缓存:实现基于分块的缓存,优化存储和检索性能。
  • Git LFS 兼容性:通过专用 CLI 工具保持与 Git LFS 的向后兼容性。
  • 跨平台支持:提供 Rust crate 用于核心逻辑,Python 绑定用于易用性。

相关