Hub documentation

Xet:我们的存储后端

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Xet:我们的存储后端

Hugging Face Hub 上的仓库与软件开发平台上的仓库有所不同。它们包含的文件是:

  • Large - 模型或数据集文件的大小在 GB 及以上。我们有一些 TB 级别的文件!
  • 二进制 - 默认情况下不是人类可读的格式(例如,Safetensors 或 Parquet)

虽然 Hub 借助 Git 支持采用了现代版本控制,但这些差异使得 Model 和 Dataset 仓库与仅包含源代码的仓库大不相同。

将这些文件直接存储在纯 Git 仓库中是不切实际的。不仅 Git 仓库背后的典型存储系统不适合存储此类文件,而且当你克隆一个仓库时,Git 会获取完整的历史记录,包括所有文件的修订版本。对于大型二进制文件,这可能会变得极其庞大,迫使你下载数吉字节可能永远用不到的历史数据。

相反,在 Hub 上,这些大文件通过“指针文件”进行跟踪,并通过 .gitattributes 文件进行识别(两者均将在下文详细讨论),这些文件保留在 Git 仓库中,而实际数据则存储在远程存储(如 Amazon S3)中。因此,仓库保持小巧,典型的 Git 工作流依然高效。

从历史上看,Hub 仓库一直依赖 Git LFS 来实现此机制。虽然 Git LFS 仍受支持(参见 向后兼容与遗留),但 Hub 已采用 Xet,这是一种专为 AI/ML 开发而构建的现代自定义存储系统。与 Git LFS 相比,它支持块级去重、更小的上传体积以及更快的下载速度。

开源 Xet 协议

如果您希望了解 Xet 协议的底层机制,或希望构建一个新的客户端库来访问 Xet Storage,请参阅 Xet 协议规范。

在这些页面中,您将开始学习如何使用 Xet Storage。

目录

Update on GitHub