为你写诗:3 步搭建 Serverless AI 应用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
注册配置 MSE Nacos/ZooKeeper,118元/月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 本文作者将以一个自动生成五言绝句诗句的示例,向大家介绍一个典型函数计算的应用场景:AI Model Serving(AI 模型服务化)。内容分三个部分进行:首先介绍函数计算和 AI 推理;其次介绍了如何 3 步搭建自动生成五言绝句诗句应用;最后介绍了函数计算在 AI 推理场景的优势。

作者 | 杜万(倚贤) 阿里巴巴技术专家

本文整理自 1 月 2 日社群分享,每月 2 场高质量分享,点击加入社群。

关注“阿里巴巴云原生”公众号,回复关键词 0102 即可下载本文 PPT。

导读:本文作者将以一个自动生成五言绝句诗句的示例,向大家介绍一个典型函数计算的应用场景:AI Model Serving(AI 模型服务化)。内容分三个部分进行:首先介绍函数计算和 AI 推理;其次介绍了如何 3 步搭建自动生成五言绝句诗句应用;最后介绍了函数计算在 AI 推理场景的优势。

函数计算和 AI 推理

第一部分,我们简单介绍一下什么是函数计算和 AI 推理。函数计算能为 AI 场景做些什么?

为你写诗(1).005.jpeg

Serverless 分为 FaaS 和 BaaS,阿里云函数计算属于
FaaS,是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。

借助于函数计算,您可以快速构建任何类型的应用和服务,无需管理和运维。而且,您只需要为代码实际运行所消耗的资源付费,代码未运行则不产生费用。

为你写诗(1).007.jpeg

如上图所示:是一个完整的机器学习项目的工作流程。

工作流程可以分为三个部分:

  • 首先对原始数据进行预处理;
  • 然后将处理过的数据进行模型训练,会选用不同的参数和算法组合进行多次训练,形成多个备选模型;
  • 最后选一个最合适的模型进行部署。

为你写诗(1).008.jpeg

上述的 3 个步骤,前两个步骤数据处理和模型训练主要由数据科学工作者来完成。最后一步通常是应用开发者的工作。当一个 AI 模型被部署成正式的应用时,需要解决可用性、可靠性和可扩展性等应用开发领域的问题。

为你写诗(1).009.jpeg

函数计算是事件触发型计算服务,上游服务如 OSS、MNS 和 API Gateway 会触发事件,事件会触发函数运行,处理上游数据源的数据。这个机制可以用来做机器学习数据的预处理。

为你写诗(1).010.jpeg

另一个函数计算适合 ML 的场景是适合做 AI Model Serving。上图是一个图片分类的示例,通过 TensorFlow 训练的模型可以部署成函数。当一张新的图片做出输入通过 HTTP 协议发送给函数后,函数会返回对这张图片的分类判断。

3 步搭建自动生成五言绝句诗句应用

下面我们进入第二部分:快速部署一个 AI 应用。(更多详细信息:https://developer.aliyun.com/article/741406

为你写诗(1).012.jpeg

函数支持灵活的调用,分为 GUI、CLI 和 SDK 三种方式:

  • GUI 有 web 版本的控制台和 IDE,也有本地的插件;
  • CLI 我们推荐 Funcraft 工具,Funcraft 是个面向工程的开发工具,提供了模板向导、本地开发调试和部署运行等一些功能,Fcli 侧重于对已部署云端的资源进行操作;
  • SDK 方面,函数计算覆盖了常见语言。

上图右侧是“为你写诗”通过 fun 工具的调用效果。每次调用会返回当次执行的耗时和资源使用情况。返回结果就是由 AI 自动生成的诗句。

为你写诗(1).013.jpeg

上图是“为你写诗”应用的工作原理图。

首先是训练模型,大概有 7 万行五言绝句,通过 TensorFlow 的 CharRNN 训练成模型;然后通过 Funcraft 工具安装 TensorFlow 的 pip 包,用 python 写好调用代码。template.yml 是 ROS 的描述文件,以声明式的方式来描述函数,然后通过 fun deploy 部署函数。

由于 Model 和 TensorFlow lib 会超过函数计算对于部署包 50M 的限制,Funcraft 工具会自动把这两部分部署到 NAS 网盘(如果不存在会提示自动创建),然后运行时函数会像访问本地文件系统一样访问 NAS
网盘上的模型和库文件。

最后用户通过调用函数返回自动生成的诗句。由于函数实例会按照请求量自动扩展,并且按照调用量进行收费,所以快速上线的 AI 服务是一个真实场景下高可用的服务。

为你写诗(1).014.jpeg

要搭建该服务,首选需要安装 git 和 funcraft 工具。funcraft 是一个 github 开源项目,大家可以在 https://github.com/alibaba/funcraft 找到各个平台的安装文件和指南。

然后只需要执行上图中的三个步骤就可以快速地将“为你写诗”应用部署到函数计算平台。

函数计算在 AI 场景的优势

最后一部分,我们会通过不同维度与传统架构对比的方式来总结一下函数计算在 AI 场景的优势。

为你写诗(1).016.jpeg

首先我们看一下函数计算的工程效率:

  • 相比于自建服务(ECS 或者 K8s 集群),函数计算不需要维护基础设施(主机、网络、存储等);
  • 在开发效率上,函数计算通过这些年在 Funcraft 和 VSCode 等工具的建设,解决了应用构建、开发调试和打包部署一系列的痛点,用户可以平滑的上手,通过模板快速部署和二次开发应用;
  • 学习成本上方面,由于函数计算实现了分布式应用的细节,所以只需要专心于实现一个单体应用,更专注于业务。

为你写诗(1).017.jpeg

相比于 ECS 和容器服务,函数计算的弹性更好,支持百毫秒级的弹性,可以更好的应对业务的实时波动。同时也提供了细粒度的、开箱即用的监控报警模块。

为你写诗(1).018.jpeg

上图是一些监控图表,用户可以通过可视化界面直观地理解应用的监控状况。

为你写诗(1).019.jpeg

下面我们来看看一个可用性的对比实验,假设存在上图中的三个 AI 场景:

  • 第一个是部署在 ECS 上的延时敏感应用;
  • 第二个是部署在 ECS 上的成本敏感应用;
  • 第三个是 FC 方案,由于 FC 默认提供了 MKL 加速,所以这也是 FC 的一个小优势。

为你写诗(1).020.jpeg

  • 场景一出现了很多超时或者 5xx 错误,扩容速度太慢, 理论上需要 4 分钟及以上才能扩容:触发报警 31min + 购买启动 ECS(1-5min) > 4 min; 同时缩容速度更慢, 只有触发报警 15
    1min,当然您可以调整触发报警的时间间隔,但是云监控总是分钟级别的粒度,而且设置的值太小,频繁的采购和释放 ECS 并不是一个推荐的操作, 这也是官方推荐扩容是 3 分钟, 缩容 15 分钟的原因;
  • 场景二在压力忽然上升的时候仍然由于扩容不及时导致的 5xx, 同时实例数目图可以看出分钟级别的扩容和缩容速度的滞后在这种场景下可能会严重影响用户体验;
  • 场景三压力和压力的变化明显大于自建 ECS + SLB + ESS 方案,但没有错误,响应时间基本稳定在 200-300ms, 除了冷启动有点毛刺以外。
    但是毛刺的最大时间也没有超过 2s:MKL 加速, 单次运算时间短;快速弹性缩容,压力陡升骤降都能快速伸缩,提高资源的使用效率。

不管是延迟敏感型和成本敏感型, FC 都能很好解决快速响应的问题, 冷启动的毛刺可以通过预留实例+预付费去解决。

为你写诗(1).021.jpeg

解决函数冷启动毛刺问题有两条思路:减少单次启动时间和预先启动(预热)。

首先谈谈如何缩短函数的启动时间。函数的启动时间分为两部分:一部分是由平台负责的,包括代码下载、容器启动、运行时初始化和代码初始化;另一部分是由用户负责的代码部分,这部分往往由于业务的不同比较难优化。

关于预启动函数的方式,函数计算 1.0 的时候,会推荐用户使用 Time Trigger 定时触发函数让函数保持住而不被回收。函数计算 2.0 推出了函数的预留模式。通过预留模式,用户可以让函数一直保持住而不回收。

为你写诗(1).022.jpeg

下面我们针对预留模式做一组对比试验。

为你写诗(1).023.jpeg

  • 场景一:当函数执行的请求到来时,由于没有任何预留资源,所有的请求都是按需, 所以每次压力一增大,就会有很多冷启动的,请求毛刺很多,毛刺的时间达到 20s+;
  • 场景二:当函数执行的请求到来时,由于预留资源充足,所有的请求都被调度到预留的实例中被执行, 这个时候是没有冷启动的,所以请求是没有毛刺的;
  • 场景三:当函数执行的请求到来时,优先被调度到预留的实例中被执行, 这个时候是没有冷启动的,所以请求是没有毛刺的, 后面随着测试的压力不断增大(峰值 TPS 达到 1184), 预留的实例不能满足调用函数的请求, 这个时候函数计算就自动进行按需扩容实例供函数执行,此时的调用就有冷启动的过程, 从上图我们可以看出,函数的最大 latency 时间甚至达到了 32s,如果这个 web AP 是延时敏感的,这个 latency 是不可接受的。

为你写诗(1).024.jpeg

上图中的 4 个小图描绘了不同场景下的资源利用率和成本的关系。

  • 图 1:按照峰值进行 ECS 实例预留,资源利用率小于 30%;
  • 图 2:延迟敏感,资源利用率小于 50%;
  • 图 3:成本敏感,相应的会牺牲一些相应性,资源利用率小于 70%;
  • 图 4:基于预留模式+预付费,把弹性的部分使用函数的按量模式,资源的利用率可以做到 80% 以上。

为你写诗(1).025.jpeg

上面四个 Case 的成本核算,最终函数计算组合付费模式的成本最低。

小结

本次分享到此就结束了,下面为大家总结一下:

  • 函数计算具有快速自动伸缩扩容能力;
  • 开发简单易上手,只需要关心具体的代码逻辑,Funcraft 工具帮助您编排资源和部署应用;
  • 预留模式很好地解决了冷启动中的毛刺问题;
  • 兼顾资源利用率和可用性的同时,预付费可以进一步优化财务成本;
  • 函数计算具有很好的监控设施,您可以可视化观察您函数运行情况、执行时间、内存等信息。

欢迎扫码加入钉钉交流群

如果你对于 Serverless 和函数计算感兴趣的话,欢迎钉钉扫码进入交流群。

二维码.png

云原生技术公开课

公开课.png

本课程是由 CNCF 官方与阿里巴巴强强联合,共同推出的以“云原生技术体系”为核心、以“技术解读”和“实践落地”并重的系列技术公开课

阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6天前
|
机器学习/深度学习 人工智能 自动驾驶
企业内训|AI大模型在汽车行业的前沿应用研修-某汽车集团
本课程是TsingtaoAI为某汽车集团高级项目经理设计研发,课程全面系统地解析AI的发展历程、技术基础及其在汽车行业的深度应用。通过深入浅出的理论讲解、丰富的行业案例分析以及实战项目训练,学员将全面掌握机器学习、深度学习、NLP与CV等核心技术,了解自动驾驶、智能制造、车联网与智能营销等关键应用场景,洞悉AI技术对企业战略布局的深远影响。
135 97
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
36 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
|
5天前
|
机器学习/深度学习 数据采集 人工智能
AI在用户行为分析中的应用:实现精准洞察与决策优化
AI在用户行为分析中的应用:实现精准洞察与决策优化
48 15
|
1天前
|
人工智能 API
新年课程开启:手把手教学,0基础5次课程学会搭建无限拓展的AI应用
你是否想过自己也能动手搭建一个AI应用?现在,这个目标触手可及!
|
4天前
|
人工智能 资源调度 调度
云上AI Infra解锁大模型创新应用
本节课程由阿里云智能集团资深技术专家王超分享,主题为AI基础设施的发展趋势。课程聚焦于AI Infra设计与Scaling Law,探讨了下一代AI基础设施的设计目标、功能升级及推理场景中的应用。主要内容包括高效支持大规模模型训练和推理、全球调度系统的设计、Rack level的Scale优化以及多租户容器化使用方式。通过这些改进,旨在提升并行效率、资源利用率及稳定性,推动AI基础设施迈向更高性能和更优调度的新阶段。
|
8天前
|
弹性计算 人工智能 自然语言处理
云工开物:阿里云弹性计算走进高校第2期,与北京大学研一学生共探AI时代下的应用创新
阿里云高校合作、弹性计算团队​于北京大学,开展了第2届​【弹性计算进校园】​交流活动。
|
7天前
|
机器学习/深度学习 传感器 人工智能
开源AI视频监控系统在监狱安全中的应用——实时情绪与行为分析、暴力预警技术详解
针对监狱环境中囚犯情绪波动和复杂人际互动带来的监控挑战,传统CCTV系统难以有效预警暴力事件。AI视频监控系统基于深度学习与计算机视觉技术,实现对行为、情绪的实时分析,尤其在低光环境下表现优异。该系统通过多设备协同、数据同步及自适应训练,确保高精度识别(95%以上)、快速响应(<5秒),并具备24小时不间断运行能力,极大提升了监狱安全管理的效率与准确性。
|
10天前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
194 0
|
10天前
|
人工智能 运维 Devops
CAP:Serverless + AI 让应用开发更简单
对于众多开发者而言,Serverless 架构的核心优势在于其能够无缝集成多种云产品与组件,从而使得开发者可以更加专注于核心业务逻辑和创新。此外,Serverless 架构还提供了按量付费的灵活计费模式,进一步降低了资源成本。使用云应用开发平台 CAP,在 AI 领域,企业就可以专注于模型训练、算法优化等关键任务,让 AI 应用的开发、部署以及全生命周期的管理更加简单。可以预见 Serverless 技术将催生一系列创新且有趣的应用,而这些应用将不断拓展 AI 技术的边界。
|
4月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
183 13

相关产品

  • 函数计算