• Serverless 架构下的 AI 应用开发


    简介: 深度学习彻底改变了人工智能,但其广泛应用离不开强大的算力支撑,如何使用 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)即可免费阅读。

    原文链接:https://click.aliyun.com/m/1000352070/
    本文为阿里云原创内容,未经允许不得转载。 
  • 相关阅读:
    《算法竞赛进阶指南》0x00 Hamiton路径 位运算
    HDOJ1170二叉树的遍历 经典问题
    HDOJ1527博弈论之Wythoff游戏
    HDOJ1848NIM博弈 SG函数
    CRC校验码
    Delphi DBGrid 获取焦点几行和几列
    程序进制 常用简写标识
    Delphi 转换函数 HexToBin用法 将16进制字串转成二进制
    细胞-红细胞
    细胞-白细胞-中性粒细胞
  • 原文地址:https://www.cnblogs.com/yunqishequ/p/16555098.html
Copyright © 2020-2023  润新知