Skip to content

总体架构解剖

本页速览 一个生产级机器学习系统的完整骨架:从问题定义、数据管道、特征工程、模型训练、评估迭代到部署监控的九大环节。本文是本站的内容地图,每个环节指向深入文章。

总体架构解剖 ​

一个"机器学习项目"到底由什么组成?多数初学者的想象是"写模型、跑训练",但真实的生产级系统远不止于此。本文把一套完整 ML 系统拆成九个环节,每环节一句话讲清"干什么、为什么、坑在哪",并链接到全站对应页面。这一页是全站的地图——读完它,你对整个领域的骨架就有了。

一、全景图 ​

text
┌──────────────────────────── 机器学习系统 ────────────────────────────┐
│                                                                     │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────────┐      │
│  │ ①问题定义 │──▶│ ②数据管道 │──▶│ ③特征工程 │──▶│ ④模型选择     │      │
│  │ 业务→ML   │   │ 采集/清洗 │   │ 编码/缩放 │   │ 算法与假设    │      │
│  └──────────┘   └──────────┘   └──────────┘   └──────┬───────┘      │
│                                                      ▼               │
│  ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────────┐      │
│  │ ⑨监控与   │◀──│ ⑧部署上线 │◀──│ ⑦评估迭代 │◀──│ ⑤训练调优     │      │
│  │ 再训练    │   │ 服务化   │   │ 指标/验证 │   │ 损失/优化器   │      │
│  └──────────┘   └──────────┘   └──────────┘   └──────────────┘      │
│                                                                     │
│   ⑥ 工程底座:实验管理 / 特征存储 / 模型注册 / CI-CD(贯穿全部)        │
└─────────────────────────────────────────────────────────────────────┘

九环节不是瀑布式的(现实中会反复回跳),但每个环节都有独立的专业知识与常见陷阱。下面逐一解剖。

二、九大环节解剖 ​

① 问题定义:业务问题 → 机器学习问题 ​

一切 ML 项目的起点,也是最容易被跳过的一环。核心是回答四个问题:

  1. 这是不是 ML 问题? 规则能写就写规则,成本低一半。判断标准:规则难以手工编写、但样本容易获得。
  2. 输入输出是什么? 特征 X 是什么、目标 y 是什么、是分类/回归/排序/聚类中的哪种。
  3. 成功指标是什么? 离线指标(准确率、AUC)要和业务指标(转化率、成本节省)对齐。
  4. 数据可得吗? 没有数据,后面全是空中楼阁。

问题定义错了,后面越努力越错。典型反面:花三个月把"预测用户流失"的模型做到 AUC 0.95,最后发现业务上要的不是"预测谁流失"而是"干预谁不流失"。

② 数据管道:从原始数据到可用数据 ​

  • 采集:日志、数据库、第三方 API、公开数据集;
  • 清洗:缺失值、异常值、重复值、格式统一(清洗的常见坑见数据与数据工程);
  • 标注:监督学习需要标签,标注质量直接决定模型上限——"垃圾进,垃圾出"(GIGO)是这一环节最硬的规律;
  • 划分:训练/验证/测试集,划分必须模拟真实预测场景(时间序列不能随机切)。

关键教训:数据泄露(data leakage)——测试集信息混入训练集,导致离线指标虚高、上线崩盘。这是 ML 工程头号事故源,详见模型评估与验证。

③ 特征工程:模型的"营养配方" ​

特征工程是"把原始数据变成模型能消化的数值特征":缺失值处理、类别编码(one-hot/目标编码)、数值缩放(标准化/归一化)、特征组合与业务特征。经典机器学习时代"特征工程决定上限",深度学习时代仍有一半场景依赖它。

注意两个极端:特征太少模型欠拟合,特征太多/太脏引入噪声甚至过拟合。原则是"先简单基线,再按证据加特征"——详见特征工程。

④ 模型选择:算法与假设 ​

选模型不是"越新越好",而是匹配数据类型与问题规模:

数据类型首选方案原因
表格数据、样本量小逻辑回归/树模型(XGBoost/LightGBM)稳、快、可解释、调参少
图像CNN(ResNet 系)局部性先验
文本/序列Transformer长程依赖建模
大规模无标注数据预训练 + 微调迁移学习

模型选择的完整逻辑见监督学习与框架与工具怎么选。

⑤ 训练与调优:损失、优化器与超参数 ​

  • 损失函数:回归用 MSE/MAE,分类用交叉熵——损失函数要与业务目标一致(比如预测价格,平方误差会对异常价过度敏感);
  • 优化器:SGD、Adam、AdamW 的取舍(学习率、动量、权重衰减);
  • 超参数:学习率、批大小、树深度/数量、网络层数——超参搜索见调参与超参数优化;
  • 正则化:L1/L2、Dropout、早停、数据增强——对抗过拟合的武器库,见过拟合与正则化。

训练环节的经典失败:loss 不降、梯度消失/爆炸、过拟合而不自知——每个都有对应的排查清单(见常见陷阱与反模式)。

⑥ 工程底座:实验管理、特征存储、模型注册 ​

生产级团队必备的三件基础设施,让九环节可复现、可回滚:

  • 实验管理(MLflow、Weights & Biases):记录每次实验的数据版本、代码版本、超参数、指标——否则三个月后你根本不知道哪个实验的效果最好;
  • 特征存储(Feast、Tecton):训练与推理共用一套特征,杜绝"训练特征与线上特征不一致";
  • 模型注册(MLflow Model Registry):模型版本化、审批、灰度发布。

没有底座的小项目可以先用文件夹+Git 凑合,但从第一天起就要有实验记录习惯——这是设计原则的第一条。

⑦ 评估迭代:用数据说话,不是用感觉 ​

  • 指标:分类用准确率/精确率/召回率/F1/AUC,回归用 MSE/MAE/R²,排序用 NDCG——指标必须和业务目标对齐,类别不平衡时准确率是陷阱(99% 准确率的"垃圾模型");
  • 验证:K 折交叉验证、留出验证、时间序列的滚动验证;
  • 基线:永远先跑一个简单基线(多数类、线性模型),模型必须打败基线才有意义;
  • 错误分析:看错例、按错误类型分组统计——迭代的正确姿势是"基于错误分析加特征/调参",而不是随机调参。

完整方法论见模型评估与验证与从零搭一套模型评估。

⑧ 部署上线:模型服务化 ​

  • 离线/在线:批预测(每日跑一遍)vs 实时 API(延迟敏感);
  • 服务方式:在线推理 API(FastAPI/KServe)、流式预测、嵌入式(移动端/边缘);
  • 性能:模型压缩(量化、蒸馏)、推理加速(ONNX、TensorRT);
  • 规模:模型监控、AB 测试、金丝雀发布。

部署的完整工程面(含离线评估与在线表现的差异)见MLOps 与模型部署。

⑨ 监控与再训练:模型会"过期" ​

模型上线只是开始:数据分布会漂移(用户行为变了、季节变了),模型指标会随之下滑。监控三件事:

  1. 数据漂移(输入分布变化):PSI、KS 统计量检测;
  2. 概念漂移(x→y 的关系变了):如疫情期间"特征→流失"规律失效;
  3. 预测质量(有延迟标签时):点击率、转化率的线上回测。

漂移检测到阈值后触发再训练(定时重训或按需重训)。这一环是"ML 项目失败率高"的主因之一——很多模型不是死于训练,而是死于上线后没人管。

三、九环节的权重与技能地图 ​

不同岗位在这九环上的精力分布差别很大,直接对应求职与 JD 分析的岗位版图:

环节算法工程师机器学习工程师数据科学家数据分析师
① 问题定义★★★★★★★★★★★★★★
② 数据管道★★★★★★★★★★★★★★
③ 特征工程★★★★★★★★★★★★★
④ 模型选择★★★★★★★★★★★★★
⑤ 训练调优★★★★★★★★★★★—
⑥ 工程底座★★★★★★★★★—
⑦ 评估迭代★★★★★★★★★★★★★★
⑧ 部署上线★★★★★★★★—
⑨ 监控再训练★★★★★★★★★—

给初学者的建议:① 和 ⑦ 是所有人都要精通的(问题定义 + 评估),③ ④ ⑤ 是算法功底,⑥ ⑧ ⑨ 是工程向的加分项。按学习路径的三条路线对号入座。

四、贯穿全站的四个视角 ​

  • 概念视角:核心知识 十二篇把九环节背后的原理讲透;
  • 案例视角:经典案例 十篇看真实模型怎么落地;
  • 论文视角:论文精读 六篇回到底层文献;
  • 实践视角:实践指南 八篇带你亲手搭出这九个环节。

这一页怎么用

  • 想快速建立全局观:通读本文即可;
  • 想深入某一环:点链接进对应页面;
  • 想动手:直接去从零构建一个 ML 项目,对照本文九环节看 demo 覆盖了哪些、缺了哪些——缺的正是你该补的。

延伸阅读 ​