ML 团队每个月最大的隐形开支不是 GPU,不是人力,而是那张谁都不愿细看的 egress 账单。Hugging Face 和 SkyPilot 刚刚联手把这块成本砍到了零——不是优惠,不是补贴,是直接不收。这件事值得每一个正在做多云机器学习基础设施的团队认真琢磨。
Egress 费用:多云机器学习的隐性税
那张让你心跳加速的账单
做过跨云部署的人都知道,AWS、GCP、Azure 的出站流量费是一把钝刀。单价看起来不高——每 GB 几美分——但模型仓库动辄几百 GB,频繁拉取 checkpoint、数据集、微调变体,一个月下来账单可以轻松突破五位数。更扎心的是,这笔钱跟你的模型效果毫无关系,纯粹是在为数据搬砖买单。
很多团队一开始选了便宜的 GPU 集群,结果发现数据在另一个云上,光是把模型搬过去就把省下来的算力费吃掉了。多云架构听起来很美,落地时被 egress 费卡住脖子的案例比比皆是。
"多云"怎么就变成了一个脏词
理论上,多云策略能让你在 Spot 实例、预留实例、不同区域定价之间灵活腾挪,把算力成本压到最低。但现实是,一旦数据被锁在某朵云的存储桶里,你的算力就也被那朵云绑架了。这不是技术限制,是商业设计。云厂商靠出站费构建了一条隐形的护城河,你用得越深,迁移成本越高。
ML 团队尤其吃亏。训练一个大模型需要反复从存储拉数据,推理阶段又要频繁加载模型权重,每一次跨云读取都在给云厂商交过路费。久而久之,很多团队干脆放弃了多云,选择就地部署——这恰恰是云厂商最希望看到的结果。
Hugging Face Storage 进入 SkyPilot:怎么打通的
一个 URL,一套凭证,完事
这次集成的优雅之处在于极简。用户只需要一个 hf:// 前缀的 URL 和现有的 Hugging Face Token(HFTOKEN),就能把 Hugging Face 的存储挂载到 SkyPilot 任务里。不需要额外配置 IAM 角色,不需要跨账号授权,不需要折腾 VPC Peering。对于已经习惯用 Hugging Face 托管模型和数据集的团队来说,几乎零学习成本。
具体来说,Hugging Face Bucket 支持读写操作,适合存放训练过程中的 checkpoint、日志、中间产物;模型仓库、数据集仓库和 Space 仓库则以只读模式挂载,适合作为训练数据源和预训练权重的入口。两种存储形态覆盖了 ML 工作流中绝大部分场景。
MOUNT 还是 COPY,看你工作流
SkyPilot 为这次集成提供了两种数据访问模式。MOUNT 模式基于 FUSE 实现懒加载——文件只有在被实际读取时才会从 Hugging Face 拉取,不会提前把整个仓库下载到本地。这对大模型场景特别友好:你不需要在任务启动前等半天下载几百 GB 的权重,程序跑到哪一层就加载哪一层的参数。
COPY 模式则是把数据一次性复制到任务节点的本地磁盘。适合数据量不大、但对 I/O 延迟极其敏感的场景,比如高频随机读取的训练数据。两种模式各有取舍,SkyPilot 没有替你做决定,而是把选择权留给了用户。
账算清楚了:跨云读取的经济学
零出口费不是噱头
Hugging Face 这次最硬的承诺是:不收取出站费用和 CDN 费用。这意味着无论你的 SkyPilot 任务跑在 AWS、GCP、Azure,还是 Kubernetes 集群、Slurm 集群甚至本地机器上,从 Hugging Face Storage 读取数据的成本都是零——除了存储本身的费用。
这不是"前 N GB 免费"的营销套路,也不是限时优惠。Hugging Face 的商业模式建立在 API 服务、企业版功能和社区生态上,存储层是基础设施,不是利润中心。这个定位差异决定了它可以做出传统云厂商不愿意做的定价策略。
存储单价本身也够卷
Hugging Face Storage 的定价在 $12–18/TB/月 之间,低于 AWS S3 标准存储的价格。考虑到 S3 还要另付出站费,实际成本差距更大。对于那些在多个云之间反复拉取数据的团队来说,把模型和数据集统一放到 Hugging Face Storage 上,然后用 SkyPilot 按需调度算力,总账单可以显著下降。
SkyPilot 本身支持 20 多个云厂商,以及 Kubernetes、Slurm 和本地集群。它做的事情本质上是帮你找到当前最便宜的可用 GPU,然后把任务调度过去。当数据存储不再绑定特定云厂商时,算力调度的自由度才是真正打开了。Hugging Face Storage 去掉了数据侧的锁定,SkyPilot 去掉了算力侧的锁定——两者组合,多云策略才第一次在 ML 场景下真正可行。
Xet 引擎:不只便宜,还更快
增量传输改变游戏规则
Hugging Face Storage 底层跑的是 Xet 引擎,这不是一个普通的对象存储方案。Xet 的核心能力是增量存储和增量传输——当你修改一个模型仓库里的几个文件,或者只更新了 checkpoint 中某些层的权重,Xet 只会存储和传输那些实际发生变化的数据块,而不是整个文件或整个仓库。
在 ML 工作流中,这种能力的价值被严重低估了。模型迭代是高度增量的:你改了学习率、调了几个超参数、微调了最后几层,产生的新 checkpoint 跟上一版可能只有 5%–10% 的差异。传统存储方案会把这些版本当成完全独立的对象,每次都全量上传、全量下载。Xet 则只处理差量部分,传输时间、存储占用、带宽消耗都大幅缩减。
模型变体管理变得轻松
增量能力对模型变体管理的意义更大。一个基础模型衍生出几十个微调版本是常态,如果每个版本都独立存储完整的权重文件,存储成本会线性增长。Xet 的去重和增量机制让这些变体共享相同的数据块,只保留差异部分。这不仅省钱,还让版本之间的切换和回滚变得更快——毕竟只需要拉取变化的那一小部分。
结合 SkyPilot 的 MOUNT 模式,这种增量传输能力被进一步放大。FUSE 懒加载意味着你甚至不需要预先知道需要哪些文件,程序运行时按需拉取,Xet 确保每次拉取都是最小化的数据量。整个链路从存储到传输到计算,每一环都在做减法。
谁最该关注这件事
多云 GPU 猎人
有一类团队的日常就是在各个云之间抢 Spot 实例——AWS 的 A100 今天便宜就用 AWS,明天 GCP 的 H100 到货了就切过去。SkyPilot 本来就是为这种场景设计的,但过去数据迁移是个大问题。现在 Hugging Face Storage 作为统一数据层,这些团队可以真正做到"算力跟着价格走,数据纹丝不动"。
对于训练成本敏感的创业公司和研究团队,这意味着可以把算力成本优化到接近理论极限,同时完全不用担心数据搬运带来的额外开销和延迟。
开源模型的分发网络
Hugging Face 早已是开源模型的事实标准托管平台。这次跟 SkyPilot 的集成相当于给整个开源模型生态接上了一个分布式计算网络。任何人想要跑一个开源模型,不再需要先下载到自己的服务器上——直接在 SkyPilot 调度的任意 GPU 上挂载 Hugging Face 仓库,即时加载,即开即用。
这对模型的采用速度有直接影响。过去,部署一个 70B 参数的模型可能需要花几个小时下载权重,现在通过 FUSE 懒加载,启动时间可以压缩到分钟级。降低部署门槛就是在降低采用门槛。
企业 ML 平台团队
对于内部有 ML 平台的公司,这次集成提供了一个现成的架构参考。存储层用 Hugging Face(或者类似的无 egress 费用的对象存储),计算层用 SkyPilot 做多云调度,中间用标准协议串联。这种解耦架构的好处是每一层都可以独立替换和优化,不会被任何单一厂商锁定。
更重要的是,这种架构天然支持混合部署。敏感数据可以留在私有集群,公开的预训练模型和数据集放在 Hugging Face Storage 上,SkyPilot 根据数据位置和成本自动选择最优的执行环境。灵活性和经济性同时到手。
这步棋的更大图景
存储与算力解耦的终局
云计算发展了十几年,存储和计算始终是绑定销售的。你用 S3 就得用 EC2,你用 GCS 就得用 GCE——不是技术上必须,是商业上被设计成这样。Hugging Face 和 SkyPilot 这次合作的真正意义不在于便宜了几块钱,而是展示了一种新的可能性:存储层和计算层可以完全独立选择,各自找最优解。
这种解耦一旦成为行业共识,云厂商的定价策略就必须调整。出站费用这块利润丰厚的灰色地带,正在被开源社区和新一代基础设施公司一点点撬开。Hugging Face 选择不收出站费,不是因为慈善,而是因为它在更高层面有更清晰的商业逻辑——把存储做成公共基础设施,靠上层服务赚钱。
ML 基础设施的竞争维度在转移
过去三年,ML 基础设施的竞争集中在 GPU 供应和训练框架上。下一阶段的竞争会转向数据管道和成本优化。谁能用最低的总成本把数据高效送进 GPU,谁就能在模型训练和推理上获得结构性优势。
Hugging Face Storage 加入 SkyPilot 生态,是这个趋势的一个清晰信号。存储不再是被动的数据仓库,而是主动参与计算调度的一环。当数据的位置、传输成本、加载延迟都变成可编程的变量时,ML 工程师手里的优化空间比以前大得多了。这不是一个小更新,而是基础设施层面的一次重要棋子落定。

