一日千星的「机器学习系统设计指南」,这个英伟达小姐姐的项目火了

简介: 今年 8 月份,毕业于斯坦福、现就职于英伟达人工智能应用团队的一位小姐姐在推特上列出了十大优质的免费机器学习课程资源,并将它们串成了一条高效的学习路线。该课程资源现已获得 8000 多赞。近日,她又为读者带来了新的福利,这次是深度学习系统的设计教程。
今年 8 月份,毕业于斯坦福、现就职于英伟达人工智能应用团队的一位小姐姐在推特上列出了十大优质的免费机器学习课程资源,并将它们串成了一条高效的学习路线。该课程资源现已获得 8000 多赞。近日,她又为读者带来了新的福利,这次是深度学习系统的设计教程。

将机器学习模型变为可以提供服务和 AI 能力的系统是近来备受关注的话题。Chip Huyen 此次公开的深度学习系统设计教程是一篇 8000 字的长文,得到了广泛的关注。目前其推特已有 5000 赞,而 GitHub 项目也在一天内获得了 1000 多星。



微信图片_20211202133424.jpg

从理论到实践,八千字教程解读 ML 系统设计


该教程共包含四个部分:引言、机器学习系统的设计、案例教学和习题。其中,案例教学和习题部分分别包含 10 个生产环境经典案例和 27 个面试中可能遇到的问题。


全书主要以方法论为主,重点在于提供相应的指导原则,帮助读者思考构建系统的必要步骤。


微信图片_20211202133446.jpg


引言


在第一部分,作者介绍了机器学习研究和生产的主要区别。这些区别体现在两个方面:性能需求和计算需求。


在性能需求方面,对于机器学习研究者而言,SOTA 就是一切。他们会不惜使用各种复杂的技术及其组合来追求百分之一的性能提升,但这种提升在生产环境中可能并不适用,而且会因为过于复杂而消耗更多计算资源。


在计算需求方面,由于目前流行的大模型需要昂贵的计算资源,因此如果想把这些模型应用到生产环境中,还需要社区去探索模型压缩、预训练等技术,使得模型更小、更快。生产领域的开发者应该时刻牢记以生产为目标进行机器学习系统的设计。

机器学习系统设计四部曲


第二部分是这本书的核心内容,即如何设计一个机器学习系统。作者将这一设计过程分为四步:项目设置、数据 pipeline、建模(选择、训练和调试模型)和服务(测试、部署和维护模型)。


微信图片_20211202133516.jpg

作者提出的深度学习系统构建流程。


项目设置即对项目进行评估、设计的环节。这一环节的目标在于定义深度学习所需要解决的实际问题(产品的意义)、性能限制、项目限制、评估方法和个性化等。只有定义清楚项目的目标和实现方法,才能够确保构建的系统能够满足要求,解决实际问题。


数据是深度学习最不可或缺的部分,尽管研究领域的大部分模型都有着充足、平衡且干净的数据集,但是生产条件下则不一定。因此,系统设计中也需要考虑到数据的问题,包括如何获得可靠、充足、大量的数据,同时需要面对隐私保护、数据安全、数据存储和数据平衡方面的问题,并提供可行的解决方案。


在建模过程中,需要经过模型选型、训练、调试和评估几个环节。其中,在模型选择时需要考虑找到最合适的基准,如随机基准、人类基准或启发式基准。采用的模型则应当从简单到复杂,训练的过程也应当是从少量的数据开始,如果行得通就扩大模型规模,增加投入的数据批的大小,并进行调参工作。如果模型的推理性能不佳,则需要考虑是否是数据问题、错误的假设和模型/数据拟合,超参选择错误等。


在服务阶段,设计者需要考虑模型怎样根据接收到的输入提供合适的结果,用户怎样收到这些结果,怎样能够让他们的反馈更好地改进现有的模型。同时,模型也不是一成不变的,它需要不断地训练。从现有数据进行训练使其变得更精准与给模型增加一个新标签进行训练是不同的。前者只需要在现有模型上进行训练,而后者则需要从头开始训练。


10 个经典案例


为了避免理论上的「纸上谈兵」,在全书的第三部分,作者提供了 10 个案例教学,用于帮助读者理解理论,学习实践。


阅读这些案例可以学到如何在生产环境中克服种种部署要求和约束。Airbnb、Lyft、Uber、Netflix 等很多公司都开设了博客来介绍自己使用机器学习改进产品或生产流程的经验。需要面试的小伙伴可以经常浏览这些博客。本教程介绍了其中的一些精华案例,包括:


1. 利用机器学习预测 Airbnb 上的房屋价值。


2. 利用机器学习提高 Netflix 上的数据流质量。


3. 缤客网 150 个成功的机器学习模型:从中学到的 6 个经验教训


4. 从零到 400 万女性用户的时尚 APP——Chicisimo。


5. 用机器学习驱动 Airbnb 搜索体验。


6. Lyft 公司的反欺诈机器学习系统。


7. Instacart 外送服务中的路径优化。


8. Uber 的大数据平台:具有分钟级延迟的 100+Petabytes。


9. 利用计算机视觉和深度学习来创建现代化的 OCR 管道。


10. 利用 Uber 推出的 Michelangelo 机器学习平台来扩展机器学习。


27 个练习题


最后,还有 27 个练习题可供上手尝试。习题的答案将在《Machine Learning Interviews》一书中给出。


想贡献答案的同学可以戳:https://github.com/chiphuyen/machine-learning-systems-design/tree/master/answers


image.png

image.png


此外,作者提醒大家注意,这里的问题有些是模棱两可的。如果在面试中遇到这些问题,你需要引导面试官把问题描述清楚、缩小范围。


作者简介


Chip Huyen 是一位来自越南的作家和计算机科学家,现居于美国硅谷,就职于英伟达人工智能应用团队。


微信图片_20211202133726.jpg

Chip Huyen


她本科和硕士均就读于斯坦福大学计算机科学专业,曾开设和讲授课程《TensorFlow for Deep Learning Research》。



她还曾协助推出越南第二受欢迎的网络浏览器 Coc Coc,每月活跃用户数量达 2000 万以上。


她目前正在进行的一些项目包括 SOTAWHAT(查询和总结 SOTA 人工智能研究成果)、OpenSeq2Seq(利用语音识别、Text2Speech 和 NLP 进行高效实验的工具包)以及 Free Hugs Vietnam(为越南青少年提供软技能的非盈利项目)等。

相关文章
|
2月前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
2月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
35 0
|
2月前
|
TensorFlow 算法框架/工具 开发工具
使用 TensorFlow 构建机器学习项目:6~10(3)
使用 TensorFlow 构建机器学习项目:6~10(3)
34 0
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
【机器学习实训项目】黑色星期五画像分析
【机器学习实训项目】黑色星期五画像分析
76 0
|
15天前
|
机器学习/深度学习 API 索引
机器学习项目实践-基础知识部分
创建Python隔离环境使用`python -m venv`命令,如`python -m venv ml`来创建名为`ml`的虚拟环境。激活环境通过`.\<Scripts>\activate`(Windows)。然后可以使用`pip`安装库,如`numpy`、`pandas`、`matplotlib`和`jupyter notebook`。在虚拟环境中,`numpy`是用于数组计算的库,支持数学操作和绘图。`pip install`命令后面可添加`-i Simple Index`指定索引源。完成安装后,激活环境并启动`jupyter notebook`进行开发。
|
25天前
|
机器学习/深度学习 数据可视化 关系型数据库
基于机器学习的信用卡办卡意愿模型预测项目
基于机器学习的信用卡办卡意愿模型预测项目
|
26天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI操作报错合集之在ODPS的xxx_dev项目空间调用easyrec训练,需要访问yyy项目空间的OSS,出现报错,是什么导致的
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
9天前
|
机器学习/深度学习 分布式计算 算法
在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)
【6月更文挑战第28天】在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)、数据规模与特性(大数据可能适合分布式算法或深度学习)、性能需求(准确性、速度、可解释性)、资源限制(计算与内存)、领域知识应用以及实验验证(交叉验证、模型比较)。迭代过程包括数据探索、模型构建、评估和优化,结合业务需求进行决策。
15 0
|
2月前
|
机器学习/深度学习 算法 UED
【Python 机器学习专栏】A/B 测试在机器学习项目中的应用
【4月更文挑战第30天】A/B测试在数据驱动的机器学习项目中扮演关键角色,用于评估模型性能、算法改进和特征选择。通过定义目标、划分群组、实施处理、收集数据和分析结果,A/B测试能帮助优化模型和用户体验。Python提供工具如pandas和scipy.stats支持实验实施与分析。注意样本量、随机性、时间因素和多变量分析,确保测试有效性。A/B测试助力于持续改进机器学习项目,实现更好的成果。
|
2月前
|
机器学习/深度学习 数据采集
机器学习练手项目-猫狗分类器
机器学习练手项目-猫狗分类器
56 0