Skip to content

MLOps 与模型部署

本页速览 实验室里调通的模型距离可靠产品还差一整条工程链。本文覆盖 DL 生命周期全景、实验跟踪与模型注册、在线/批处理/边缘三种部署、量化/蒸馏/剪枝等推理优化、数据与概念漂移监控,以及 CI/CD、成本与延迟的权衡。

MLOps 与模型部署

一句话定义:MLOps(机器学习运维)是把"能跑通训练的模型"变成"稳定可靠、可监控、可迭代的服务"的全部工程实践。深度学习模型的特殊之处在于:它不只是一段代码,而是"代码 + 数据 + 权重"的三位一体,因此生命周期管理比传统软件复杂得多。

一、DL 生命周期全景

一个深度学习项目从想法到产品,通常经历这些阶段(循环往复):

问题定义 → 数据工程 → 实验/训练 → 评估/选型 → 部署/推理 → 监控/反馈 → 再训练

与传统软件的关键差异:

  1. 模型是"从数据里长出来的"——数据的分布变化意味着模型会"过期"。
  2. 效果无法静态保证——上线前验证集分数 ≠ 线上表现,必须持续监控。
  3. 性能取决于环境——GPU 驱动、框架版本、精度模式都可能改变行为。

生命周期每一环的评估方法论见深度学习评估与实验,数据侧见数据与数据工程,本文聚焦"训练之后"的工程链。

二、实验跟踪与模型注册

没有记录的实验等于没做。两个核心组件:

实验跟踪(experiment tracking):记录每一次训练的完整上下文——代码版本(git commit)、数据版本、超参数、随机种子、每个 epoch 的指标、训练日志、生成的可视化。主流工具:

  • Weights & Biases(W&B):交互式看板、sweep 超参搜索(优化与梯度下降里的贝叶斯搜索常用它跑)、团队协作友好。
  • MLflow:开源、自带 Tracking + Model Registry + Serving,本地/自建首选。
  • 轻量方案:neptune.aiTensorBoard + 自定义 JSON 记录。

模型注册(model registry):对"通过评估的模型"做受控登记——谁、何时、哪个 commit、什么指标、什么 artifact 路径,支持"一键回滚到上一版本"。模型注册是部署与回滚(见下)之间的"可信锚点"。

实验纪律

固定 seed、一个实验只改一个变量、主指标预注册——这些在深度学习评估与实验讲过,MLOps 只是把纪律变成基础设施。

三、部署方式:在线服务、批处理、边缘

方式特点适用代表框架
在线服务(Online/实时)低延迟、高并发,请求-响应式推荐、对话、OCR、内容审核TorchServe、Triton、vLLM、FastAPI
批处理(Batch)定时/事件驱动,吞吐优先离线推荐、报表、数据清洗Airflow、Spark、Ray
边缘部署(Edge)端侧运行,离线、隐私、无网络手机、摄像头、IoTONNX Runtime、TFLite、Core ML

选型的核心维度:延迟要求、吞吐、算力位置、数据敏感性。在线推理的延迟预算(p50/p99)决定要不要上 vLLM 这类连续批处理引擎;涉及隐私数据(医疗、金融)则边缘部署优先。

四、推理优化:量化、蒸馏、剪枝

训练好的模型"能跑"与"跑得快、跑得起"是两回事。四大推理优化手段:

  • 量化(Quantization):把 FP32 权重/激活降到 FP16/BF16/INT8/INT4,用更少字节换更快速度与更小显存。两种路线:
    • PTQ(训练后量化):直接用校准数据量化,无需重训,快但精度损失可能大。
    • QAT(量化感知训练):训练时就模拟量化误差,精度损失最小,但要重训。
  • 知识蒸馏(Distillation):用大模型(教师)的输出监督小模型(学生)训练,"让学生学教师的判断",在更小模型上逼近教师能力。
  • 剪枝(Pruning):去掉不重要的权重/通道/头(稀疏化),减少计算量;结构化剪枝(整通道/整头)比非结构化更能直接提速。
  • 编译优化(Compile)ONNX(跨框架开放格式)+ TensorRT(NVIDIA 专用推理引擎)做算子融合、图优化、kernel 自动选择。vLLM 等推理引擎进一步做分页 KV cache(见注意力机制)与连续批处理。

优化组合拳:先量化(INT8)+ 蒸馏(若精度不达标)+ 编译(TensorRT/ONNX Runtime)。每步都要回到验证集确认精度损失在可接受范围(评估口径见评估章节)。

五、监控与数据/概念漂移

模型上线后,最隐蔽的风险是"世界变了而模型没变"。两类漂移:

  • 数据漂移(data drift):线上输入分布与训练分布偏离(新用户群体、新语言、季节变化)。检测:特征分布监控(KS 检验、PSI 指标)、线上 vs 训练样本的相似度对比。
  • 概念漂移(concept drift)输入分布没变,但"输入→标签"的关系变了(如"购买行为"的含义随经济环境改变)。检测:标签率变化、线下回测线上样本(shadow 部署)。

监控报警体系:为关键指标(预测置信度、类别分布、业务指标)设阈值 + 自动告警,并接入人工抽检闭环。漂移触发后的动作:回滚、补充训练数据(数据与数据工程)、触发重训练流水线。

别只盯模型指标

线上真正要监控的是业务指标(转化率、留存、满意度),模型指标(准确率、延迟)只是中间变量。两者脱节往往意味着评估口径与产品目标错位。

六、训练平台与资源调度

训练侧的基础设施:

  • GPU 集群调度:Kubernetes + 调度器(如 Volcano、Kueue)管理训练任务;多租户隔离、排队、抢占。
  • 分布式训练:数据并行(DP/DDP)、模型并行、流水线并行(Pipeline)、张量并行、ZeRO(显存优化)——大模型训练标配,思路与优化与梯度下降的 batch/显存讨论联动。LLM 训练的具体并行方案见大语言模型(LLM)
  • 可观测性:GPU 利用率、显存、网络带宽、数据加载瓶颈(见数据工程章节的加载一节)都要可视化,否则"GPU 吃不满"就是纯烧钱。

七、CI/CD 与回滚

模型也要有"持续集成/持续部署":

  • CI(持续集成):每次代码/数据变更自动跑:lint → 单元测试 → 小规模训练冒烟测试(训练几步不 NaN、loss 下降)→ 评估门禁(指标不低于基线)。评估门禁的基线纪律见评估章节。
  • CD(持续部署):模型注册 → 灰度发布(新模型只服务 5% 流量)→ 对比新旧版本指标 → 全量/回滚。
  • 回滚:模型注册表 + 版本化的推理服务(AB 双版本并存)让回滚是一键操作;回滚策略(canary、blue-green、shadow)按业务风险选。

八、成本与延迟的权衡

深度学习系统的成本结构:训练成本 + 推理成本,推理成本往往是持续大头。

  • 吞吐 vs 延迟:vLLM 的连续批处理把吞吐拉满,但单请求延迟可能略高;实时交互场景要 p99 延迟保证,批处理场景纯拼吞吐。
  • 精度 vs 成本:INT4 量化能让 70B 模型跑进单卡,但精度/校准风险高(模型越大 INT4 越流行,见大语言模型(LLM));蒸馏的小模型推理便宜但训练要额外算力。
  • 自建 vs 托管:自建 GPU 集群前期投入大、利用率管理难;云托管(按量付费)灵活但单位算力贵。按"负载是否可预测"决定。
  • 监控成本:日志、指标、抽样抽检都要花钱——优先级按业务影响排,别全量堆。

权衡与取舍

模型质量 vs 推理成本:这是 MLOps 的核心天平——大模型准但贵,小模型便宜但可能漏检。标准做法:先用大模型验证上界,再用蒸馏/量化逼近,用评估门禁守住下限

延迟 vs 质量:实时场景宁可模型略差也要控延迟;离线批处理可以堆质量。别用同一份配置服务所有场景

快速迭代 vs 稳定性:灰度发布让"快"与"稳"兼得;但每一次发布都是风险,预注册主指标 + 门禁是护栏(训练配方与调参)。

MLOps 的本质是把深度学习从"科研实验"变成"可运营的工程系统"——它不直接提升模型精度,却决定了精度能否持续、稳定、低成本地转化为业务价值。工具全景与开源项目清单见精选资源清单,框架选型(PyTorch/TensorFlow/JAX 等)见框架与工具怎么选

延伸阅读

参考资料