Hugging Face Hub 存储重构

Hugging Face 正在重新架构 Hub 的存储后端,以使用内容寻址存储(CAS)替换不透明的 blob 传输。此转变使平台能够在字节级别分析文件,从而实现去重和压缩,显著提升巨型模型权重和数据集的传输。

过渡到内容寻址存储(CAS)

Hugging Face 正在基于“愚蠢读取和聪明写入”哲学实现一个自定义协议,以克服 AWS CloudFront 的 50GB 文件大小限制以及将文件视为不透明 blob 的低效率。

读取路径(愚蠢读取)

为了保持高吞吐量和低延迟,读取路径被设计为简单。文件请求将被路由到 CAS 服务器,该服务器提供必要的重建信息。实际数据仍然存储在 us-east-1 区域的 S3 存储桶中,并继续通过 AWS CloudFront 作为 CDN 提供服务。

写入路径(聪明写入)

写入路径通过在块而非整个文件上进行操作来优化速度和安全性。当用户上传数据时,CAS 服务器会识别现有的块,并指示客户端(例如 huggingface_hub)仅传输新的、唯一的块。这些块在被上传到 S3 后备存储之前会由 CAS 进行验证。

技术优化和功能

通过在字节级别管理文件,Hugging Face 可以应用特定格式的优化来减少上传时间:

  • Tensor Files: 团队正在研究对 tensor 文件(例如 Safetensors)进行压缩,这可能会将上传速度降低 10-25%。
  • Parquet Files: 该架构使得对 Parquet 文件的去重更加高效。
  • Enterprise Security: 通过插入用于文件传输的控制平面,平台可以防止上传恶意或无效数据,并为基础设施团队提供详细的审计跟踪和遥测。

全球基础设施设计

为了最小化延迟并平衡成本,Hugging Face 正在根据对来自 88 个国家的上传流量的分析,在三个战略 AWS 区域部署 CAS 节点:

  • **us-east-1 (北美和南美):4 个节点
  • **eu-west-3 (欧洲、中东和非洲):4 个节点
  • **ap-southeast-1 (亚洲和大洋洲):2 个节点

此分布针对负责上传量绝大多数的地区,其中美国和欧洲占上传字节的 78.4%,亚洲占 21.6%。

实施路线图

Hugging Face 预计将在 2024 年底之前将新基础设施投入生产,起点是 us-east-1 区域的单个 CAS。推出将分阶段进行:

  1. Internal Benchmarking: 将内部仓库复制到新系统以测试传输性能。
  2. Regional Expansion: 在额外的存在点(PoPs)复制 CAS。
  3. Full Integration: 在 2025 年完成存储后端过渡。

Sources