《Born》第14章:模型序列化、检查点与版本管理
格式 扩展名 用途 特点 ------ -------- ------ ------ Born 原生 .born 生产部署 紧凑、加载快、版本兼容 SafeTensors .safetensors 与 HuggingFace 互操作 安全、防注入 GGUF .gguf LLM 模型 llama.cpp 标准格式
训练好的模型需要保存。Born 提供了三种保存格式,各有适用场景。
三种格式
| 格式 | 扩展名 | 用途 | 特点 |
|---|---|---|---|
| Born 原生 | .born | 生产部署 | 紧凑、加载快、版本兼容 |
| SafeTensors | .safetensors | 与 HuggingFace 互操作 | 安全、防注入 |
| GGUF | .gguf | LLM 模型 | llama.cpp 标准格式 |
保存与加载
// 保存
nn.Save(model, "mnist_model.born", "MNISTClassifier", metadata)
// 加载
meta, err := nn.Load("mnist_model.born", backend, &model)
检查点(Checkpoint)
// 保存训练状态(模型 + 优化器 + epoch)
nn.SaveCheckpoint(model, optimizer, "checkpoint_epoch_10.born", epoch, step, loss)
// 恢复训练
epoch, step, loss, err := nn.LoadCheckpoint("checkpoint_epoch_10.born", backend, &model, &optimizer)
版本兼容性
Born 的序列化格式包含版本信息:
[BORN][version:2][model_name][metadata_json][tensor_count][tensors...]
加载时自动检测版本,旧版本格式会触发升级路径。
📘 《Born》连载技术书,第 14/22 章。