华为商城特征平台建设
如果无法正常显示,请先停止浏览器的去广告插件。
1. 华为商城特征平台建设实践
曾中铭
华为商城 算法工程师
2022.06.12
2. 特征平台建设实践
• 问题与挑战
• 特征平台设计目标
• Feature as Code
• 特征数据一致性
• 业界前沿观察
• Q&A
2/30
3. 问题与挑战
数据集成
特征、样本
试算
模型训练
特征、样本
Pipeline开发
模型部署
服务集成
监控
&效果评估
图片来自Hidden Technical Debt in Machine Learning Systems. NIPS. 2494-2502.
AI开发中存在诸多技术挑战,涉及技术栈多,流程长
3/30
4. 问题与挑战
数据集成
特征、样本
试算
模型训练
特征、样本
Pipeline开发
模型部署
服务集成
• 开箱即用的算法环境: JupyterLab、GPU资源等一应俱全
• 高性能的模型训练能力:海量资源池、按需计费、多机多卡训练、多级缓存等
• Serverless形式的模型部署能力:快速在线推理/批量推理服务部署
监控
&效果评估
4/30
5. 问题与挑战
数据集成
特征、样本
试算
特征、样本
Pipeline开发
模型训练
• 特征计算难
多种数据源组件 • 特征时效性保证
• 大数据场景下的SQL • 数据一致性保证
• 近线/实时计算 • 查询性能优化
•
规避特征穿越
服务集成
监控
&效果评估
• 特征Serving难
•
• 样本生成难
模型部署
• 特征、样本监控难
• Pipeline作业监控
• 数据质量监控
• 特征、样本管理缺失
• 特征血缘
• 特征复用
5/30
6. 设计目标
数据集成
特征、样本
试算
特征、样本
Pipeline开发
模型训练
问题与挑战
模型部署
MVP
服务集成
监控
&效果评估
进阶形态
特征计算 1. 降低特征Pipeline创建难度 1.
2. 易用性/扩展性兼顾
融入DevOps流程
样本生成 1. 提供便捷的实时样本生成能力 1. 扩展离线样本生成能力,满足新特征试算
特征Serving 1.
2. 提供特征数据一致性保证
统一存储/消费入口(以SDK、RPC形式) 1. 透明缓存、容灾等
特征、样本监控 1.
2. 特征Pipeline作业监控
各底层组件可用性监控 1. 数据质量监控
特征管理 1.
2. 存量特征纳管
特征共享&复用 1.
2. 特征、样本血缘管理
特征探索&推荐
6/30
7. 逻辑架构
数据存储
特征平台
模型训练
Monitoring
特征Pipeline、特征服务API监控
数据质量监控
•
•
消息中间件
数据摄入
Feature Computing
数据湖
样本消费
•
•
•
•
•
存量特征接入
离线特征创建、管理
近线特征创建、管理
实时特征创建、管理
离线/近线特征backfill
Feature Serving
•
•
•
•
特征线下/线上存储
实时样本生成
离线样本生成
特征服务
Feature Registry
数据仓库
数据服务
/数据API
•
•
在线服务
特征消费
特征元数据管理
特征复用
Compute
Storage
实时处理
批处理
流处理
7/30
8. 特征平台建设实践
• 问题与挑战
• 特征平台设计目标
• Feature as Code
• 特征数据一致性
• 业界前沿观察
• Q&A
8/30
9. 特征生产简化
特征生产的本质:建立包含AI领域知识的数据Pipeline。
依赖
大数据工程能力
技术栈复杂,特征生产无法通过单个角色承担:
1. 算法工程师:无法独立完成数据Pipeline作
特征Pipeline作业
业创建、管理、维护
2. 数据工程师:对AI领域知识和业务信息了
解有限,跨团队效率下降
数据源
计算逻辑
特征存储
如何让算法工程师自助完成特征生产?
依赖
AI领域知识
和业务信息
9/30
10. 特征生产简化
Before
算法工程师:
以 SQL、PySpark
代码形式提供核
心计算逻辑
Now
依赖
大数据工程能力
特征平台
特征Pipeline作业
数据源
计算逻辑
依赖
AI领域知识
和业务信息
特征Pipeline作业
特征存储
数据源
计算逻辑
特征存储
特征平台:
• 负责特征Pipeline作业创建、部署、管理
• 包办I/O逻辑、存储优化等工程难点
10/30
11. 特征生产简化
通过 SQL 创建特征,
提升平台易用性
11/30
12. 特征生产简化
多数据源、多模态、复杂计算
逻辑等场景,
通过 PySpark 代码创建特征,
扩展性好
12/30
13. 特征生产简化
特征平台
文件数据
数据仓库
流式数据
特征计算
特征存储
13/30
14. 特征生产简化
• AI数据由算法工程师“自产自销”,效率提高
• 特征元数据平台统一纳管,实现资产共享复用
• 特征Pipeline作业统一管理,责任清晰
14/30
15. 特征数据一致性
数据仓库
离线
特征存储
线下训练
(高吞吐)
离线层
在线层
实时处理
批处理
流处理
15/30
16. 特征数据一致性
数据仓库
离线
特征存储
线下训练
(高吞吐)
离线层
在线层
在线
特征存储
线上推理
(低时延)
实时处理
批处理
流处理
16/30
17. 特征数据一致性
数据仓库
离线
特征存储
线下训练
(高吞吐)
离线层
在线层
在线
特征存储
线下/线上两条Pipeline,
数据一致性难保证,
导致Training-Serve Skew,
引发线上效果劣化
线上推理
(低时延)
实时处理
批处理
流处理
17/30
18. 特征数据一致性
数据仓库
离线
特征存储
线下训练
(高吞吐)
离线层
在线层
在线
特征存储
• 问题本质是数据来自两条Pipeline
线上推理
(低时延)
实时处理
• 方案一:线下/线上消费同一套数据 批处理
• 方案二:线下/线上Pipeline实现逻辑归一 流处理
18/30
19. 特征数据一致性
方案一:线下/线上消费同一套数据(来自同一个Pipeline),样本实时生成用于训练
4. 实时样本生成
• 架构简单,只需要维护在线特征存储
• 计算量小,不涉及离线大规模Join操作
• 支持在线模型更新
• 但对特征试算不友好
特征服务
Feature
Serving
5. 模型训练
2. 查询特征
在线服务
模型训练
1. 请求服务
3. 返回结果
端侧应用
实时处理
批处理
流处理
19/30
20. 特征数据一致性
方案一(Alter):线下/线上消费同一套数据(来自同一个Pipeline),样本实时生成用于训练
2. 实时样本生成
流式数据
用户行为日志
1. 日志上报
特征服务
Feature
Serving
在线服务
端侧应用
3. 模型训练
模型训练
实时处理
批处理
流处理
20/30
21. 特征数据一致性
方案二:(演进中)线下/线上Pipeline实现逻辑归一
• 满足特征试算需求
• 特征支持backfill
• 计算量较大
离线层
在线层
离线
特征存储
数据仓库
离线生成的
样本
Spark/Flink
批流一体计算
API
在线
特征存储
实时处理
批处理
流处理
21/30
22. 特征平台建设实践
• 问题与挑战
• 特征平台设计目标
• Feature as Code
• 特征数据一致性
• 业界前沿观察
• Q&A
22/30
23. Feature as Code与GitOps
算法工程师:
以 SQL、PySpark
代码形式提供核
心计算逻辑
特征平台简化了特征作业开发过程,特征开发
周期从数周降低到数天。
特征平台
如何引入DevOps,以达成自动、可靠的版本
管理与发布?
特征Pipeline作业
数据源
计算逻辑
特征存储
23/30
24. Feature as Code与GitOps
DevOps流程
特征平台简化了特征作业开发过程,特征开发
周期从数周降低到数天。
特征平台
如何引入DevOps,以达成自动、可靠的版本
管理与发布?
特征Pipeline作业
数据源
计算逻辑
特征存储
24/30
25. Feature as Code与GitOps
• Feature as Code,代码定义Feature元数据和作业
• 依托Git完成Feature的版本管理
• 面向终态风格的变更流程(类似Terraform)
• 平台自动编排调度Feature Pipeline
• 参考Feast[feast.dev]、Tecton[https://www.tecton.ai/]
图片来自https://www.tecton.ai/
图片来自https://www.tecton.ai/product/
图片来自https://www.tecton.ai/product/
25/30
26. Feature as Code与GitOps
• 通过DevOps(gitOps)流程管理Feature
• 变更审批、审计都前移到Git平台
• 集成自动化测试流程:
• 单元测试:mock数据验证特征计算逻辑
• 集成测试:部署测试环境,验证作业正确启动
• UAT:部署验证环境,验证数据正确
图片来自https://www.tecton.ai/product/
26/30
27. 模型效果衰退与数据漂移
• 数据漂移导致算法模型效果下降
• 如何检测&监控数据质量?
图片来自https://www.aporia.com/blog/concept_drift_in_machine_learning_101/
27/30
28. 数据质量如何监控
• 参考Great Expectations
• 数据Profiling
•
图片来自https://docs.greatexpectations.io/docs/
• 基于对照组的profiling
• 基于规则的profiling
基于Profiling结果的
• 可视化报告
• 监控&告警
图片来自https://docs.greatexpectations.io/docs/
图片来自https://docs.greatexpectations.io/docs/
28/30
29. 特征平台:最佳的AI数据监控落脚点
数据质量监控点
•
•
•
•
特征平台入口:
• 批式特征质量监控
• 流式特征质量监控
特征平台出口:
• 训练样本质量监控
• 消费特征质量监控
挑战:
• 流式数据质量监控
• 实时衍生特征质量监控
参考Feast,Data quality monitoring
(Alpha) ,
[https://docs.feast.dev/reference/dqm]
29/30
30. 参考资料
• Hidden Technical Debt in Machine Learning Systems,https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-
systems
• 特征平台需求层次理论,https://www.infoq.cn/article/83sxswlgqvejae7f9vut
• 特征平台(Feature Store):序论,https://zhuanlan.zhihu.com/p/406897374
• 特征平台(Feature Store):Tecton,https://zhuanlan.zhihu.com/p/410767474
• Back to the Future: Solving the time-travel problem in machine learning, https://www.tecton.ai/blog/time-travel-in-ml/
• 特征平台(Feature Store):从Feature as Code到Feature Pipeline as Code,https://zhuanlan.zhihu.com/p/512362076
• What is Infrastructure as Code with Terraform?, https://learn.hashicorp.com/tutorials/terraform/infrastructure-as-code
• Concept drift in machine learning 101, https://www.aporia.com/blog/concept_drift_in_machine_learning_101/
30/30
31. Q&A
31/30
32. Thank You
32/30