Press "Enter" to skip to content

壳牌公司是如何在Kubernetes上不到一天就建立了1万个AI模型的?

现在,壳牌能够在2个小时而不是4个星期就可以建立数千个机器学习模型,同时能够有效缩短代码的编写时间,从2个星期缩短到4个小时。

 

 

 

  1  

 

向绿色和可再生能源扩展

 

在2015年的联合国气候变化大会上,195个国家签署了《巴黎协定》,这是一项在全球范围内减少温室气体排放的协议。该协议的长期目标是将全球温度的上升限制在工业化前水平的2摄氏度以下,并最终在21世纪下半叶达到全球净零排放。随着全球电力消耗预计在2050年翻倍,许多组织已经开始过渡到成为净零排放企业。

 

以石油巨头着称的壳牌公司近年来已将其重点从化石燃料扩展到绿色和可再生能源,如风能和太阳能。据壳牌公司机器学习平台技术主管Alex Iankoulski说,该公司的目标是在2030年前通过其可再生和能源解决方案倡议(以前的新能源)为发展中国家的1亿人提供可靠的电力供应。

 

壳牌正在投资于低碳技术,包括风能和太阳能等可再生能源,电动汽车充电和氢气充电等移动性方案,以及互联的电网。壳牌正在为其新能源业务每年投资多达20亿美元,该业务专注于开发更清洁的能源解决方案。

 

——Alex Iankoulski,Shell

 

为了有效运营其可再生和能源解决方案,包括向客户分配电力,壳牌需要一个智能、快速和灵活的控制系统。更重要的是,该系统必须能够利用人工智能(AI),以便有效地管理计算和存储资源。

 

 

壳牌公司的能源供应链

 

壳牌公司依靠Arrikto的MLOps平台来使用Kubeflow,这是一个开源项目, 旨在使Kubernetes上的机器学习(ML)工作流可移植和可扩展 。此外,建立在Kubernetes之上将使壳牌公司能够在容器的帮助下快速启动和关闭环境。“Kubernetes和机器学习的结合实际上是天作之合,”Arrikto的社区和营销副总裁Jimmy Guerrero解释说。

 

首先, 容器允许我们在笔记本电脑上创建测试和试验机器学习模型 。我们非常清楚,我们可以使用容器将这些相同的模型带到生产中。这里的想法并不新鲜——我们想一次编写,复制,然后到处运行。

 

其次, 笔记本电脑上的机器学习工作流程可能完全用一种语言编写 ,比如说Python,但当我们把这些模型带到生产中时,我们可能会想与各种不同的服务和应用程序进行交互。这些都是像数据管理、安全、前端可视化等方面的东西,在这里我们可能想采用一个基于微服务的架构。在这里,对我们来说用Kubernetes来实现是一件轻而易举的事情。

 

——Jimmy Guerrero,Arrikto

 

然而,大规模部署人工智能并非没有问题。根据Alex的描述,在为壳牌的可再生和能源解决方案建立基础时,存在多种技术挑战。

 

基础设施需要是云原生的且与云厂商无关的。通过这种方式,如果平台必须在不同的云服务上或同时在多个云服务上运行,代码就不需要重写了。

 

部署必须是可重复的、可审计的和可逆的,使开发人员能够检查公司系统中运行的内容以及它是如何被部署到那儿的。

 

扩展性要保证系统能够运行在各种不同大小规模的硬件和集群中。软件应该在一台笔记本电脑上和大型云服务中运行良好。

 

工具应该是基于网络和自我服务的,使运营团队能够专注于自动化,而不是重复的手工任务。

 

计算资源必须是动态分配的。在计算资源上运行的工作负载应该是有弹性的和可重复的。

 

存储必须是高速和具有成本效益的,以实现存储和计算资源的解耦。

 

数据在任何时候都是安全的,但对授权用户是可用的。它还应该是版本化的,因此可以跟踪变化并在必要时进行恢复。安全必须是端到端的企业级。

 

编排必须是透明的,不会对用户造成干扰。

 

  2  

 

在Kubernetes上运行

 

壳牌在Amazon Elastic Kubernetes Service(EKS)上为其可再生能源和能源解决方案部署了基础设施。Kubernetes API是用于编排工作负载的通用语言,与云服务无关。

 

Arrikto的首席技术官和联合创始人Vangelis Koukis指出,通过实施GitOps方法,团队可以以可重复的方式在不同的Kubernetes集群之上进行部署。

 

一切都从Git仓库开始。我们选择不使用kfctl工具,所以我们可以用最简单的Kubernetes原生的应用清单的方式进行部署。因此,我们支持带回滚的无缝升级。

 

——Vangelis Koukis,Arrikto

 

 

通过GitOps部署

 

GitOps将基础设施作为代码,基础设施的状态对应于仓库中的提交。

 

利用MicroK8s等工具,轻型工作负载可以在一台笔记本电脑上运行。对于较重的工作负载,亚马逊EKS会根据需求自动进行无缝扩展。

 

 

通过GitOps升级

 

通过遵循DevOps模式,工具被转移到左边,使开发人员能够运行他们自己的Visual Studio代码服务器,在Git存储库中管理代码,并最终在Kubeflow上运行工作负载。

 

为了使计算资源具有弹性和可重复性,团队在Kubernetes Pods内使用基于Docker镜像的容器。

 

  3  

 

数据管理和安全性

 

通过将存储从亚马逊弹性文件系统(EFS)转移到使用Arrikto的数据管理平台Rok提供的本地和挂载文件系统,团队可以生成成千上万的特定时间点的快照,为工作负载提供端到端的可重复性。

 

我们来以一个时间机器为例。假设我们对notebook服务器每10分钟快照一次。你可以回到过去,重现你运行的所有实验的数据。快照也可以发生在一个管道的每一步,所以你可以确切地知道是什幺系列的事件导致了一个特定模型的产生。于是,你可以调查任何结果的偏差。

 

——Vangelis Koukis,Arrikto

 

使用Rok,团队可以在不同地区的多个集群中管理存储。Vangelis解释说,每个集群作为一个本地独立的对象存储。Rok Registry能够创建具有细粒度访问控制的私有和公共组。

 

 

与Rok共享数据集和环境

 

在性能方面,与100GB的亚马逊EFS实例相比,使用非易失性存储器标准(NVMe)固态硬盘(SSD)的标准m5d.4xlarge实例的每秒读取输入/输出操作(IOPS)超过10倍,写入IOPS为400倍。

 

 

本地存储更快

 

至于安全问题,团队实施了单点登录(SSO)、单点注销(SLO)、集中认证、基于命名空间的隔离和共享命名空间。

 

 

带有SSO/SLO的端到端安全

 

此外,利用OpenID Connect(OIDC)AuthService,该团队将Kubeflow扩展为OIDC客户端。OIDC AuthService与Istio和Envoy代理紧密结合。

 

 

实施Kubeflow安全

 

  4  

 

利用Kubeflow进行快速建模

 

有了Kubeflow,团队可以快速建立模型,并利用数据帮助优化与壳牌的可再生和能源解决方案有关的操作。据壳牌的首席数据科学家Masoud Mirmomeni说,Kubeflow给公司带来了三大优势。

 

首先,Kubeflow提供了一个自助服务模式,使数据科学家能够获得计算能力和存储,以及在安全的云环境中使用预配置的ML工具包。

 

现在,我们可以拥有所有这些基础能力,从零开始轻松地做机器学习项目。如果你想用老式的方法做这件事,那将需要几周甚至几个月的时间。现在,我们可以在几分钟内做到这一点。

 

——Masoud Mirmomeni,Shell

 

其次,在Kubeflow自动管线引擎(KALE)的帮助下,数据科学家可以简单地将他们的代码传递给运营团队。这减少了将ML代码推向生产所需的时间。

 

第三,由于壳牌使用的是Kubernetes,计算和存储的资源很容易被共享。例如,Notebooks服务器使用的计算能力受到监控,当资源闲置时,它们会被释放,并可用于其他工作负载。

 

 

壳牌公司机器学习工作流程的一个例子

 

Kubeflow将为数据科学家和机器学习工程师创造非常高效的平台,以进行合作,分享想法,并从他们自己的项目和经验中学习。它还将通过有效地管理计算和存储资源来降低模型建设的成本。

 

——Masoud Mirmomeni,Shell

 

通过Kubeflow,壳牌大大减少了数据科学家和ML工程师建立模型的时间。以前,建立10,000个模型所需的时间将涉及两周的编码和四周的执行。现在,该团队可以在不到四个小时内编写代码,并在两个小时内建立所有模型。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注