机器学习洞察 | 降本增效,无服务器推理是怎么做到的?

Serverless
机器学习
Amazon SageMaker
0
0
2022 年,[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理受到了越来越多的关注。常见的推理方式包括实时推理、批量转换和异步推理: ![image.png](https://dev-media.amazoncloud.cn/8a4d606f067b4fe5a142f05cbda06610_image.png "image.png") - 实时推理:具有低延迟、高吞吐、多模型部署的特点,能够满足 A/B 测试的需求 - 批量转换:能够基于任务 (Job-based) 的系统进行大数据集的处理 - 异步推理:具有近实时、大负载 (1 GB) 的优势,但推理时间较长(一般在 15 分钟内) 本文将为您重点介绍在[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)中[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理的发展和演变,并通过实际的场景分析和部署方式来分享[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理的应用,下面就一起来看看吧: ## **为什么选择无服务器推理** [无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理本身是个相对宽泛的术语。对于开发者来说,[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理代表了一种构建可自动扩展的新型应用程序的具体方式,其最突出的优势在于无需维护、运行或修复包括服务器、集群乃至负载均衡器在内的各类基础设施元素。 通常开发者在无法预测用户的访问模式时会考虑使用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理: ![image.png](https://dev-media.amazoncloud.cn/5546ba00de964965be703bc2616ec6c5_image.png "image.png") 有些情况下,上线应用时会存在负载的间歇性。如果开发者不考虑用户用量而使用定量部署模式的话,当应用长时间没有用户访问时就会导致过度的容量部署,造成利用率低而成本高。 而当用量增加,面临容量部署的挑战时,开发者需要投入大量的时间和资源,部署并管理维护服务器的弹性扩展,导致 TCO (Total Cost of Ownership) ,即总拥有成本的增加。 我们通过下面这个具体的场景帮助开发者更好地理解[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理: > Sarah 是一家线上订餐应用的 DevOps 的开发人员,她希望通过[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)来为客户个性化的推荐餐厅。由于应用的访问流量不可预测,Sarah 面临管理配置自动扩展策略的挑战,担心由于过量部署资源而导致成本过高。 > > ![image.png](https://dev-media.amazoncloud.cn/ea1ff78744ed49faa107f6f27ffab5bd_image.png "image.png") > **Sarah 决定采用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理的方式。** > > 她不再需要自己管理配置扩展策略,也无需过量部署资源,而是根据应用的用量按需自动伸缩。全托管服务不仅节省了 Sarah 的时间也降低了推理成本,让她可以把更多的时间和资源投入到优化算法和项目上。 > > ![image.png](https://dev-media.amazoncloud.cn/281ec75881e646d5bf2cbe19ba4e3021_image.png "image.png") ## **无服务器推理的优势** 从 Sarah 的例子我们可以看出[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理的优势是**能够实现模型的开箱即用,帮助开发者降低[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)的成本。** 具体来说,对比早期的 Amazon Lambda [无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理,开发者仍然需要配置模型参数(例如使用 EFS 放置模型时,需要自行配置 EFS 访问的终端节点来完成推理)。而 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) [无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)的推理方式拥有更好的封装,能够形成一个独立的特征和服务特性。开发者不需要自己搭建部署[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理的其他工作,而是将更多的精力和资源聚焦于具体业务逻辑的实现。 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 的服务器推理能够在抽象基础设施的同时,显著降低间歇性流量工作负载的成本。 ### **全托管的无服务器化推理** 全托管的[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化推理有三大优势:拥有全托管的基础资源、[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化、能够自动伸缩资源。 ![image.png](https://dev-media.amazoncloud.cn/bcf04710f30145dbb331b85aa90dd62f_image.png "image.png") - 拥有全托管的基础资源等于拥有安全、监控、日志记录、高可用、高容错的资源。 - [无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化代表着用户无需选择服务器类型和容量,能够直接基于推理需求来进行内存大小的选择。 - 自动伸缩资源代表着无需配置扩展策略。 ### **一键部署无服务器化推理节点** 完成[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化推理节点部署需要三个步骤: ![image.png](https://dev-media.amazoncloud.cn/a0382776e9974024a62c727d45433431_image.png "image.png") 1. 用 ECR 镜像来存放推理代码; 2. 用 S3 存放模型文件; 3. 选择合适的内存大小。 在第二步中,[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 将通过[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化推理终端节点实现自动管理计算资源;按需自动伸缩;管理日志、监控及安全。客户端应用或其它云服务将触发推理请求给[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化推理终端节点,而[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)化推理终端节点经过处理后,再将推理结果发给最终客户。 ### **代码示例:Amazon SageMaker 无服务器推理** 创建节点配置:开发者需要对用户端配置内存使用大小,以及最大并发推理的调用数。 ``` endpoint_config_response = client.create_endpoint_config( EndpointConfigName=xgboost_epc_name, ProductionVariants=[ { "VariantName": "byoVariant", "ModelName": model_name, "ServerlessConfig": { "MemorySizeInMB": 4096, "MaxConcurrency": 1, }, }, ], ) ``` 创建节点及推理: ``` response = runtime.invoke_endpoint( EndpointName=endpoint_name, Body=b".345,0.224414,.131102,0.042329,.279923,-0.110329,-0.099358,0.0", ContentType="text/csv", ) print(response["Body"].read()) ``` 完整代码可参考如下链接: https://github.com/aws/amazon-sagemaker-examples/blob/main/serverless-inference/Serverless-Inference-Walkthrough.ipynb?trk=cndc-detail 希望这篇文章可以帮助您更清晰地了解[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)在[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)推理方面的进展。您也可以在 Build On Cloud 视频号观看这一部分的视频演讲: <video src="https://dev-media.amazoncloud.cn/eb625a272d1945b8a53893b73ad530c4_%E9%BB%84%E6%B5%A9%E6%96%873%E6%96%B0_%E5%B0%81%E9%9D%A2%E5%B1%85%E5%B7%A6.mp4" class="bytemdVideo" controls="controls"></video> 欢迎阅读《[机器学习洞察](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5Mzg1NDc2NQ==&action=getalbum&album_id=2674381074877399043#wechat_redirect?trk=cndc-detail)》系列文章中查看对于多模态[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)和分布式训练的解读。下一篇文章我们将介绍有关 JAX 框架的演进趋势,请持续关注 Build On Cloud 微信公众号。 ## **往期推荐** - [机器学习洞察 | 挖掘多模态数据机器学习的价值](https://dev.amazoncloud.cn/column/article/63e32a58e5e05b6ff897ca0c) - [机器学习洞察 | 分布式训练让机器学习更加快速准确](https://dev.amazoncloud.cn/column/article/63e32dd06b109935d3b77259) ![Build on cloud.gif](https://dev-media.amazoncloud.cn/55ac6f67a1a044f59ef979666b7cc6dd_Build%20on%20cloud.gif "Build on cloud.gif")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭