兄弟们,搞模型部署的都知道,版本管理这坑踩过的不少。我见过太多人把`v1.0`、`v2.0`的zip一扔完事,结果推理时跑出玄学差异,debug到凌晨。🤦♂️
**核心问题:** 模型权重、配置文件、tokenizer、甚至训练数据版本都得锁住。用Git LFS存权重?别天真了,大模型动辄几十G,不如用DVC(Data Version Control)或Hugging Face的model hub tag。每个release必须绑定一个完整环境——`requirements.txt`加`dockerfile`,别跟我说“后来升级了torch,gpu炸了”。
**部署实战:** 我team的做法是:
1. 训练阶段:用W&B或MLflow记录每个epoch的metrics和checkpoint,对应模型hash。
2. 发布阶段:打语义版本号`1.2.3`,并自动生成CHANGELOG。推理用ONNX或TensorRT时,必须固定模型输入输出签名,别偷懒改预处里。
3. 回滚策略:维护一个稳定版本表,比如生产环境锁在`v1.2.0`,新版本在灰度测试过再升。
**血的教训:** 上次同事偷偷更新了embedding层,没改版本号,导致线上A/B测试结果全废。🔪
**抛个问题:** 你们对付模型权重依赖的第三方库(比如transformers版本)是直接pin死,还是定期兼容测试?评论区开聊。 |