斯坦福大学近期推出了一门全新的课程——《机器学习系统设计》(CS 329S),由知名计算机科学家Chip Huyen教授。这门课程的主页为https://stanford-cs329s.github.io/。
课程的目标是帮助学生深入了解机器学习系统的设计过程。这包括软件架构、基础设施、算法以及数据的定义,以满足特定需求。尽管现有系统能够满足大部分模型构建的要求,但随着工具的发展、业务需求的变化以及数据分布的更新,系统也需要不断升级。因此,本课程旨在为构建可部署、可信、可扩展的机器学习系统提供一个迭代框架。
课程内容涵盖从项目定义、数据管理、模型开发、部署、基础设施、团队结构到业务分析的所有步骤。每个步骤都将讨论不同的解决方案及其动机、挑战和局限性。最后一部分将探讨机器学习生态系统的发展趋势。此外,学生还将学习有关隐私、公平和安全的知识。
为了修读这门课程,学生需要具备以下条件: - 掌握基本的计算机科学原理和技能,能够编写常见的计算机程序; - 对机器学习算法有良好掌握; - 熟练掌握至少一个机器学习框架,如TensorFlow、PyTorch或JAX; - 掌握基本的概率论知识。
尽管课程没有指定教材,但会使用课堂讲义和阅读材料。课程视频已被录制,目前仅供在校学生观看,尚未决定是否公开发布。
Chip Huyen是一位作家兼计算机科学家,拥有斯坦福大学计算机科学学位,并在英伟达和Netflix等公司工作过。她还开设了一些受欢迎的课程,例如《TensorFlow for Deep Learning Research》,并在GitHub上发布了多个热门项目。
以下是课程的大纲:
第一周:机器学习系统设计概述 - 何时使用机器学习 - 研究中的机器学习与生产中的机器学习 - 机器学习系统与传统软件 - 机器学习生产中的“虚拟”概念 - 机器学习应用案例研究
第二周:迭代过程 - 构建高效机器学习系统的原理 - 迭代过程 - 规划范围
第三周:数据管理 - 实际数据挑战 - 如何收集、存储和处理大量数据 - 数据管道的不同层次 - 数据处理与展示 - 数据控制 - 数据存储 - 数据提取:数据库引擎
第四周:创建训练数据集 - 特征工程 - 数据标注 - 数据泄露 - 数据划分、分片和抽样
第五周:构建和训练机器学习模型 - 基线模型 - 模型选择 - 训练、调试和实验跟踪 - 分布式训练 - 评估和基准 - 自动化机器学习(AutoML)
第六周:部署 - 推理约束 - 模型压缩与优化 - 训练服务偏差 - 概念漂移 - 服务器端机器学习与客户端机器学习 - 缓解策略 - 部署评估
第七周:项目节点讨论 - 道德问题
第八周:监控及维护 - 监控内容 - 目标、日志记录、标签和报警 - 更新和回滚 - 迭代改进
第九周:硬件和基础设施 - 架构选择 - 硬件设计 - 边缘设备 - 云公共数据中心 - 高性能计算的未来
第十周:将机器学习整合到业务中 - 模型功能与业务目标和用户体验 - 团队架构 - 机器学习项目失败的原因 - 最佳实践 - 当前机器学习生产状况
所有已完成的课程材料都可以从课程主页下载。