2022 年,无服务器推理受到了越来越多的关注。常见的推理形式包含实时推理、批量转换和异步推理:
- 实时推理:具备低提早、高吞吐、多模型部署的特点,可能满足 A/B 测试的需要
- 批量转换:可能基于工作 (Job-based) 的零碎进行大数据集的解决
- 异步推理:具备近实时、大负载 (1 GB) 的劣势,但推理工夫较长(个别在 15 分钟内)
本文将为您重点介绍在机器学习中无服务器推理的倒退和演变,并通过理论的场景剖析和部署形式来分享无服务器推理的利用,上面就一起来看看吧:
亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注 / 珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库! |
为什么抉择无服务器推理
无服务器推理自身是个绝对宽泛的术语。对于开发者来说,无服务器推理代表了一种构建可主动扩大的新型应用程序的具体形式,其最突出的劣势在于无需保护、运行或修复包含服务器、集群乃至负载均衡器在内的各类基础设施元素。
通常开发者在无奈预测用户的拜访模式时会思考应用无服务器推理:
有些状况下,上线利用时会存在负载的间歇性。如果开发者不思考用户用量而应用定量部署模式的话,当利用长时间没有用户拜访时就会导致适度的容量部署,造成利用率低而老本高。
而当用量减少,面临容量部署的挑战时,开发者须要投入大量的工夫和资源,部署并治理保护服务器的弹性扩大,导致 TCO (Total Cost of Ownership),即总领有老本的减少。
咱们通过上面这个具体的场景帮忙开发者更好地了解无服务器推理:
Sarah 是一家线上订餐利用的 DevOps 的开发人员,她心愿通过机器学习来为客户个性化的举荐餐厅。因为利用的拜访流量不可预测,Sarah 面临治理配置主动扩大策略的挑战,放心因为适量部署资源而导致老本过高。
Sarah 决定采纳无服务器推理的形式。
她不再须要本人治理配置扩大策略,也无需适量部署资源,而是依据利用的用量按需主动伸缩。全托管服务不仅节俭了 Sarah 的工夫也升高了推理老本,让她能够把更多的工夫和资源投入到优化算法和我的项目上。
无服务器推理的劣势
从 Sarah 的例子咱们能够看出无服务器推理的劣势是可能实现模型的开箱即用,帮忙开发者升高机器学习的老本。
具体来说,比照晚期的 Amazon Lambda 无服务器推理,开发者依然须要配置模型参数(例如应用 EFS 搁置模型时,须要自行配置 EFS 拜访的终端节点来实现推理)。而 Amazon SageMaker 无服务器的推理形式领有更好的封装,可能造成一个独立的特色和服务个性。开发者不须要本人搭建部署无服务器推理的其余工作,而是将更多的精力和资源聚焦于具体业务逻辑的实现。
Amazon SageMaker 的服务器推理可能在形象基础设施的同时,显著升高间歇性流量工作负载的老本。
全托管的无服务器化推理
全托管的无服务器化推理有三大劣势:领有全托管的根底资源、无服务器化、可能主动伸缩资源。
- 领有全托管的根底资源等于领有平安、监控、日志记录、高可用、高容错的资源。
- 无服务器化代表着用户无需抉择服务器类型和容量,可能间接基于推理需要来进行内存大小的抉择。
- 主动伸缩资源代表着无需配置扩大策略。
一键部署无服务器化推理节点
实现无服务器化推理节点部署须要三个步骤:
- 用 ECR 镜像来寄存推理代码;
- 用 S3 寄存模型文件;
- 抉择适合的内存大小。
在第二步中,Amazon SageMaker 将通过无服务器化推理终端节点实现主动治理计算资源;按需主动伸缩;治理日志、监控及平安。客户端利用或其它云服务将触发推理申请给无服务器化推理终端节点,而无服务器化推理终端节点通过解决后,再将推理后果发给最终客户。
代码示例: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
心愿这篇文章能够帮忙您更清晰地理解机器学习在无服务器推理方面的停顿。您也能够在 Build On Cloud 视频号观看这一部分的视频演讲:
点击查看视频:https://dev.amazoncloud.cn/video/videoDetail?id=63e393ace5e05b6ff897ca17&sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=SF
欢送浏览《机器学习洞察》系列文章中查看对于多模态机器学习和分布式训练的解读。下一篇文章咱们将介绍无关 JAX 框架的演进趋势,请继续关注 Build On Cloud 微信公众号。
往期举荐
- 机器学习洞察 | 开掘多模态数据机器学习的价值
- 机器学习洞察 | 分布式训练让机器学习更加疾速精确
作者
黄浩文
亚马逊云科技资深开发者布道师,专一于 AI/ML、Data Science 等。领有 20 多年电信、挪动互联网以及云计算等行业架构设计、技术及守业治理等丰盛教训,曾就任于 Microsoft、Sun Microsystems、中国电信等企业,专一为游戏、电商、媒体和广告等企业客户提供 AI/ML、数据分析和企业数字化转型等解决方案咨询服务.
文章起源:https://dev.amazoncloud.cn/column/article/63e33010e5e05b6ff89…