CS329S: 机器学习系统设计——了解机器学习生产

官网笔记和Slide(地址可能有变,无效请参考官方):

机器学习中的研究 VS 生产

 ResearchProduction
ObjectivesModel performanceDifferent stakeholders have different objectives
Computational priorityFast training, high throughputFast inference, low latency
DataStaticConstantly shifting
FairnessGood to have (sadly)Important
Interpretability*Good to haveImportant
  • 目标:
    • 研究者主要就是模型的性能,是否达到了SOTA
    • 生产的话,不同的职位的人他的目标是不一样的
  • 计算优先度:
    • 研究者主要是快速的训练,高吞吐量,主要是节约训练时间
    • 生产者主要是快速推断能力,低延迟,提高QPS,高性能服务应用
  • 数据:
    • 研究主要是固定的数据集,干净静态的,也是历史数据
    • 生产是变化的数据,脏乱的数据,历史和实时数据流,也有一些隐私数据
  • 公平性:
    • 研究 基本没多少研究 最好是有
    • 生产的公平性是非常重要
  • 可解释性:
    • 最好是有 ,但是可以没有
    • 生产的可解释性也非常重要,对用户企业都很重要,对于开发人员也非常重要

我认为在生产中,最重要的还是前期业务调研和训练数据,还有一点也比较重要,就是模型的安全性,这个在模型研究中基本没有涉及,在生产中非常重要。

机器学习系统 VS 传统的软件开发

机器学习系统的新挑战

  • 数据测试
  • 数据和模型版本
  • 监控
  • 数据标签
  • CI/CD测试
  • 部署
  • 模型压缩
  • 推理优化
  • 边缘设备
  • 隐私
  • 数据操作
  • 数据格式

机器学习部署神话

  • 部署是困难的
    • 可靠部署非常困难,包括低延迟和高可用
  • 你只能一次部署一到两个模型
    • 我们需要部署上百上千个模型
  • 如果我们不做任何事情,模型的性能问题依然存在
    • 模型的性能一开始就是有很多问题,都是需要做优化的
  • 你不需要更新你的模型
    • 其实模型的更新需求是非常频繁,如果使用k8s来部署,基本的容器生命周期都是十几分钟,几十分钟
  • 大多数的机器学习工程师不需要担心规模
    • 开始并没有担心规模,后续针对业务来做大规模部署
  • 机器学习可以神奇的转换一个业务
    • 机器学习的收益很难说这个和业务相关

CS329S: 机器学习系统设计笔记目录

  1. CS329S: 机器学习系统设计——了解机器学习生产
  2. CS329S: 机器学习系统设计——机器学习系统设计简介
  3. CS329S: 机器学习系统设计——数据管理
  4. CS329S: 机器学习系统设计——模型开发
  5. CS329S: 机器学习系统设计——PyTorch和分布式培训
  6. CS329S: 机器学习系统设计——模型评估
  7. CS329S: 机器学习系统设计——实验跟踪和版本控制
  8. CS329S: 机器学习系统设计——TinyML
  9. CS329S: 机器学习系统设计——在生产中扩展ML模型:Uber和Ludwig的案例研究
  10. CS329S: 机器学习系统设计——公平,准确和透明
  11. CS329S: 机器学习系统设计——监控与维护
  12. CS329S: 机器学习系统设计——基础设施
  13. CS329S: 机器学习系统设计——将ML集成到业务中
  14. CS329S: 机器学习系统设计——最终项目讨论
  15. CS329S: 机器学习系统设计——ML系统的未来
  16. CS329S: 机器学习系统设计——最终项目演示

官网: https://stanford-cs329s.github.io/index.html

《CS329S:机器学习系统设计》 是斯坦福大学今年才开的课程,也是第一次开这门课。主要的目标是构建一个可部署可靠可扩展的机器学习系统,具体介绍可以参考官网。

现在课程只有PPT和笔记,视频后续有可能会公布。目前文章的内容只是根据PPT和笔记以及其他相关内容整理而成,如果后面放出视频,文章会根据视频更新。

Github:https://github.com/xxg1413/CS329S

课程时间:

DateDescriptionMaterialsEvents
Mon Jan 11Understanding machine learning productionNote
Slides
Lecture
Wed Jan 13Intro to machine learning systems designNote
Slides
Lecture
Mon Jan 18No classMartin Luther King, Jr. Day
Wed Jan 20Data managementSlidesLecture
Mon Jan 25Model developmentSlidesLecture
Wed Jan 27PyTorch & distributed training
Tutorial by Shreya Shankar and Karan Goel
Tutorial
Mon Feb 1Model evaluationLecture + Tutorial
Wed Feb 3Experiment tracking and versioning
Weights & Biases tutorial by Lavanya Shukla
DVC tutorial by DVC team
Lecture + Tutorial
Mon Feb 8DeploymentLecture
Wed Feb 10Deployment tutorials
Guest lecture by Daniel Bourke
Tutorial
Mon Feb 15No classPresidents’ Day
Wed Feb 17TinyML
Guest lecture by Pete Warden
Lecture
Mon Feb 22Scaling ML models in production: case studies with Uber and LudwigGuest lecture by Piero MolinoLecture
Wed Feb 24Fairness, accuracy, and transparency
Guest lecture by Sara Hooker
Lecture
Mon Mar 1Monitoring and maintenanceLecture + Tutorial
Wed Mar 3InfrastructureLecture
Mon Mar 8Integrating ML into business
Guest lecture by Saam Motamedi
Lecture
Wed Mar 10Final project discussionWorkshop
Mon Mar 15Future of ML systems
Panel:Christopher RéNeil LawrenceHan XiaoTBD
Panel
Wed Mar 17Final project demo dayDemo day