Serverless架构下的AI应用开发:入门、实战与性能优化
上QQ阅读APP看书,第一时间看更新

前言

为何写作本书

随着时间的推移,Serverless架构变得越来越火热,其凭借极致弹性、按量付费、低成本运维等特性,在很多领域发挥着越来越重要的作用;机器学习领域在近些年也非常火热,并在越来越多的行业中得到应用。实际上,机器学习项目往往存在资源占用率高、利用率低的问题,尤其在流量波峰和波谷差值较大的项目中,资源浪费更为显著。除此之外,机器学习项目的部署、更新、后期维护相对来说也存在一定的复杂度。因此,如何将Serverless架构应用在机器学习项目中,在保证机器学习项目性能的同时,降低成本,提高资源利用率,是值得研究和探索的问题。本书希望通过简单明了的语言、真实的案例,以及开放的源代码,为读者介绍Serverless架构与机器学习相关的基础知识。希望读者可以通过本书真正理解Serverless架构与机器学习结合的重要价值,并能顺利在Serverless架构下开发、上线机器学习项目,从而更加直接地获得云计算带来的技术红利。

本书主要内容

本书是一本关于Serverless架构下机器学习实战的技术书,通过对Serverless架构的基础介绍、项目开发经验总结,以及常见的机器学习算法、模型、框架的学习,对将机器学习项目应用到Serverless架构、不同机器学习项目与Serverless架构结合以及基于Serverless架构进行机器学习应用开发等内容进行了探索。本书不仅有基础理论知识,还有大量的经验分享,以及对最新技术点的实践应用,包括但不限于Serverless架构下GPU实例的上手、多维度的冷启动优化方案、Serverless架构多模调试能力等。希望读者通过对本书的学习,可以对Serverless架构有一个更加全面、直观的了解,对Serverless架构下的机器学习有更加深入的认识。同时,希望通过本书的抛砖引玉,帮助读者将机器学习项目在Serverless架构下落地,获得云计算发展的技术红利。

本书共8章内容。第1章介绍Serverless架构基础,包括Serverless架构的发展、优势、面临的挑战等;第2章从Serverless架构的开发流程、与ServerFul开发流程的对比、传统框架迁移等多个方面,对Serverless架构下的应用开发进行相关介绍;第3章介绍机器学习相关的探索,包括对支持向量机、神经网络等算法和模型的学习与研究;第4章介绍常见的机器学习框架以及在实战项目中的应用,便于读者了解常见的机器学习框架,以及部署到Serverless架构的方案等;第5章介绍几个机器学习应用较为广泛的领域的项目实战,包括图像识别领域、情感分析领域以及对模型升级迭代相关领域的探索,涉及容器镜像、预留实例、GPU实例等诸多Serverless架构的新功能和特性;第6章和第7章介绍两个完整的Serverless架构与AI结合的案例,从项目背景开始到相关模块的设计、项目的开发与部署,通过完整的流程讲解Serverless架构下机器学习项目的上手、开发、维护全过程;第8章针对Serverless架构进行相关开发经验的分享以及Serverless应用调优方法的总结,包括Serverless架构下的冷启动优化方案、开发注意事项等内容。

如何阅读本书

在阅读本书前,读者应当掌握一定的编程技术,例如具备Node.js、Python等语言的编程能力,同时需要对云计算有初步的了解,有使用阿里云、百度智能云、华为云等的经验,还需要对机器学习相关知识有一定了解。本书从什么是Serverless架构、什么是机器学习开始说起,然后是零基础上手Serverless架构、开发机器学习应用、将机器学习项目部署到Serverless架构,再到引入GPU实例、完整的工程项目等,循序渐进地为读者介绍Serverless架构下的机器学习相关实战。建议读者按以下方式阅读本书。

第一遍通读,主要弄清楚概念,再完成Serverless、机器学习项目的基础入门,并对基于Serverless架构的机器学习有相对简单的实践,对如何将机器学习项目部署到Serverless架构有一个基础的了解。

第二遍对本书在Serverless架构下机器学习项目的优化做进一步探索,从而了解如何降低冷启动对项目的影响,如何通过引入GPU实例赋能Serverless架构下的机器学习项目,以及如何通过Serverless Devs开发者工具快速且简单地部署机器学习项目。

第三遍可以针对本书最后一章进行深入阅读,加深Serverless架构下机器学习项目的应用理解,切实从零开发一款基于Serverless架构的机器学习应用,并将其部署上线,以便对Serverless架构下的机器学习项目的开发技巧有更加深入的认识和见解。

阅读是一个反复又枯燥的过程,读者只有反复研读,才能使自己对Serverless架构的学习不断深入,对Serverless架构下的机器学习应用有更深入的了解。另外,Serverless架构与机器学习发展速度非常快,所以本书的案例代码可能存在失效的情况。但是,笔者会尽快在每个案例的代码仓库中做更新,希望读者可以切实利用好每个案例提供的仓库地址,帮助自己更加高效地了解、学习在Serverless架构下如何更简单、更方便、更科学地开发、部署、运维机器学习项目。

致谢

本书是一本云计算与机器学习结合的技术书。在编写的时候,笔者曾遇到很多困难,在此特别感谢阿里云云原生团队、蚂蚁集团CTO线相关的小伙伴,是你们的支持和鼓励,让本书顺利完成。

感谢田初东(白酒)和我一起合作,努力完成本书的编写,尽管在这个过程中遇到了诸多挑战,但是我们通过各种努力最终达成了目标,过程值得回忆,结果令人欣慰;感谢杨秋弟(曼红)、杨浩然(不瞋)、马鸣(意宸)、陈绪(还剑)等前辈,在本书的整个创作过程中不断给予鼓励和支持,让本书在预期时间内顺利完成;感谢国防科技大学窦勇教授、浙江大学卜佳俊教授、中国科学院大学雷渠江教授等,对本书提出了极具建设性的意见;感谢阿里云云原生开发者姜曦(筱姜)、机械工业出版社杨福川老师等,在本书编写过程中给予帮助和支持;感谢阿里云UED团队周月侨(小取)帮忙对本书部分插图等进行设计、规范;感谢聂大鹏(拓山)、罗松(西流)、张千风(千风)等,在本书编写过程中指导部分代码的完成,以及功能、案例的实现;感谢钱梅芳(宝惜)对本书提供建议。同时,感谢我的家人对我工作的支持,对我每走一步的信任和鼓励;感谢身边的小伙伴对我的关心和帮助。

由于作者水平有限,书中不足及错误之处在所难免,敬请专家和读者批评指正。

江昱(刘宇)