今年8月,一位毕业于斯坦福、现就职于英伟达人工智能应用团队的小姐姐登上推特Top10整理了优质的免费机器学习课程资源,串成一条高效的学习路线。该课程资源现已获得超过8,000个赞。最近她又给读者带来了新福利,这次是深度学习系统的设计教程。将机器学习模型转化为能够提供服务和AI能力的系统,是近期备受关注的话题。ChipHuyen的公开深度学习系统设计教程是一篇8000字的长文,受到广泛关注。目前,它的推特已经有5000个赞,GitHub项目也一天收获了1000多个star。教程地址:https://github.com/chiphuyen/machine-learning-systems-design/blob/master/build/build1/consolidated.pdf项目地址:https://github.com/chiphuyen/machine-learning-systems-design从理论到实践,8000字教程解读ML系统设计。本教程由简介、机器学习系统设计、案例教学和习题四部分组成。其中,案例教学和习题部分分别收录了10个生产环境经典案例和27个面试中可能遇到的问题。全书以方法论为主,重点是提供相应的指导原则,帮助读者思考构建系统的必要步骤。简介在第一部分中,作者介绍了机器学习研究与生产之间的主要区别。这些差异体现在两个方面:性能要求和计算要求。在性能需求方面,对于机器学习研究人员来说,SOTA就是一切。他们会不惜使用各种复杂的技术及其组合来追求百分之一的性能提升,但这种提升可能不适用于生产环境,而且会因为太复杂而消耗更多的计算资源。在计算需求方面,由于目前流行的大型模型需要昂贵的计算资源,如果想将这些模型应用到生产环境中,需要社区探索模型压缩、预训练等技术,使模型更小、更高效。快点。生产环境中的开发人员在设计机器学习系统时应始终牢记生产环境。机器学习系统设计四部曲的第二部分是本书的核心内容,即如何设计机器学习系统。作者将这个设计过程分为四个步骤:项目设置、数据管道、建模(选择、训练和调试模型)和服务(测试、部署和维护模型)。作者提出的深度学习系统构建过程。项目设置是对项目进行评估和设计的过程。这个环节的目标是定义深度学习需要解决的实际问题(产品的意义)、性能约束、项目约束、评估方法和个性化。只有明确项目的目标和实施方式,才能保证构建的系统能够满足需求,解决实际问题。数据是深度学习中最不可或缺的部分。虽然研究领域的大多数模型都有充足、均衡和干净的数据集,但在生产条件下却不一定如此。因此,在系统设计中也需要考虑数据问题,包括如何获取可靠、充足、大量的数据。同时,需要面对隐私保护、数据安全、数据存储、数据平衡等问题,并提供可行的解决方案。在建模过程中,需要经过模型选择、训练、调试和评估几个环节。其中,在模型选择中需要考虑找到最合适的基准,例如随机基准、人类基准或启发式基准。使用的模型应从简单到复杂,训练过程也应从少量数据开始。如果可行,请扩大模型大小,增加输入数据批次的大小,并执行参数调整。如果模型推理性能不佳,需要考虑是否是数据问题,假设和模型/数据拟合错误,超参数选择错误等。在服务阶段,设计者需要考虑模型如何提供合适的基于收到的输入的结果,用户如何接收这些结果,以及他们的反馈如何更好地改进现有模型。同时,模型也不是静态的,需要不断的训练。对现有数据进行训练以使其更准确与使用新标签训练模型不同。前者只需要在现有模型上进行训练,而后者则需要从头开始训练。10个经典案例为避免理论“纸上谈兵”,在本书的第三部分,作者提供了10个案例教学,帮助读者理解理论,学以致用。阅读这些案例,了解如何克服生产环境中的各种部署要求和限制。Airbnb、Lyft、Uber、Netflix和许多其他公司都在博客中介绍了他们使用机器学习改进产品或生产流程的经验。需要面试的朋友可以经常浏览一下这些博客。本教程介绍了一些最佳示例,包括:1.使用机器学习预测Airbnb上的房屋价值。链接:https://medium.com/airbnb-engineering/using-machine-learning-to-predict-value-of-homes-on-airbnb-9272d3d4739d2。使用机器学习提高Netflix上的流媒体质量。链接:https://medium.com/netflix-techblog/using-machine-learning-to-improve-streaming-quality-at-netflix-9651263ef09f3。Booking.com150个成功的机器学习模型:经验教训6个经验教训。链接:https://blog.acolyer.org/2019/10/07/150-successful-machine-learning-models/4。Chicisimo,一款拥有0至400万女性用户的时尚应用。链接:https://medium.com/hackernoon/how-we-grew-from-0-to-4-million-women-on-our-fashion-app-with-a-vertical-machine-learning-approach-f8b7fc0a89d75。通过机器学习增强Airbnb搜索体验。链接:https://medium.com/airbnb-engineering/machine-learning-powered-search-ranking-of-airbnb-experiences-110b4b1a07896。Lyft的反欺诈机器学习系统。链接:https://eng.lyft.com/from-shallow-to-deep-learning-in-fraud-9dafcbcef7437。Instacart交付服务中的路径优化。链接:https://tech.instacart.com/space-time-and-groceries-a315925acf3a8。Uber的大数据平台:100+PB,延迟为一分钟。链接:https://eng.uber.com/uber-big-data-platform/9。利用计算机视觉和深度学习创建现代OCR管道。链接:https://blogs.dropbox.com/tech/2017/04/creating-a-modern-ocr-pipeline-using-computer-vision-and-deep-learning/10。使用优步推出的米开朗基罗机器学习平台来扩展机器学习。链接:https://eng.uber.com/scaling-michelangelo/27道练习题最后,还有27道练习题可供尝试。习题答案会在本书《Machine Learning Interviews》中给出。想贡献答案的同学可以戳:https://github.com/chiphuyen/machine-learning-systems-design/tree/master/answers另外,作者提醒大家,这里有些问题是有歧义的。如果在面试中遇到这些问题,需要引导面试官把问题描述清楚,缩小范围。
