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

简介: 今年 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(为越南青少年提供软技能的非盈利项目)等。

相关文章
|
6月前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
6月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
82 0
|
6月前
|
TensorFlow 算法框架/工具 开发工具
使用 TensorFlow 构建机器学习项目:6~10(3)
使用 TensorFlow 构建机器学习项目:6~10(3)
50 0
|
11天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
42 1
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
96 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
3月前
|
机器学习/深度学习 人工智能 数据处理
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
探测外太空中的系外行星是天文学和天体物理学的重要研究领域。随着望远镜观测技术的进步和大数据的积累,科学家们已经能够观测到大量恒星的光度变化,并尝试从中识别出由行星凌日(行星经过恒星前方时遮挡部分光线)引起的微小亮度变化。然而,由于数据量巨大且信号微弱,传统方法难以高效准确地识别所有行星信号。因此,本项目旨在利用机器学习技术,特别是深度学习,从海量的天文观测数据中自动识别和分类系外行星的信号。这要求设计一套高效的数据处理流程、构建适合的机器学习模型,并实现自动化的预测和验证系统。
64 1
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
|
3月前
|
机器学习/深度学习 数据处理 定位技术
构建您的首个机器学习项目:从理论到实践
【8月更文挑战第28天】本文旨在为初学者提供一个简明的指南,通过介绍一个基础的机器学习项目——预测房价——来揭示机器学习的神秘面纱。我们将从数据收集开始,逐步深入到数据处理、模型选择、训练和评估等环节。通过实际操作,你将学会如何利用Python及其强大的科学计算库来实现自己的机器学习模型。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往机器学习世界的大门。
|
3月前
|
机器学习/深度学习 数据可视化 数据处理
Python vs R:机器学习项目中的实用性与生态系统比较
【8月更文第6天】Python 和 R 是数据科学和机器学习领域中最受欢迎的两种编程语言。两者都有各自的优点和适用场景,选择哪种语言取决于项目的具体需求、团队的技能水平以及个人偏好。本文将从实用性和生态系统两个方面进行比较,并提供代码示例来展示这两种语言在典型机器学习任务中的应用。
80 1
|
4月前
|
机器学习/深度学习 数据处理 Python
机器学习实战:房价预测项目
【7月更文挑战第13天】本文详细介绍了基于机器学习的房价预测项目的实战过程。从数据准备、特征工程、模型构建到结果评估,每一步都至关重要。通过合理的特征选择和模型优化,我们可以构建出性能优异的房价预测模型,为房地产行业的决策提供有力支持。未来,随着机器学习技术的不断发展和应用场景的不断拓展,房价预测模型将更加智能化和精准化。
|
5月前
|
机器学习/深度学习 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`进行开发。
下一篇
无影云桌面