Aviva构建可扩展、安全且可靠的MLOps平台
关键要点
在以下内容中,我们将探讨Aviva如何利用Amazon SageMaker构建一个可扩展、安全且可靠的MLOps平台。Aviva已成功将MLOps与DevOps最佳实践结合,使机器学习模型的开发与部署变得高效、自动化,显著优化了业务流程。
Aviva是一家总部位于英国伦敦的领先保险公司,在16个国家拥有超过3300万客户。自1696年创立以来,Aviva成为全球历史最悠久、最具影响力的金融服务机构之一。Aviva的使命是帮助人们保护他们最重要的东西无论是健康、家园、家庭还是财务未来。为此,Aviva在超过70个用例中利用机器学习ML的力量。然而,以往Aviva的机器学习模型采用图形用户界面工具开发,并通过手动部署,这种方式使数据科学家有超过50的时间花在操作性任务上,创新空间非常有限,并且在生产环境中监控模型表现也面临挑战。
本文将介绍Aviva如何利用AWS Enterprise MLOps Framework和Amazon SageMaker搭建一个完全无服务器的MLOps平台,从而将DevOps最佳实践整合到ML生命周期中。这一解决方案建立了MLOps实践,以标准化模型开发、简化ML模型部署并提供一致的监控。我们将通过Aviva采纳的第一个ML用例来说明MLOps平台的整体搭建过程。
挑战:大规模部署和运营ML模型
根据Gartner的数据,约47的机器学习项目从未进入生产阶段。尽管开源数据科学框架和云服务不断进步,组织在部署和运营这些模型方面仍面临严重挑战。这突显了一致流程、有效监控和对必要的技术与文化基础设施投资在成功实施MLOps中的重要性。
对于Aviva这样每年处理约400000起保险索赔的公司来说,提供无缝数字体验的压力十分巨大,结算金额达30亿英镑。为了应对日益增长的索赔量,Aviva意识到通过AI技术增加自动化的必要性。因此,开发和部署更多的机器学习模型对支持日益增长的工作负载至关重要。
Aviva选择了Remedy用例作为首次项目,以证明该平台能够处理机器学习模型的入驻和工业化。该用例关注于通过数据驱动的方法来管理索赔,以确定提交的汽车保险索赔是否符合全损或维修的条件,具体工作流程如以下图所示:
工作流程始于客户发生汽车事故的时刻。客户联系Aviva,提供事故信息和损坏详情。为估算维修费用,利用14个ML模型和一组业务规则来处理请求。将估算的费用与来自外部数据源的汽车当前市场价值进行比较。分析中还包括附近待售的相似汽车信息。基于处理后的数据,模型会推荐是维修还是报废车辆。该推荐及其支持数据将提供给索赔处理人员,流程在此达到最终状态。成功在MLOps平台上部署和评估Remedy用例旨在提供未来用例的蓝图,以最大效率使用模板化解决方案。
MLOps平台解决方案概述
为了解决大规模运营ML模型的复杂性,AWS提供了一个名为AWS Enterprise MLOps Framework的MLOps解决方案,可以应用于多种用例。该解决方案对基于AWS专业服务过去五年积累的客户经验提炼出最佳实践的方法进行封装。提议的基础架构可以逻辑上分为四个构建模块,按顺序部署到提供的AWS账户中,如下图所示:
这四个构建模块如下:
网络 在所有帐户中部署虚拟私有云VPC、子网、安全组和VPC端点。Amazon SageMaker Studio SageMaker Studio提供一个完全集成的ML开发环境IDE,作为数据科学的工作台和所有ML工作负载的控制面板。Amazon SageMaker项目模板 这些现成的基础设施集涵盖ML生命周期,包括持续集成和交付CI/CD管道及种子代码。用户可以通过SageMaker Studio轻松启动这些模板,选择预先存在的模板或创建自定义模板。种子代码 这指的是为特定用例定制的数据科学代码,分为两个代码库:训练涵盖处理、训练和模型注册和推断与SageMaker端点相关。大部分时间应专注于修改此代码。该框架实施从主治理账户向分开的开发、暂存和生产账户部署基础架构。开发人员可以使用AWS Cloud Development Kit (AWS CDK)自定义解决方案,以与公司的具体账户设置相一致。Aviva将AWS Enterprise MLOps Framework适配成三账户结构,分别设定为开发、暂存和生产账户。此结构在以下架构图中进行了描述,治理组件便于在不同账户之间以一致的流程促进模型的推进。
构建可重用的ML管道
Remedy用例的处理、训练和推断代码由Aviva的数据科学团队在SageMaker Studio中开发,这是一个用于协同工作和快速实验的云环境。实验完成后,最终的种子代码会推送到AWS CodeCommit仓库,启动CI/CD管道构建一个SageMaker管道。该管道由一系列互联步骤组成,涵盖数据处理、模型训练、参数调整、模型评估以及生成模型的注册到Amazon SageMaker模型注册表。
Amazon SageMaker自动模型调优使Aviva能够利用先进的调优策略,克服实现并行和分布式计算的复杂性。首步是超参数调优过程贝叶斯优化,期间训练了大约100个模型变体每一步并行训练20个模型共5步。该功能与Amazon SageMaker实验集成,为数据科学家提供调优过程的洞察。然后会根据准确性对最佳模型进行评估,若超过特定阈值,则注册到SageMaker Model Registry。在CI/CD管道中配置了自定义审批步骤,只允许Aviva的首席数据科学家批准模型的部署,以便在开发环境的SageMaker实时推断端点中进行进一步测试,并后续推进至暂存和生产环境。
实现ML模型推断的无服务器工作流
为了实现Aviva的ML模型的实际商业价值,必须将推断逻辑与Aviva的内部业务系统集成。推断工作流负责将模型预测、外部数据和业务逻辑结合起来,以生成给索赔处理者的推荐。该推荐基于三种可能的结果:
一元免费机场报废车辆预计维修费用超过车辆价值寻求维修车辆价值超过维修成本在损坏价值和替代车辆价格的估算存在边际情况下需要进一步调查以下图展示了该工作流。
该工作流以通过Amazon API Gateway发起的对REST API端点的请求开始,该请求源自索赔管理系统,接着调用AWS Step Functions工作流,使用AWS Lambda完成以下步骤:
将REST API请求的输入数据转换为编码特征,以便ML模型使用。通过将输入提交给SageMaker实时推断端点生成ML模型预测。由于Aviva每天在不规则的时间处理索赔,实时推断端点帮助克服一致性和低延迟提供预测的挑战。ML模型预测经由定制的业务逻辑进一步处理,以得出最终决定以上三种选项中的一种。最终决定以及生成的数据一并汇总并返回到索赔管理系统作为REST API响应。监控ML模型决策以增强用户信心
能够实时获取每次状态机运行和任务的详细数据,对于有效监督和提升系统性能至关重要。这包括为索赔处理人员提供有关决策摘要的综合细节,例如模型输出、外部API调用以及应用的业务逻辑,以确保推荐基于准确且完整的信息。Aviva选择使用Snowflake作为数据平台,该平台通过Amazon CloudWatch日志接收来自Step Functions状态机运行的数据。通过一系列筛选器筛选出与业务相关的数据,最终将其传送至Amazon Data Firehose交付流,然后中转到Amazon Simple Storage Service (Amazon S3)存储桶,由Snowflake访问。生成的所有运行数据将被Aviva的数据分析师用于创建仪表盘和管理报告,提供如按地区列示的总损失的每月视图或按汽车制造商及车型的平均修理成本等洞察。
安全性
上述解决方案涉及处理可识别个人身份的信息PII,因此客户数据保护是解决方案的核心安全关注点。由于处理在VPC内进行,因此客户数据通过网络限制得到保护,数据在传输中被逻辑分隔开。数据在处理步骤之间传输时进行了加密,同时也在静态状态下通过AWS Key Management Service (AWS KMS)进行加密。对生产环境中的客户数据访问权限严格限制,仅允许授权人员在需要知道的基础上访问该数据。
解决方案的第二个安全重点是保护Aviva的知识产权。数据科学家和工程师的代码保存在AWS开发账户的CodeCommit git仓库中,私有于Aviva。训练数据和训练模型的成果存储在开发账户的S3存储桶中,这些数据通过AWS KMS静态加密保护,并且AWS Identity and Access Management (IAM)策略限制对这些存储桶的访问权限仅限于授权的SageMaker端点。代码流水线也仅限于账户内并驻留在客户的AWS环境中。
通过在CloudWatch日志中记录推断和决策过程中的步骤,确保了工作流的可审计性。日志同样在静态状态下通过AWS KMS加密,并配置了生命周期策略,确保在必要的合规期间内可用审计信息。为维持项目的安全性并安全运营该项目,账户启用了Amazon GuardDuty和AWS Config,并利用AWS CloudTrail监控账户内部活动。监控安全漏洞的软件主要存放在实现业务工作流的Lambda函数中,处理代码主要用Python编写,并定期更新所用的库。

结论
本文概述了Aviva与AWS之间的合作,最终构建出一个可扩展的MLOps平台。该平台使用开源的AWS Enterprise MLOps Framework开发,并将DevOps最佳实践整合到ML生命周期中,使Aviva能够在几周内复制一致的流程并部署数百个ML用例,而不是数月。此外,Aviva已经完全转向按需付费的模式,使基础设施成本较公司之前的本地ML平台解决方案下降了90。
查看AWS Enterprise MLOps Framework的GitHub页面,进一步了解关于Amazon SageMaker的MLOps,以了解如何加速组织的MLOps之旅。
关于作者
Dean Steel是Aviva的高级MLOps工程师,背景涵盖数据科学和精算工作。他热衷于所有形式的AI/ML,拥有开发和部署多种保险特定应用模型的经验,从大型变压器到线性模型。Dean主张将AI/ML与在AWS上的DevSecOps相结合。在空闲时间,他喜欢探索音乐科技、餐厅和电影。
Simon Gatie是Aviva在诺里奇的首席分析领域权威,拥有物理学、会计学、IT和数据科学多方面的背景。他领导Aviva的机器学习项目,推动金融服务领域数据科学和先进技术的创新。
Gabriel Rodriguez是AWS专业服务的机器学习工程师,驻扎在苏黎世。在当前角色中,他帮助客户实现各种机器学习用例的业务目标,从搭建MLOps管道到开发欺诈检测应用程序。不工作时,他喜欢锻炼身体、听播客或旅行。
Marco Geiger是AWS专业服务的机器学习工程师,驻扎在苏黎世。他与来自各行各业的客户合作,开发利用数据力量达成商业目标的机器学习解决方案,推动客户方面的创新。除了工作,Marco是一名热衷于徒步旅行、山地自行车、足球和咖啡制作的爱好者。
Andrew Odendaal是AWS专业服务的
AWS Inferentia 和 AWS Trainium 在 Amazon SageMaker J
Warning: Trying to access array offset on value of type bool in /www/wwwroot/njjkj.com/runtime/template/f5b4/f9cb/fb82d8c1892115caad70.html on line 138
...