系统设计 Lab
ML 训练平台一开始只是一个 notebook,然后围绕它把整个生命周期长出来:pipeline、tracking、一个 cluster、还有一个 registry。
调整每天的训练 job 数、dataset 大小、cluster GPU 数、tracked 的 experiment 数、模型大小、pipeline 阶段数。切换 data-parallel distributed training 和自动 retraining。设计会从单个 notebook 演进到一条 scheduled pipeline、versioned data 加 feature prep、一个 distributed training cluster、一个 experiment tracker、一个 model registry,以及把模型 promote 到 serving 的 CI/CD。
分步讲解
一步一步把它想清楚
要点
常规演进场景
从左到右点击,就是预设的演示路径。每张卡片都会改变 workload 输入。
推荐形态
瓶颈
为什么会变
决策权衡
有出处支撑的规则
这些是模型背后那些经得起时间考验的 system design 论断。而 slider 的具体阈值,则被刻意标注为教学用的假设。
Model registry 管理 versioned 模型的生命周期
MLflow 按 run 记录 param、metric、artifact,并以 stage transition 来 register versioned 模型——这正是为什么当 experiment 和模型一多,tracking 和 registry 就会出现。
MLflow DocsPipeline 让 ML workflow 可移植、可扩展、可重复
Kubeflow Pipelines 在 Kubernetes 上把多步 ML workflow 编排成 DAG——这正是为什么随着 stage 和 run 量增长,ad-hoc 脚本会变成一条 scheduled pipeline。
Kubeflow Pipelines生产级 ML 平台把 data、training、deployment 组件标准化
TFX 定义了可复用的组件(ingest、validate、transform、train、evaluate、push),让从 data validation 到 deployment 的整个生命周期保持一致且可自动化。
TFX GuideData versioning 给 dataset 类似 git 的 lineage 和 reproducibility
DVC 对大 dataset 和 pipeline 做版本控制,让任何一次 run 都能从一个确切的 data version 重现——一旦 dataset 经常变,这就是必需品。
DVC Docs教学用假设
- 单 host 训练顶多约 8 块 GPU、大约 1B 参数,再多模型加 optimizer state 就装不进一块加速器了。
- orchestration、tracking、storage 的预算都是保守的教学数字,用来让这五个 scenario 有递进,并非 vendor 的真实上限。
- data-parallel distributed training 被建模成一个 throughput 维度(replica 越多越快完成);而一个比单块 GPU 还大的模型需要的是 model sharding(tensor/pipeline parallelism 或 FSDP/ZeRO),它被建模成一个单独的 sharding 信号。