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 的服务器推理能够在抽象根底设施的同时,明显降低间歇性流量作业负载的本钱。

全保管的无服务器化推理

全保管的无服务器化推理有三大优势:具有全保管的根底资源、无服务器化、能够主动弹性资源。

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

  • 具有全保管的根底资源等于具有安全、监控、日志记录、高可用、高容错的资源。
  • 无服务器化代表着用户无需挑选服务器类型和容量,能够直接基于推理需求来进行内存大小的挑选。
  • 主动弹性资源代表着无需装备扩展战略。

一键布置无服务器化推理节点

完成无服务器化推理节点布置需求三个过程:

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

  1. 用 ECR 镜像来寄存推理代码;
  2. 用 S3 寄存模型文件;
  3. 挑选适宜的内存大小。

在第二步中,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())

完好代码可参阅如下链接:

github.com/aws/amazon-…

期望这篇文章能够协助您更明晰地了解机器学习在无服务器推理方面的发展。您也能够在 Build On Cloud 视频号观看这一部分的视频讲演:

点击检查视频:dev.amazoncloud.cn/video/video…

欢迎阅览《机器学习洞察》系列文章中检查关于多模态机器学习和分布式练习的解读。下一篇文章咱们将介绍有关 JAX 结构的演进趋势,请持续重视 Build On Cloud 微信大众号。

往期引荐

  • 机器学习洞察 | 挖掘多模态数据机器学习的价值
  • 机器学习洞察 | 分布式练习让机器学习愈加快速准确

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

作者黄浩文

亚马逊云科技资深开发者布道师,专心于 AI/ML、Data Science 等。具有 20 多年电信、移动互联网以及云核算等行业架构设计、技能及创业办理等丰厚经历,曾就职于 Microsoft、Sun Microsystems、我国电信等企业,专心为游戏、电商、媒体和广告等企业客户供给 AI/ML、数据分析和企业数字化转型等解决方案咨询服务。

文章来历:dev.amazoncloud.cn/column/arti…