欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云 部署在网络边缘的机器学习模型:靠近数据源的智能解决方案

2024-01-15 原创文章

在如今的多个行业中,机器学习扮演着日益重要的角色。数据科学家构建并训练机器学习模型,这些模型被部署以基于操作数据提供预测或评分——例如,用于提高流程效率、检测和应对问题或异常、或评估关键绩效指标(KPI)和质量指标。

数据科学家通过处理大量聚合的历史操作数据来构建和训练他们的模型,并且通常依赖强大的计算资源来开发这些模型。部署后,模型运行时实时消耗操作数据,并生成可以用来微调操作流程和处理异常的评分或预测。有时候,你会想要在网络边缘部署模型运行时,通常是因为以下原因:

  • 模型需要的数据量超过远程站点与中心位置之间的带宽所能承载的。
  • 远程站点与中心位置之间的连接时断时续。
  • 你对于提供模型运行时数据、使其生成评分或预测、以及基于该评分或预测采取行动的过程有非常低的延迟要求。
  • 这种部署方式在试图集中管理这些运行时时可能引入挑战。例如,甲骨文云基础设施(OCI)数据科学只能自动将模型部署到甲骨文云。这种架构解决了这些挑战。

架构

这种架构是将机器学习模型部署在靠近数据源和生产系统的基础上的。其示意图如下:


该架构的工作方式如下:

  1. 生产流程产生数据,这些数据被流式传输到甲骨文云上的流媒体服务。流媒体服务触发一个函数来处理进入的流。这个函数在将数据存储到自治数据仓库(ADW)之前,可能会对其进行处理或转换。
  2. 数据科学家定期基于ADW中的数据重建机器学习(ML)模型。当这些模型经测试并确认优于旧模型时,它们被保存以供部署(例如,以ONNX格式),并被推送到对象存储中以便后续获取。建议为每个本地站点设置一个单独的对象存储桶,以确保将正确的模型送达正确的站点。通常甲骨文数据科学流程中的模型存储在模型目录中,并随后作为模型部署被使用,这里不适用,因为模型目录在OCI外部无法访问,且甲骨文数据科学只能部署到甲骨文云。
  3. 本地站点定期检查并获取ML模型的更新,通过在特定的对象存储桶中检查。当有新模型可用时,本地站点获取、部署并开始使用它们。
  4. 在生产中,生产数据传递给ML运行时以生成评分、预测、警报等。

请注意,存在多种打包和部署模型的方法。例如,数据科学可能触发一个函数(未显示),将模型及其调用的Web服务打包成一个容器,该容器可以存储在容器注册表中(未显示),从那里可以被本地站点中运行的Kubernetes获取(未显示)。由于我们不知道具体用例的特定可能性和约束,因此此架构展示了一种更基本的方法。该架构具有以下组成部分:

本地位置

一个或多个远程生产站点通过站点到站点的VPN连接到甲骨文云。这些站点可能是制造设施,在这里需要对来自生产流程的数据流进行低延迟的机器学习。

生产机械

在每个远程站点,一个或多个生产系统、质量控制系统、制造执行系统(MES)、SCADA系统等正在运行,它们生成生产数据和/或物联网流。这些系统的数据被送往ML运行时进行评分、预测或警报,基于ML模型对数据的响应。

ML执行环境

在每个远程站点,一个机器学习执行环境正在运行。其核心部分包括一个ML运行时,如ONNX运行时,可能作为一个Web服务运行,为物联网网关提供评分和预测能力。ML执行环境的确切配置将取决于特定的本地情况和要求。

租户

租户是甲骨文在您注册OCI时在甲骨文云内设置的一个安全且隔离的分区。您可以在租户内创建、组织和管理您在甲骨文云中的资源。租户与公司或组织同义。通常,一家公司将拥有一个租户,并在该租户内反映其组织结构。单个租户通常与单个订阅关联,而单个订阅通常只有一个租户。

虚拟云网络(VCN)和子网

VCN是您在甲骨文云基础设施区域中设置的可定制的、软件定义的网络。与传统数据中心网络一样,VCN让您完全控制您的网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改这些块。您可以将VCN划分为子网,这些子网可以被限定在一个区域或一个可用性域。每个子网由一个连续的地址范围组成,这些地址范围不与VCN中的其他子网重叠。您可以在创建后更改子网的大小。子网可以是公共的或私有的。

服务网关

服务网关提供从VCN到其他服务(如甲骨文云基础设施对象存储)的访问。从VCN到甲骨文服务的流量通过甲骨文网络结构传输,从不穿越互联网。在这种架构中,服务网关通过VPN提供与甲骨文云服务的本地对等访问。

对象存储

对象存储提供对大量结构化和非结构化数据的快速访问,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全可靠地存储数据,然后直接从互联网或云平台内检索数据。您可以无缝地扩展存储空间,而不会体验到性能或服务可靠性的下降。对于需要快速、立即且频繁访问的“热”存储,使用标准存储。对于长期保留且很少或很少访问的“冷”存储,使用归档存储。在这种架构中,对象存储用于存储数据科学家生成的模型和相关脚本的更新。

自治数据仓库

甲骨文自治数据仓库是一种自驾、自保护、自修复的数据库服务,专为数据仓库工作负载优化。您无需配置或管理任何硬件,也无需安装任何软件。甲骨文云基础设施负责创建数据库,以及备份、修补、升级和调优数据库。在这种架构中,ADW存储原始(或处理过的)生产站点物联网数据,供数据科学家后期处理。

站点到站点VPN

站点到站点VPN提供您的本地网络与甲骨文云基础设施中的VCN之间的IPSec VPN连接。IPSec协议套件在数据包从源传输到目的地之前加密IP流量,并在到达时解密流量。

函数

甲骨文函数是一个完全托管、多租户、高度可扩展、按需的函数即服务(FaaS)平台。它由Fn Project开源引擎提供支持。函数使您能够部署您的代码,并直接调用它或响应事件触发它。甲骨文函数使用托管在甲骨文云基础设施注册表中的Docker容器。在这种架构中,函数用于使用围绕JDBC连接器构建的函数将流式数据存储在ADW中。

流媒体

甲骨文云基础设施流媒体提供了一个完全托管、可扩展且持久的存储解决方案,用于摄取连续的、大量的数据流,您可以实时消费和处理这些数据。您可以使用流媒体摄取大量数据,例如应用日志、操作遥测、网页点击流数据;或者用于其他数据不断产生和按发布-订阅消息模型顺序处理的用例。在这种架构中,流媒体用于将生产数据流路由到ADW进行持久化。也可以在流媒体处理过程中引入这些数据的处理和丰富,但这里未显示。

甲骨文数据科学

甲骨文数据科学是一个完全托管的平台,供数据科学团队使用Python和开源工具构建、训练、部署和管理机器学习模型。它包括MLOps功能,如自动化管道、模型部署和模型监控;然而,这些功能仅限于甲骨文云上的模型部署,在这种架构中不使用。在这种架构中,数据科学家使用甲骨文数据科学高效地分析和构建模型,并创建这些模型的可部署版本,例如以ONNX格式。

甲骨文服务网络

甲骨文服务网络(OSN)是甲骨文云基础设施中保留给甲骨文服务的概念性网络。这些服务具有您可以通过互联网访问的公共IP地址。位于甲骨文云外部的主机可以通过使用甲骨文云基础设施FastConnect或VPN Connect私下访问OSN。您的VCN中的主机可以通过服务网关私下访问OSN。

推荐

当在网络边缘部署机器学习模型时,请使用以下建议作为起点。您的需求可能与此处描述的架构不同。

VCN

需要一个附加了DRG和服务网关的VCN,以将流量从通过站点到站点VPN连接的远程站点路由到服务网络中运行的服务。这个VCN需要在其路由表中有一个条目,以将所有前往所选甲骨文云区域中的服务的流量通过服务网关路由。在这种架构中,远程站点与服务网络之间的所有流量都是由远程站点向服务网络发出的请求触发的。

安全性

使用甲骨文云卫士主动监控和维护您在甲骨文云基础设施中的资源安全。云卫士使用您可以定义的检测器配方来检查您的资源是否存在安全弱点,并监控操作员和用户是否有风险活动。当检测到任何错误配置或不安全活动时,云卫士会推荐纠正措施,并协助根据您可以定义的响应者配方采取这些措施。

云卫士

克隆并自定义甲骨文提供的默认配方,以创建自定义的检测器和响应者配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对其执行哪些操作。例如,您可能想要检测将可见性设置为公共的对象存储桶。

在租户级别应用云卫士,以覆盖最广泛的范围并减少维护多个配置的管理负担。

您还可以使用托管列表功能将某些配置应用于检测器。

安全区

对于需要最高安全级别的资源,甲骨文建议您使用安全区。安全区是一个与基于最佳实践的甲骨文定义的安全政策配方相关联的分区。例如,安全区中的资源不能从公共互联网访问,且必须使用客户管理的密钥加密。当您在安全区内创建和更新资源时,甲骨文云基础设施会根据安全区配方中的政策验证操作,并拒绝违反任何政策的操作。

网络安全组(NSG)

您可以使用NSG定义一组适用于特定VNIC的入站和出站规则。我们建议使用NSG而不是安全列表,因为NSG使您能够将VCN的子网架构与应用程序的安全要求分离。

考量因素

在部署此参考架构时,请考虑以下几点。

性能

  • 主要的性能关注点与生产流程产生的数据量有关。
  • 机器学习执行环境,即调用机器学习运行时以响应生产数据的地方,需要进行维度设计,以处理生成的数据量。这是远程站点设置的问题,不在此架构范围内。
  • 生产流程产生的数据可能足够庞大,以至于传输到OCI的带宽可能会不堪重负。在这种情况下,建议在本地对数据进行预处理,以丢弃不相关的数据、聚合数据、压缩数据等,从而减少带宽需求。
  • 通过将ML运行时移至靠近数据源的位置,可减少ML延迟。

可用性

如果远程站点与甲骨文云之间的连接间歇性中断,则数据可以流式传输到本地的Kafka安装,然后再流式传输到甲骨文流媒体。这样,当网络中断发生时,本地Kafka安装可以缓冲数据。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: