【HUGGINGFACE】Hugging Face 推出 Buckets 存储

Hugging Face 在 Hub 上推出 Storage Buckets,一种面向训练与数据流水线的可变、类 S3 对象存储,基于 Xet 分块去重以节省带宽与存储成本,并支持 CLI、Python/JS SDK 和 fsspec 挂载,便于将“热”数据靠近计算预热。Buckets 适合作为临时工作层,后续可将稳定产物迁移到版本化模型或数据仓库。

概述
– Storage Buckets:Hub 上的非版本化存储容器,支持私有/公开、Hub 权限和浏览页面,地址类似 hf://buckets/username/name。
– 设计目标:用于频繁变更的中间产物(检查点、优化器状态、处理碎片、trace 等),写入快、可覆盖、同步与清理。

Xet 与去重优势
– 基于 Xet 的分块存储,对内容分块并跨文件去重。
– 对于相似数据集或连续检查点,重复块不会重复上传,带宽更少、传输更快、存储更省。
– 企业计费按去重后存储计费,直接降低费用。

预热(Pre-warming)
– 支持将热数据预置到指定云与区域,减少跨区读取延迟,提高分布式训练与大规模流水线吞吐。
– 初期与 AWS、GCP 合作,未来扩展更多云提供商。

使用方式
– CLI(快速上手,2 分钟):
– 安装与登录:curl -LsSf https://hf.co/cli/install.sh | bash; hf auth login
– 创建:hf buckets create my-training-bucket –private
– 同步:hf buckets sync ./checkpoints hf://buckets/username/my-training-bucket/checkpoints
– 预览计划:–dry-run 与 –plan/–apply 支持批量审查与执行
– 其它:hf buckets cp、hf buckets remove、hf buckets list

  • Python SDK(huggingface_hub >= v1.5.0):
  • create_bucket / sync_bucket / list_bucket_tree 等 API 可嵌入训练脚本与管道,支持批量上传、选择性下载、删除与迁移。

  • JavaScript:@huggingface/hub(自 v2.10.5 起)支持在 Node.js 与 Web 应用中集成。

文件系统集成(fsspec)
– 通过 HfFileSystem(hffs)支持标准文件操作:ls、glob、open 等。
– 与 pandas、Polars、Dask 等库无缝互通,直接使用 hf:// 路径读写数据。

工作流定位与路线图
– Buckets 是“工作层”(快速、可变);当产物成熟时,推荐将其迁移到版本化的 model/dataset 仓库。
– 未来计划支持 Buckets 与版本化仓库之间的双向直接传输,简化从临时产物到发布资产的流程。

资源与落地
– 可在 Hub 浏览 Bucket 页面或用 CLI/SDK 管理;文档与示例代码已发布在 Hugging Face 博客与相应 repo。

Buckets 很好地补齐了 Hugging Face 在 ML 工件管理上的空白,分块去重与 fsspec 支持对工程化落地很有帮助。

原文链接

Leave a Comment