中级农民
- 积分
- 233
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2024-8-31
- 最后登录
- 1970-1-1
|
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
本帖最后由 檐下燕 于 2025-7-4 15:41 编辑
ML系统设计通用框架
ML系统 ≠ ML模型。真实世界中的ML系统涉及模型开发之外的多个组件,如数据处理、部署、评估、监控等。- 明确需求(Clarify Requirements)
- 问题转化为ML任务(Frame the ML Problem)
- 数据准备(Data Preparation)
- 模型开发(Model Development)
- 评估(Evaluation)
- 部署与服务(Deployment & Serving)
- 监控与基础设施(Monitoring & Infrastructure)
1. 明确需求 Clarify Requirements
需提问澄清的信息:- 业务目标:如增加收入?提升用户参与?
- 功能需求:系统要支持哪些交互?如点赞、评论等。
- 数据源和质量:是否有标签数据?规模多大?频率如何更新?
- 约束条件:是否实时?是否在设备端运行?
- 系统规模:用户量级?数据吞吐量?
- 性能指标:对准确率/延迟/召回率的要求?
2. 将问题转化为ML任务 Frame the ML Problem- 从模糊的问题中提取输入/输出定义与业务目标。
- 将业务目标翻译成具体、可度量的ML目标。
应用场景 | 业务目标 | ML目标 | 视频推荐 | 提高参与度 | 最大化观看时长 | 广告系统 | 提高用户点击量 | 最大化CTR | 内容审核 | 提升平台安全
| 分类内容是否有害 |
ML目标要求:- 明确定义输入与输出(如文本→有害/非有害)
- 明确采用的ML类别(分类、回归、聚类、强化学习等)
3. 数据准备 Data Preparation
3.1 数据- 数据源:用户生成/系统生成?可信度?
- 数据存储:关系型数据库、NoSQL、数据湖等
- ETL流程:
- 提取(Extract)
- 转换(Transform)
- 加载(Load)
类型 | 结构化 | 非结构化 | 示例 | 数字、表格 | 文本、图片、音频 | 存储 | 数据仓库 | 数据湖 |
数值类型:连续值(如房价), 离散值(如计数)
分类类型:标值型(如性别), 序数型(如评分等级)
3.2 特征工程 Feature Engineering
常见任务:
- 缺失值处理:删除/插补(平均、中位、众数)
- 特征缩放:
- 归一化(Min-Max)
- 标准化(Z-Score)
- 对数缩放
- 离散化:将连续变量划分为桶(如年龄段)
- 分类特征编码:
- 整数编码
- 独热编码(One-hot)
- 嵌入(Embedding)
4. 模型开发 Model Development
4.1 模型选择- 构建基线模型(如最常推荐视频)
- 简单模型(逻辑回归、决策树)
- 复杂模型(神经网络、集成模型)
4.2 选择依据 - 数据规模与复杂度
- 可解释性
- 训练速度和资源
- 实时需求
- 可持续学习能力
4.3 常见模型 - 逻辑/线性回归
- 决策树、随机森林、GBDT
- 支持向量机(SVM)
- 神经网络(CNN/RNN/DNN)
- 集成方法(装袋、提升、堆叠)
5. 模型训练 Model Training- 构建训练数据集
- 收集原始数据
- 明确输入特征与标签
- 处理类别不平衡(重采样/调整损失函数)
- 标签来源:
- 手工标注:准确但成本高
- 自然标签:从用户行为中自动提取
- 数据采样与划分:
- 训练/验证/测试集
- 采样策略(分层/滚雪球/重要性抽样)
6. 总结
需求阶段:
ML任务定义:- 明确输入输出
- 合理设定目标函数
- 选择监督/非监督/强化学习
数据准备:- 数据源质量
- 是否存在偏差/隐私风险?
- 特征如何选择与编码?
模型开发:- 为什么选择某个模型?
- 模型性能、可解释性、训练效率的权衡?
如有帮助点收藏的时候请顺手点旁边的【👍评分】谢谢! |
上一篇: 有人面过LLM Multi-Agent的系统设计吗?下一篇: [15小时闪电通关System Design] 系统设计面试准备清单
|