借助MLOps平台简化联邦学习工作流程

原创
2023/10/10 15:28
阅读数 49

联邦学习

联邦学习(Federated Learning,简称 FL)因其在将人工智能/ML 应用于分布式数据时具有隐私保护和通信效率高的特点,近来备受关注。VMware 一直积极参与 FL 社区,为开源项目做出贡献,发布解决方案白皮书,并通过各种活动推广相关技术。我们的主要重点是利用 VMware 产品和解决方案,为 FL 系统和工作负载提供安全、强大的基础架构和部署管理解决方案。我们很高兴地介绍我们最近与 One Convergence™ Inc. 的合作,将 联邦学习集成到 MLOps 解决方案(尤其是 DKube 平台)中,以增强客户的 FL 工作流程和使用体验。


联邦学习与FATE(Federated AI Technology Enabler)

人工智能的成功在很大程度上取决于用于训练有效预测模型的数据的数量和质量。然而,在现实世界的应用中,数据往往仍孤立地存在于各个数据孤岛中。这种孤立状态在共享数据时带来了一个重大挑战,这主要是由于商业竞争以及需要遵守隐私保护法律和法规,例如通用数据保护条例(GDPR)。无法充分利用数据阻碍了开发有意义模型所必需的训练过程。为了解决这个问题,联邦学习应运而生,它提供了一个解决方案,使组织间能够克服数据孤岛问题,同时确保数据隐私和安全符合法规。FATE是一个由LF AI & Data Foundation主办的开源项目,为联邦人工智能生态系统提供了一个安全计算框架。它得到了行业领导者如微众银行、VMware、腾讯、银联等的贡献。FATE起源于金融行业,非常强调隐私保护,专为工业应用而设计。其主要目标是利用同态加密和多方计算等先进技术实现安全计算协议。通过采用这些协议,FATE使各种机器学习算法得以利用,同时确保强有力的数据隐私和安全措施得到落实。

作为FATE社区技术指导委员会(TSC)的Board成员,VMware AI Labs团队一直在为FATE生态系统做出重要贡献,包括FATE各版本中的关键功能特性,以及创建云原生的FL解决方案,如KubeFATE和FedLCM。要了解有关联邦学习和VMware云原生FL工作的更多信息,请参考以下之前的博客:

与任何其他机器学习任务类似,应用FATE和FL涉及所有典型的MLOps工作流程。对于云原生机器学习,Kubeflow是这方面的首选之一。

在DKube上“应用”Kubeflow

近年来,Kubeflow已经发展成为领先的AI/ML平台,整合了许多开源的进步,以创建一个经济高效的解决方案。值得注意的是,在2023年7月,它已经从一个谷歌运作的项目过渡到独立的CNCF项目。

然而,“应用”Kubeflow到您的云或本地环境仍然需要大量工作。成功部署Kubeflow、操作数据、模型准备、调优、部署和监控,同时管理安全性、合规性和治理仍然具有相当大的挑战性。对于每个新的安装,自行完成这项工作可能需要多个人数月的时间,这适用于每个新组织和几乎每个新安装。生产力和时间损失是巨大的,使用Kubeflow节省的所有成本可能会被增加的费用和时间所抵消,这些费用和时间可能达到数十万美元和数月/安装。因此,许多大型财富100公司的Kubeflow安装项目都陷入了停滞状态。

在Kubeflow方面还有一些好消息。一些在Kubeflow上原生构建的新的AI/ML平台可以为你解决这个挑战。例如,来自One Convergence™公司的DKube已经构建了一个带有更好、更现代UI的标准Kubeflow软件包,并与AWS EKS、Azure AKS或任何云或本地Kubernetes发行版(如VMware Tanzu Kubernetes Grid)集成。如下图所示,它能够与Azure Blob或Azure NFS、AWS S3、本地S3/NFS/Ceph存储集成;它能够与Active Directory或LDAP身份验证在任何云或本地安装中集成;它能够与Git、GitOps、Bitbucket和Azure DevOps版本控制系统集成;它还能与医疗数据源如Arvados或Flywheel集成。换句话说,你会得到一个已经封装好的软件包,在安装和配置时使用几个简单的命令,就可以让你在AWS、Azure、GCP或本地Kubernetes发行版上快速启动。根据不同的集群的复杂度,从安装开始到用户上线可能只需几个小时或一天。

 

通过DKube集成加速FATE工作流

通过VMware AI Labs和DKube工程团队之间的合作,FATE的支持已经集成到DKube中。如下图所示,在部署和配置FATE系统之后,DKube的“IDE”、“Run”和模型管理功能可以简化FL工作流程。在以下部分中,我们将探讨这种集成的详细步骤。

部署和配置FATE集群

如前所述,VMware AI Labs团队维护了两个开源项目,即KubeFATE和FedLCM,它们提供了以云原生方式部署和管理FATE系统的能力。KubeFATE促进了在数据中心和多云环境中FATE系统(也称为FATE集群)在Kubernetes上的配置和管理。而FedLCM从多方的角度协调FATE部署,使分布式FATE集群可以操作和连接,形成联邦学习的“联邦”。

一旦创建了FATE联邦,每个参与者将使用DKube与其FATE系统进行交互并管理FATE作业。为了实现这一功能,需要在DKube UI的运维管理视图中添加FATE集群的FATE-Flow访问地址等信息。

使用DKube IDEs开发FATE训练代码

一旦将FATE集群信息添加到DKube中,我们就可以在数据科学视图中的DKube IDE选项卡中开始使用它。在IDE创建页面上,我们可以选择将FATE作为ML框架,这样就可以创建一个预先安装了FATE客户端SDK的JupyterLab实例。在配置部分,我们可以选择新添加的FATE集群,这样IDE实例将自动配置FATE客户端SDK以连接到这个特定的集群,使用户可以无缝地编写和测试他们的FATE客户端代码,并有效地管理FATE集群内的数据和工作。

通过DKube Runs启动FATE 联邦学习任务

除了通过DKube IDE与FATE集群进行交互之外,我们还可以在DKube Runs中启动FATE作业。与在DKube IDE中使用FATE类似,我们可以指定FATE作为框架和执行作业的目标FATE集群。此外,对于横向联邦学习,训练好的模型可以直接被保存在DKube中。一旦Run完成,训练好的模型将出现在DKube的“模型”页面上,我们可以按照标准的DKube模型部署工作流程将模型部署发布成为在线服务。

DKube IDEs和Runs支持所有FATE联邦学习算法,包括最近发布的FATE-LLM模块,该模块通过联邦学习的方法,实现对大型语言模型参数高效微调(parameter-efficient fine-tuning)。官方FATE-LLM示例已经过验证,能够成功通过DKube发起运行。

接下来的计划

除了KubeFATE和FedLCM之外,VMware还积极与FL社区合作,并为其做出了重大贡献。我们的一项显著贡献是将FATE-Operator引入Kubeflow,通过operator模式实现FATE管理。我们还与LF AI & Data托管的另一个开源联邦学习项目OpenFL合作,为其做出贡献。这些贡献可以集成到MLOps平台(如DKube)中,实现涵盖从部署和运维到自由选择不同的FL框架并与最适合的框架合作的一站式FL流程。我们将继续与合作伙伴密切合作,确保整合每个解决方案的优点,并加速客户在AI/ML之旅取得成功。

本文作者:王方驰,VMware OCTO AI Labs工程师。

 

内容来源|公众号:VMware 中国研发中心

有任何疑问,欢迎扫描下方公众号联系我们哦~

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部