跳到主要内容
返回时间线
Baseten来源发表:

模型文件不再逐份拷贝:发布一次封成不可变版本,任何部署按摘要挂载,启动不再等整份下载

核心概要

Baseten 把模型权重这类只读数据做成交付网络上的密封卷:发布一次即封成不可变版本,用内容摘要指认,部署按摘要挂载同一份字节。此前同一份检查点会被下载、转存到多处,预发、生产、测试各写一份配置指向副本,有人换了版本往往要等输出不一致才被发现。密封卷把文件切成按内容哈希去重的块,只上传变更部分,并在容器启动时直接挂载,使拉取阶段不再计入启动时间;该能力随 Baseten CLI 1.1.0 及以上版本提供。

Source-provided article image: BDN Sealed Volumes: publish once, mount anywhere
Baseten

深度剖析

模型权重、LoRA 适配器和分词器这类只读文件,现在只要在 Baseten 上发布一次,任意部署挂载到的就是同一份不可变的数据。 在这之前,一份微调检查点先被存进云存储,随后有人下载副本到笔记本上测试、再上传到另一个地方供服务使用,预发、生产、测试各自维护一份配置指向它;有人换成另一版修订时,往往要等两边输出不一致才被发现。 密封后的版本由内容摘要指认,摘要写进配置文件,版本错位因此会出现在配置差异里,回滚也只需把配置改回更早的摘要。

部署启动时不必先把整份模型拉下来:卷挂在配置指定的路径上,字节按模型读取的进度从缓存层流入。 发布走两条命令,baseten volume push 推送本地目录,baseten volume sync 从 Hugging Face 仓库或 S3、GCS 这类桶取数,完成后提交成一个不可变版本;文件被切成块并按内容哈希去重,新检查点只上传与上一版不同的块。 以一个 Hugging Face 上的模型为例,同步作为 Baseten 上的后台作业运行、不落本机,作业就绪后打印密封版本的引用,再由 bdn.mounts 挂到指定路径;源中给出的对照是,weights 块在容器启动前要拉完每个文件、启动时间随模型体积增长,密封卷则在数秒内挂载完成、读取速率与 weights 挂载相同。

启示与展望

密封卷随 Baseten CLI 1.1.0 及以上版本提供,用 Truss 部署还需 0.18.30 及以上,卷挂载在 T4 和 L4 实例上尚不可用。用 weights 块部署的现有服务不需要改配置,迁移会随平台推送自动完成;新权重则可直接同步成卷、再按摘要挂载。

挂载点只读,模型运行时写出的文件要走 b10cache;钉标签而不是摘要的部署,在标签移动后可能同时服务两个版本,源中建议部署钉住摘要;被删除的版本可在 7 天内恢复。