Serverless 架构下的 AI 应用开发

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 深度学习彻底改变了人工智能,但其广泛应用离不开强大的算力支撑,如何使用 Serverless 架构应对机器学习领域的工程挑战?

随着时间的推移,Serverless 架构变得越来越火热,凭借着极致弹性、按量付费、低成本运维等特性,在很多领域发挥着越来越重要的作用;机器学习领域在近些年也非常火热,并在越来越多的行业中得到应用。

实际上,机器学习项目往往存在资源占用率高、利用率低的问题,尤其在流量波峰和波谷差值较大的项目中,资源浪费更为显著。除此之外,机器学习项目的部署、更新、后期维护相对来说也存在一定的复杂度。由此若将 Serverless 架构应用在机器学习项目中,在保证机器学习项目性能的同时,既能降低成本,又能提高资源利用率,是非常值得研究和探索的课题。

这里推荐本新书

《Serverless 架构下的 AI 应用开发》

111.png

本书旨在通过简单明了的语言、真实的案例,以及开放的源代码,为读者介绍 Serverless 架构与机器学习相关的基础知识。

希望读者可以通过本书真正体会到 Serverless 架构与机器学习结合的重要价值;并能顺利在 Serverless 架构下开发、上线机器学习项目;从而更加直接地获得云计算带来的技术红利。


推荐序

Preface 序一
过去十年,Serverless 和以机器学习为基础的人工智能技术都取得了巨大进步,成为不可忽视的技术发展趋势。

云的产品体系正在 Serverless 化,从计算、存储、数据库到中间件,越来越多的云产品采用了 Serverless 模式。服务器不再是开发者构建应用的唯一选择。全托管的函数计算、Serverless 应用引擎、对象存储、消息队列、数据库等云产品成为构建应用的基础组件,帮助开发者在更高的抽象层构建弹性、高可用的云原生应用。
在云的世界,应用开发将经历汇编语言向高级语言的变革,Serverless 将在下一个十年成为云的默认编程范式。

与此同时,深度学习彻底改变了人工智能。在计算机视觉、语音识别、自然语言处理等领域,深度学习已经取得突破性进展,并将重塑自动驾驶、机器人技术等领域。深度学习的广泛应用离不开强大的算力支撑。无论模型训练还是推理,它们都需要充沛的算力。因此从底层硬件,到深度学习框架,再到垂直应用,深度学习的每个层面都给已有的计算范式带来了挑战。如何高效管理 CPU、GPU 甚至 FPGA 等多种硬件资源?如何整合数据清洗等多个流程来快速实现模型训练?如何让模型推理在线服务更加弹性、高效?这些问题是学术界和工业界一直在思考的,也和 Serverless 的愿景十分契合。

Serverless 和机器学习的交集是一个迷人的领域,业界投入极大的热情探索 Serverless 架构在机器学习领域的应用。在模型推理等分支领域,Serverless 已经成为非常有吸引力的架构。

阿里云数据库团队使用函数计算构建和运行机器学习算法,对几十万数据库实例的运维数据进行分析和处理,实现数据库实例异常检测、SQL 优化、自动弹性伸缩等运维自动化。网易云音乐使用函数计算运行音频指纹识别、音译歌词、副歌检测等算法,处理超过 6000 万首音乐,速度提升 10 倍。

本书除带领读者学习经典的机器学习算法、模型、框架外,还探讨了如何使用 Serverless 架构应对机器学习领域的工程挑战;不仅有理论基础的介绍,还有大量实战经验的分享。读者将学习到机器学习的基本概念、应用特点、架构设计、性能调优等知识。

杨皓然

阿里云智能资深技术专家、阿里云 Serverless 研发负责人

Preface 序二
云原生使组织能够在现代云环境(例如公共云、私有云和混合云)中构建和运行可扩展的应用程序,更快地创新,并使企业更敏捷地对市场做出反应。 云原生无处不在已成事实,并且赋能各个新技术。

你有没有想过构建一个机器学习应用程序:后端有一个重量级模型,前端有一个用户友好的界面,以及一个无服务器的云架构,以便你的产品可以被千千万万的用户应用?

Serverless 解决方案具有的简单性和自动扩展性使其成为大规模运行机器学习应用程序的绝佳选择。基于 Serverless 架构,你可以在不配置或管理服务器的情况下运行代码,且只需为运行时间付费。
如果你想进一步了解这方面的知识,我向你推荐这本书。

Keith
CNCF(云原生计算基金会)中国区总裁

Preface 序三
如今,人工智能在社会发展中扮演着不可或缺的角色,在提高劳动效率、降低劳动成本、优化人力资源结构及提供创新性工作岗位方面带来革命性成果;而云计算为人工智能提供算力支撑的同时,也在逐渐推动行业创新与技术迭代。

随着时间的发展,诞生于云计算高速发展时期的 Serverless 架构逐渐受到关注,正在与更多领域进行有机结合,包括人工智能领域。部署在 Serverless 架构上的人工智能项目不仅可以在近乎无限的计算资源下运行,还可以基于 Serverless 架构的弹性伸缩、按量付费等特性实现降本提效的业务目标。

本书介绍了 Serverless 架构与机器学习项目的结合案例,并通过对基础知识的总结、项目开发实战经验的分享以及项目调优方案的探索,进一步帮助读者拓展思路。本书结构清晰、内容翔实,是一本为 Serverless 开发者以及机器学习项目人员量身定做的技术书籍,值得一读。

卜佳俊
浙江大学研究生院副院长、计算机学院教授、国家“万人计划”科技创新领军人才

Preface 序四
过去几年,云计算加速了互联网产业的发展,Serverless 架构正在以极快的速度促进云计算快速迭代。2018 年,全球知名 IT 咨询调研机构 Gartner 发布报告,将 Serverless 计算列为十大影响基础设施和运维的技术;2019 年,UC Berkeley 在论文“Cloud Programming Simplified: A Berkeley View on Serverless Computing”中表示“Serverless 将成为云时代默认的计算范式”;而 2021年, Forester、DataDog 等一系列机构对Serverless架构投来更多关注的目光,先后发布了多个报告,进一步对 Serverless 进行调研和大胆预测。

在 Serverless 架构飞速发展的过程中,Serverless 架构如何与各领域结合是不可避免的话题,尤其像人工智能这样的领域,Serverless 架构如何将自身的技术红利顺利地作用到机器学习项目,如何在保证机器学习项目高效与稳定运行的同时降本提效,成为很多开发者关注的重点。

作为近些年非常热门的技术,人工智能已经在多个行业落地,在人们生产和生活中产生了积极影响。本书以 Serverless 架构和机器学习为结合点,针对不同行业、不同领域的应用为读者介绍 Serverless 架构下的机器学习项目实战。对于读者来说,书中丰富的实践案例、项目开发经验都颇具借鉴意义。

雷渠江
中国科学院大学博士生导师、粤港澳人工智能联合实验室执行主任

Preface 序五
云计算是一种能够将动态伸缩的虚拟化资源通过互联网以服务的方式提供给用户的计算模式。服务指的是通过一系列活动,而不是实物的方式,满足对方的需求,它是社会经济和社会化分工发展到一定阶段的必然产物。用户通过网络发出计算需求(输入),由服务方汇聚资源进行计算、生成结果(计算输出)并通过网络反馈给用户。云计算技术就是这种新模式下的计算服务使能技术。在该模式下,服务方通过云计算技术保障服务质量并降低成本。
Serverless 架构是云计算发展到现阶段的产物。它运行在一个无状态的计算容器中,由事件驱动,生命周期很短(甚至只有一次调用),完全由第三方管理,具有灵活、轻量化等特性,在越来越多的场景中有非常优秀的表现。

在以算力为主要驱动力的新一轮人工智能浪潮中,机器学习在自然语言处理、图像处理等领域实现了飞跃性发展,催生了人脸识别、语音识别、无人驾驶、对话机器人等一系列创新应用。然而,实现机器学习算法和构建人工智能应用需要强大的算力和高效的数据存储、传输和处理。对于广大从事该领域工作的 IT 人士而言,自行构建支撑环境需要付出高昂的成本和代价,而 Serverless 架构通过云计算模式可以有效解决这一难题。

本书介绍了 Serverless 架构以及如何基于 Serverless 架构进行应用开发,尤其是Serverless 架构与各种机器学习框架相结合的应用。全书深入浅出地介绍了 Serverless 架构相关的知识内容,并详细介绍了大量实战案例。无论人工智能项目的开发人员还是人工智能项目的策划、管理人员,都值得阅读本书。

莫 同
北京大学软件与微电子学院副教授


目录

序言
前言
第1章 初识Serverless架构
1.1 Serverless架构的概念
1.2 Serverless架构的特点
1.2.1 优势与价值
1.2.2 面临的挑战
1.3 Serverless架构的应用场景
第2章 Serverless架构下的应用开发
2.1 Serverless架构下的应用开发流程
2.2 与ServerFul应用开发流程对比
2.3 传统Web框架部署与迁移
2.3.1 请求集成方案
2.3.2 其他方案
2.4 Serverless应用的开发和部署
2.4.1 如何开发、部署Serverless应用
2.4.2 如何对Serverless应用进行调试
2.4.3 通过开发者工具进行依赖安装和项目构建
2.4.4 Serverless架构与CI/CD工具的结合
2.5 Serverless应用的可观测性
第3章 机器学习入门
3.1 什么是人工智能
3.1.1 人工智能、机器学习和深度学习
3.1.2 人工智能的发展
3.1.3 人工智能的典型应用场景
3.2 常用的机器学习算法
3.2.1 常见的监督学习算法
3.2.2 常见的无监督学习算法
3.2.3 其他常见的深度学习模型
第4章 主流机器学习框架与Serverless架构结合
4.1 scikit-learn与Serverless架构结合
4.1.1 scikit-learn介绍
4.1.2 scikit-learn实践:鸢尾花数据分类
4.1.3 与Serverless架构结合:文本分类
4.2 TensorFlow与Serverless架构结合
4.2.1 TensorFlow介绍
4.2.2 TensorFlow实践:基于人工智能的衣物区分
4.2.3 与Serverless架构结合:目标检测系统
4.3 PyTorch与Serverless架构结合
4.3.1 PyTorch介绍
4.3.2 PyTorch实践:图像分类系统
4.3.3 与Serverless架构结合:对姓氏进行分类
4.4 PaddlePaddle与Serverless架构结合143
4.4.1 PaddlePaddle介绍
4.4.2 PaddlePaddle实践:手写数字识别任务
4.4.3 与Serverless架构结合:Paddle-OCR项目开发与部署
第5章 Serverless架构下的AI项目实战
5.1 Serverless架构下的AI应用
5.1.1 项目的开发与部署
5.1.2 冷启动优化
5.1.3 训练与推理性能优化
5.1.4 模型更新迭代方案
5.2 模型升级在Serverless架构下的实现与应用
5.2.1 模型升级迭代需求背景介绍
5.2.2 猫狗识别项目训练
5.2.3 将模型部署到Serverless架构
5.2.4 用户反馈与模型迭代
5.2.5 项目总结
5.3 人脸识别在Serverless架构下的应用
5.3.1 人脸识别技术介绍
5.3.2 人脸识别模型训练
5.3.3 人脸识别模型的应用
5.3.4 项目Serverless化
5.3.5 项目总结
5.4 文本情感分析在Serverless架构下的应用
5.4.1 文本情感分析介绍
5.4.2 情感分析模型的训练
5.4.3 部署到Serverless架构
5.4.4 项目Serverless化
5.4.5 项目总结
第6章 基于Serverless架构的智能问答系统
6.1 需求分析
6.2 整体设计
6.2.1 数据库设计
6.2.2 原型图设计
6.2.3 接口设计
6.2.4 架构设计
6.3 项目开发
6.3.1 项目初始化
6.3.2 数据库与表的建设
6.3.3 管理后台相关能力的配置
6.3.4 业务逻辑开发
6.4 项目部署与运维
6.5 项目预览
6.6 项目总结
第7章 基于Serverless架构的人工智能相册小程序
7.1 需求分析
7.2 整体设计
7.2.1 数据库设计
7.2.2 原型图设计
7.2.3 细节设计
7.2.4 架构设计
7.3 项目开发
7.3.1 项目初始化
7.3.2 小程序开发
7.3.3 服务端开发
7.3.4 管理系统开发
7.4 项目预览
7.5 经验积累
7.5.1 Web框架与阿里云函数计算
7.5.2 如何进行本地调试
第8章 Serverless应用的优化与注意事项
8.1 函数基础与资源编排
8.1.1 函数并不是“函数”
8.1.2 对无状态性的认识
8.1.3 资源评估的重要性
8.1.4 工作流的加持
8.2 警惕冷启动
8.2.1 云厂商侧的冷启动优化方案
8.2.2 开发者侧降低冷启动影响的方案
8.3 应用开发注意事项
8.3.1 如何上传文件
8.3.2 文件读写与持久化方法
8.3.3 慎用部分Web框架的特性
8.3.4 应用组成结构注意事项
8.3.5 如何实现WebSocket
8.3.6 善于利用平台特性

222.png

关注 Serverless 微信公众号(ID:serverlessdevs)即可免费阅读。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
7天前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
27天前
|
存储 人工智能 分布式计算
Parquet 文件格式详解与实战 | AI应用开发
Parquet 是一种列式存储文件格式,专为大规模数据处理设计,广泛应用于 Hadoop 生态系统及其他大数据平台。本文介绍 Parquet 的特点和作用,并演示如何在 Python 中使用 Pandas 库生成和读取 Parquet 文件,包括环境准备、生成和读取文件的具体步骤。【10月更文挑战第13天】
217 60
|
27天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第18天】Serverless架构,即无服务器架构,是一种新兴的云计算模式,让开发者无需管理服务器即可构建和运行应用。本文探讨了其核心概念、优势、挑战及最佳实践,强调了按需付费、自动扩展和开发效率等优点,同时也指出了冷启动、状态管理和调试监控等挑战。
|
19天前
|
机器学习/深度学习 监控 Serverless
探索Serverless架构:云计算的新前沿
【10月更文挑战第26天】本文探讨了Serverless架构作为新兴的云计算范式,如何改变应用的构建和部署方式。文章介绍了Serverless的核心概念、优势和挑战,并提供了开发技巧和实用工具,帮助开发者更好地理解和利用这一技术。
|
19天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
55 1
|
22天前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第23天】Serverless 架构是一种新兴的云计算范式,允许开发者构建和运行应用程序而无需管理服务器。本文深入探讨了 Serverless 的核心概念、优势、挑战及最佳实践,帮助开发者更好地理解和应用这一技术。
|
24天前
|
人工智能 运维 Serverless
【CAP评测有奖】邀您共探 AI 应用开发新趋势,赢取多重好礼!
云应用开发平台 CAP(Cloud Application Platform)是阿里云推出的一站式应用开发和生命周期管理平台。是专为现代开发者打造的一站式解决方案,旨在简化应用开发流程,加速创新步伐。它集成了丰富的 Serverless + AI 应用模板、开源工具链与企业级应用管理功能,让无论是个人还是企业开发者,都能轻松构建云上应用,并实现持续迭代升级。
|
24天前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
171 6
|
26天前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
93 6
|
23天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
52 1

热门文章

最新文章

相关产品

  • 函数计算