作者 :Randy DeFauw, Al Nevarez, Arnab Sinha, Chaoyang He, Salman Avestimehr,
Hans Nesbitt, Prachi Kulkarni, Samir Lad, Stephen Kraemer, Tamer Sherif
日期 :2024年3月15日
许多组织正在实施机器学习(ML)以通过自动化和使用大型分散数据集来增强商业决策。然而,跨不同地点共享未经清理的敏感信息会带来重大安全和隐私风险,特别是在医疗等受监管行业中。为了应对这一问题,联邦学习(FL)作为一种分散式的合作 ML 训练技术,提供了数据隐私的保障,同时保持准确性和忠实性。FL训练在客户端的独立安全会话中进行,客户仅将输出模型参数发送到集中式伺服器,而不是实际数据。这一方式减轻了数据隐私的担忧,同时促进了有效的模型训练协作。
尽管 FL为改善数据隐私和安全性迈出了一步,但并不是保证的解决方案。在缺乏访问控制和加密的安全网络中,敏感信息仍然会暴露给攻击者。此外,若通过推断攻击重建本地训练的信息也可能会泄露私人数据。为了减轻这些风险,FL模型在与训练协调器分享信息之前,使用个性化的训练算法及有效的掩码和参数化。强大的网络控制可以进一步降低推断和导出风险。
在本文中,我们分享了一种使用 **** 、**** 和 **** 的 FL方法,旨在提升患者预后的同时解决数据隐私和安全问题。
医疗领域在做出准确的患者护理预测和评估时,依赖于分散的数据源。为了保护隐私而限制可用的数据源,会对结果准确性造成负面影响,最终影响患者照护质量。因此,在 AWS 客户确保跨分散实体的隐私和安全时,ML 产生了挑战。
医疗组织必须遵循严格的合规性规定,例如美国的健康保险流通与问责法案(HIPAA),同时实施 FL解决方案。在医疗行业中,数据隐私、安全性和合规性的保障变得更加关键,这需要可靠的加密、访问控制、审计机制和安全通信协议。此外,医疗数据集通常包含复杂和异构的数据类型,这使得在 FL 设置中实现数据标准化和互操作性成为挑战。
本篇中列出的使用案例涉及不同组织的心脏病数据,ML 模型将运行分类算法来预测患者的心脏病。由于这些数据来自不同组织,我们使用联邦学习来整合这些发现。
来自加州大学尔湾分校机器学习资料库的
是一个被广泛使用的心血管研究和预测建模数据集。它包含303个样本,每个样本代表一名患者,并包括临床和人口统计属性以及心脏病的有无。
这个多变量数据集包含患者信息的76个属性,其中14个属性最常用于开发和评估 ML 算法,以预测根据给定属性患者是否有心脏病。
尽管市面上有多种 FL 框架可供选择,但我们选择使用 **** 框架,因为它是开源的并支持多种 FL 模式。FedML 提供了一套流行的开源库、MLOps 平台和应用生态系统,用于 FL解决方案的开发和部署。它提供全面的工具、库和算法,使用户能够在分散环境中实施和实验 FL 算法。FedML 解决了 FL中的数据隐私、通信和模型聚合等挑战,并提供友好的用户界面和可定制组件。FedML框架是模型无关的,包括最近新增对大型语言模型(LLMs)的支持。更多信息请参见 **** 。
在实际的 FL 使用案例中,系统层级和异质性是主要挑战,因为不同数据孤岛之间的基础设施可能有所不同(包括 CPU 和 GPU)。在这种情况下,可以使用 **** 。
FedML Octopus 是一个工业级的跨孤岛 FL 平台,用于跨组织和跨账户的训练。结合 FedMLMLOps,它允许开发者或组织以安全的方式在任何规模下进行开放合作。FedML Octopus 在每个数据孤岛内运行分散式训练范例,并使用同步或异步训练。
FedML MLOps 允许本地编写的代码在 FedML 框架中部署。在启动训练之前,您需要先建立 FedML 帐户,然后在 FedML Octopus中创建并上传服务器和客户端包。详细步骤可参考 **** 和 **** 。
我们将 FedML 部署到多个 EKS 集群中,并与 SageMaker 集成来跟踪实验。我们使用 **** 部署所需的基础设施。EKS Blueprints 有助于组建完整的 EKS 集群,这些集群与运行所需的作业软件完全引导。使用 EKSBlueprints,可以用基础设施即代码(IaC)蓝图描述 EKS 环境的预期状态,如控制平面、工作节点和 Kubernetes附加组件。在配置蓝图之后,您可以使用持续部署自动化来跨多个 AWS 帐户和区域创建一致的环境。
本文中共享的内容反映了实际情况和经验,但重要的是要注意,不同地点的这些情况的部署可能有所不同。虽然我们使用单个 AWS 帐户和单独的 VPC,但重要的是要理解每个环境的具体情况和配置可能不同。因此,提供的信息应用作一般指南,并可能需要根据具体要求和当地条件进行调整。
以下图示展示了我们的解决方案架构。
删除)
除了 FedML MLOps 在每次训练运行中的追踪外,我们还使用 **** 用来跟踪每个客户端模型和集中模型的性能。
SageMaker Experiments 是 SageMaker 的一项功能,允许您创建、管理、分析和比较 ML实验。通过记录实验详情、参数和结果,研究者可以准确重现和验证他们的工作。这还便于对不同方法进行有效比较和分析,从而支持有根据的决策。跟踪实验还促进了迭代改进,提供了模型进展的见解,使研究者能够从以往的迭代中学习,最终加速更有效解决方案的开发。
我们将以下内容发送到 SageMaker Experiments 中:
要跟随本文,您应具备以下前提条件:
首先,将包含范例代码的库克隆到本地:
bash git clone https://github.com/aws-samples/federated-learning-with-fedml- on-aws
然后使用以下命令部署使用案例基础设施:
bash terraform init terraform apply
Terraform 模板可能需要 20-30 分钟才能完全部署。部署完成后,请按照以下部分的步骤运行 FL 应用程序。
作为 FedML 文档的一部分,我们需要创建将由 MLOps 平台分发的客户端和服务器包,以开始训练。
要创建这些包,请运行位于根目录中的以下脚本:
bash . ./build_mlops_pkg.sh
这将在项目根目录的以下目录中创建相应的包:
bash mlops/dist-packages
完成以下步骤以下载包:
删除)
删除)
删除)
要运行联邦训练,请完成以下步骤:


删除)

训练完成后,您可以使用 FedML 和 SageMaker 查看结果。
在 FedML UI 上的 模型 标签中,您可以看到聚合器和客户端模型。您也可以从网站下载这些模型。

您还可以登录到 **** ,并在导航窗格中选择 实验 。

在本节中,我们探讨整合 SageMaker 实验追踪与 FL 框架训练的代码。
在您选择的编辑器中,打开以下文件夹以查看注入 SageMaker 实验追踪代码的修改:
bash cd fl_fedml.ai/
为了追踪训练,我们使用 ****
的代码,通过 log_parameter
Leave a Reply