核心要点

  • 先澄清约束(QPS、模型大小、延迟 SLA、预算)再分层设计,不要一上来画框图

  • 分层:数据/特征平台 → 分布式训练调度 → 模型注册与服务 → 监控,全程贯穿版本化

  • 扩展靠队列调度 + GPU 池化 + 推理多副本 HPA;训练用抢占降本,推理用稳定实例保 SLA

  • 特征一致性、模型注册与漂移监控是易漏点——少了它们系统会 train/serve skew 或静默退化

简要回答

系统设计框架(面试按层作答):

1. 数据层

  • 数据湖/仓(S3 + Delta/Iceberg)+ DVC 版本化
  • 流批一体摄入(Kafka + Spark/Flink)
  • 特征平台:离线训练特征与在线 serving 特征一致

2. 训练层

  • 作业队列(K8s + Volcano/Slurm)+ GPU 池化与抢占
  • 分布式训练:数据并行 / 张量并行(大模型)
  • 实验跟踪:超参、指标、artifact 可追溯

3. 模型层

  • 模型注册表(版本、阶段:Staging/Production)
  • 自动化评估门禁(离线 A/B、shadow traffic)

4. 服务层

  • 容器化推理(K8s HPA、多副本)
  • 批/流/在线多模式 serving
  • 金丝雀发布与自动回滚

5. 观测层

权衡:先澄清 QPS、模型大小、延迟 SLA、预算;详见 MLOps 入门AI 工程

标准回答

系统设计框架(面试按层作答):

1. 数据层

  • 数据湖/仓(S3 + Delta/Iceberg)+ DVC 版本化
  • 流批一体摄入(Kafka + Spark/Flink)
  • 特征平台:离线训练特征与在线 serving 特征一致

2. 训练层

  • 作业队列(K8s + Volcano/Slurm)+ GPU 池化与抢占
  • 分布式训练:数据并行 / 张量并行(大模型)
  • 实验跟踪:超参、指标、artifact 可追溯

3. 模型层

  • 模型注册表(版本、阶段:Staging/Production)
  • 自动化评估门禁(离线 A/B、shadow traffic)

4. 服务层

  • 容器化推理(K8s HPA、多副本)
  • 批/流/在线多模式 serving
  • 金丝雀发布与自动回滚

5. 观测层

  • 数据漂移、模型性能、延迟/成本 可观测性
  • 审计日志与合规

权衡:先澄清 QPS、模型大小、延迟 SLA、预算。详见 MLOps 入门AI 工程

常见误区

⚠️ 常见踩坑

只画「数据→模型→API」三层却忽略特征一致性、版本化与监控;不谈容量估算与失败恢复。

追问

追问 1训练与推理资源如何隔离?

独立 K8s 节点池/命名空间,训练用 Spot/抢占实例降本,推理用稳定 on-demand 保 SLA。队列限流防训练挤占推理 GPU。

追问 2多租户 ML 平台如何设计?

用命名空间/项目隔离各团队,配 ResourceQuota 与 GPU 配额防止互相挤占;存储、特征、模型注册按租户加 RBAC 与数据隔离;计费按用量打 label 归集。关键是隔离与配额,既共享底层算力又保证一个租户的大作业不拖垮他人。

追问 3如何做训练作业的容错?

定期写 checkpoint 到持久存储,被抢占或失败后从最近 checkpoint 续训;调度器自动重启失败 pod;分布式训练用弹性训练(如 torchrun elastic)容忍节点增减;配合幂等的数据读取与确定的随机状态,保证续训结果一致。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。