PAI 联邦学习服务搭建教程|学习笔记

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 快速学习 PAI 联邦学习服务搭建教程。

开发者学堂课程【PAL 平台学习路线:机器学习入门到应用:PAI 联邦学习服务搭建教程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/855/detail/14103


PAI 联邦学习服务搭建教程

 

内容介绍:

一. PAI 联邦学习方案

二.方案技术架构图

三.集群搭建与服务部署

四.示例:纵向逻辑回归

 

一. PAI 联邦学习方案

 image.png

PAI 联邦学习方案采用 FATE 开源的框架, FAFE 框架为首个工业级别联邦学习系统,可以有效的帮助多个机构在符合数据安全和政府法规的前提下,进行数据使用和联合建模,同时 FATE 支持多种主流算法,多种多方安全计算协议以及友好的跨域交互信息管理方案,解决了联邦体系信息安全审核难的问题。基于 FATE 的框架,PAI 联邦学习方案支持多种核心算法功能,其中包括数据统计、特征工程、浅层算法、深度学习算法、评估算法等。跨平台作为数据使用方和数据提供方中间的一个环节,承担了授权审核的作用,平台会接受数据使用方发送的集训链接、数据以及训练任务的申请。审核通过和 PAI 平台会下发任务到数据提供方进行下一步操作。PAI 平台的使用流程首先从控制台获得所需要的镜像,平台会提供镜像地址,在向管控发送集群构建许可并获取服务端口号,之后进行训练任务的构建和提交,最后进行模型的评估和上线。

 

二.方案技术架构图

PAI 联邦学习方案技术架构,采用两距离直接采用点对点的通信,同时基于i云及 ACK 集群部署使用费服务,本图展示了 PAI 联邦学习模型的训练和预测是分别基于 PAI Fate 联邦学习建模镜像以及模型预测镜像,且在训练和预测的过程中,数据使用方和数据提供方分别进行模型计算的中间结果以及模型预测过程交换

image.png

 

三.集群搭建与服务部署

集群搭建与实验环境的部署,体系要基于搭建阿里云 ACK 进行部署使用被服务,并使用比如说像容器管理联邦体系的负载,同时 KubeFATE 可以让联邦体系任务在公有云,基有云以及混合云进行运行。 KubeFATE 支持两种方式来部署,第一个是 Docker Compose ,适用于快速部署实验开发环境。第二个是 binarys 适用于实际的生产环境。

image.png

进行实际的操作演示,第一步首先创建两个集群,分别是 guest 集群和 host 集群,打开阿里云 Kubernetes 页面,在容器服务平台中点击创建集群。选取 ACK 托管版,给集群赋名 Fate-guest ,再选取虚拟交换机,下一步进行 worker 配置,在实际规格中选择 g5ne 通用网络增强版本, CPU 选择64,内存选择256G,同时若需要使用CPU 就选择 CPU 计算型 gn6i ,在组件配置和确认配置选择默认信息配置,下一步进行创建集群,创建完集群回到集群列表查看 fate-guest 集群的集群状态,同时可创建 fate-host 集群便于以后操作,在两个集群分别创建好之后,需要分别给 guest 集群和 host 集群中的一个 node 绑定弹性网 IP 用来实现两个集群之间的通信。选择节点管理中的节点,选择第一个节点,绑定弹性 IP ,选择其中的一个弹性公网进行绑定。

第二步‍在远程集群之后,使用 over fate 完成集群部署,首先登陆 ACK 集群且下载 over fate ,用 yum-y install 指令下载,下载完之后对其进行克隆。再安装 goll 便利环境,进入黑白s编译进制二进制文件。

第三步编译完成后,需要将 ACK 集群的控制台的信息复制到 confate 进行保存。

 image.png

创建一个文件夹,将链接信息复制到文件里进行保存

 image.png

配置完成后可用计算机访问集群。

第四步创建 k8sroll 其他资源,使用 Kubefate 进行资源的创

 image.png

第五步设置域名解析,在 ACK 集群上需要通过内网访问。先使用 Kubectl get svc -n 获得 IP 地址,可以看到对应地址为172.16,之后打开 etc 文件夹后的 hosts 文件,将 IP 的地址以及域名的预设标记在文件下

image.png

第六步创建over-fate serves 用来创建管理集群,使用 over-control aply +配置文件的命令来创建 serves 。之后验证如下命令判断是否启用成功,如果出现两行信息则表示启用成功。

image.png

第七步用来修改文件信息部署训练集群,通过 ls 的方式来查看集群的部署状态,使用 Kubectl create namespace fate-10002 的命名空间,创建完成后需要修改 fate-10002 的压缩文件信息,文件所对应的是 host 集群方的训练集群配置,因为每一方分别有训练集群配置以及预测集群配置,对于训练集群配置来说,需要填对方集群的公网或者专信的 IP ,同时自身可以填k8局域网的节点 IP ,对于预测集群配置,即可填写任意k8局域网的 IP ,这里所有信息都保持了 IP 地址的对应。

image.png

在这个配置中,使用 Kubefate cluster install 来对集群的配置进行分析,之后可以使用 cluster ls 的指令来看到当前集群的状态。

 image.png

根据上述说明,在 guest 和 host 集群上对训练集群以及预测集群进行部署,在所有部署完成之后,可使用两个指令分别查看集群状态以及集群内的各个点的状态。如果资源为空的,就需要删除并重新部署,否则将影响后续的环境。

 image.png

在两个集群部署完成之后使用一个指令来检验两个集群之间的通信,使用 Kubectl get pod 指令来获取序列号,获取到序列号后进入 python pod 进入之后可执行 toy_example 来测试通信是否正常,其中10001表示 guest id 为发起者,10002表示 host id 为提供方,若执行成功则表示通信正常,反之则需要排查标点符号是否添加正常。通过日志也可看出通信为正常

 

四.示例:纵向逻辑回归

示例:纵向逻辑回归训练与预测

简要介绍流程,第一步需要进行数据准备,包括定义数据源 ,表明,以及数据的上传,提交训练任务,在任务执行中通过 FATE Board 查看运行状态,第二步在模型预测之前需要进行模型加载、绑定以及访问模型服务,并查看模型预测结果。

image.png

 image.png

实际操作过程中,首先需要分别对 host 和 guest 集群进行设置,在 host 上需先上传数据,上传数据的配置文件在 upload_host.joon 里并进入到这个 文件中,在这个文件中看到定义这个文件的参数,比较重要的是数据的文件名称、命名空间以及数据表明,可看到本次数据文件名称为 breast_hetero_host_csv 这个文件,数据表明是 breast_hetero_host ,而命名空间是 experiment ,如果需要在其他的文件中跟换数据源的情况下是对这些参数进行修改。

image.png

本次不进行修改但会重新上传一遍。这里显示数据已经被上传过了,所以需要添加 -drop 1 的参数来重新上传。

image.png

同理 guest 方数据同此处理即可。在数据上传完成之后,需对 guest 机器上对两个文件的配置内容进行修改和整理,分别是 job_conf 和 dsl 文件, dsl 文件表明模型任务的工作流定义,而 job_conf 是对每个组件的设置的参数。由于此次对参数配置已经完成,会对其中重要的参数进行说明,首先是 job_conf 文件,可以从中看到 role 文件中的参数里面定义了 guest 、 host 和 arbiter 的 id ,若后续想改为官方数据源的情况,可以在此进行 id 的扩展以及数据源配置的定义,在 reader_table 下面可以看到对应数据的命名空间以及表明。

image.png

image.png 

其次是 dls 文件,首先是以数据读取环节,之后是特征的求交以及特征的分箱、特征的选择 lr 的模型以及模型的评估。在训练完成之后,可以在可视化界面上看到一一对应的文件,这些组件可以通过工程师的需求进行增减,便于操作。

 image.png

在完成任务的数据以及任务的配置之后进行数据的提交,由于1.5.0版本和1.6.0版本的任务提交指令略有不同,此次暂时采用1.5.0版本任务提交指令,进行任务提交的指令当出现 success 指令的时候则表示提交成功。其中 model_id 和model_version 需要记录下来,在以后的某些部署、预测中需要用到。

此时打开 FATE Board 的界面,可以看到任务正在被执行, jobid 最后四位是4235,可找到相应的任务,可以看到任务正在被执行,还可以点击查看之前被提交的任务执行情况,等待一段时间看到本任务的执行情况

image.png

任务已经执行完成,每个组件对应的是 dsl 里面的 conporment ,同时每个组件可以查看到参数以及输出的结果,比如在 lr 模型里面看到每个特征对应的权重,在评估的组件中,可以看到模型评估的结果,这个为 guest 方对应的结果,同时也可以看 host 方对应的结果。

image.png 

在模型训练完成之后进行预测阶段,这里采用1.6.0版本的预测模式,首先记录下 model_id 和model_version 号。在部署阶段使用 flow model deploy –model\-id 进行执行,此时会产生新的 model id 和 version 号,会在后续的加载和绑定中用到。

 image.png

之后进行到模型加载阶段,根据部署阶段产生的数值进行修改。因为之前已做过一次修改,所以此时产生的数值为一一对应的。会在进行一次模型加载的指令,出现 success 字样说明模型加载成功

 image.png

进行模型绑定阶段,同样对部署阶段产生的模型 id 和version 进行修改,目前看到 model_id 是一致的只需要修改 model_version 即可。修改完成执行 flow model bind 的指令,当出现 service id is test 字样说明模型 id 已经绑定成功。

image.png

访问模型服务,执行 python 脚本。 这个 text_infence 是包含了 guest 方数据特征的一个请求,所以执行脚本。执行之后会出现一个预测结果的响应,在 date score 中为预测结果。

image.png

此时一个教程已经全部完成,这里给出的只是一个简单的逻辑回归的例子,与此还提供了更高的数据算法,用户可以更改数据源以及工作流的配置,来进行相应的算法。

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
5月前
|
人工智能 监控 测试技术
云上AI推理平台全掌握 (1):PAI-EAS LLM服务一键压测
在AI技术飞速发展的今天,大语言模型(LLM)、多模态模型等前沿技术正深刻改变行业格局。推理服务是大模型从“实验室突破”走向“产业级应用”的必要环节,需直面高并发流量洪峰、低延时响应诉求、异构硬件优化适配、成本精准控制等复杂挑战。 阿里云人工智能平台 PAI 致力于为用户提供全栈式、高可用的推理服务能力。在本系列技术专题中,我们将围绕分布式推理架构、Serverless 弹性资源全球调度、压测调优和服务可观测等关键技术方向,展现 PAI 平台在推理服务侧的产品能力,助力企业和开发者在 AI 时代抢占先机,让我们一起探索云上 AI 推理的无限可能,释放大模型的真正价值!
|
5月前
|
缓存 人工智能 负载均衡
PAI 重磅发布模型权重服务,大幅降低模型推理冷启动与扩容时长
阿里云人工智能平台PAI 平台推出模型权重服务,通过分布式缓存架构、RDMA高速传输、智能分片等技术,显著提升大语言模型部署效率,解决模型加载耗时过长的业界难题。实测显示,Qwen3-32B冷启动时间从953秒降至82秒(降幅91.4%),扩容时间缩短98.2%。
|
6月前
|
数据可视化 Rust 机器学习/深度学习
mlop.ai 无脑使用教程 (机器学习工具 WandB/ClearML 的首个国区开源平替)
mlop.ai 是首个为国区用户优化的机器学习工具,全栈免费开源,是主流付费解决方案 ClearML/WandB 的开源平替。常规实验追踪的工具经常大幅人为降速,mlop因为底层为Rust代码,能轻松支持高频数据写入。如需更多开发者帮助或企业支持,敬请联系cn@mlop.ai
365 12
mlop.ai 无脑使用教程 (机器学习工具 WandB/ClearML 的首个国区开源平替)
|
9月前
|
人工智能 自然语言处理 物联网
阿里万相重磅开源,人工智能平台PAI一键部署教程来啦
阿里云视频生成大模型万相2.1(Wan)重磅开源!Wan2.1 在处理复杂运动、还原真实物理规律、提升影视质感以及优化指令遵循方面具有显著的优势,轻松实现高质量的视频生成。同时,万相还支持业内领先的中英文文字特效生成,满足广告、短视频等领域的创意需求。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署阿里万相重磅开源的4个模型,可获得您的专属阿里万相服务。
|
10月前
|
人工智能 容灾 Serverless
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
455 3
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
前端开发 开发者 设计模式
揭秘Uno Platform状态管理之道:INotifyPropertyChanged、依赖注入、MVVM大对决,帮你找到最佳策略!
【8月更文挑战第31天】本文对比分析了 Uno Platform 中的关键状态管理策略,包括内置的 INotifyPropertyChanged、依赖注入及 MVVM 框架。INotifyPropertyChanged 方案简单易用,适合小型项目;依赖注入则更灵活,支持状态共享与持久化,适用于复杂场景;MVVM 框架通过分离视图、视图模型和模型,使状态管理更清晰,适合大型项目。开发者可根据项目需求和技术栈选择合适的状态管理方案,以实现高效管理。
154 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow Serving 部署指南超赞!让机器学习模型上线不再困难,轻松开启高效服务之旅!
【8月更文挑战第31天】TensorFlow Serving是一款高性能开源服务系统,专为部署机器学习模型设计。本文通过代码示例详细介绍其部署流程:从安装TensorFlow Serving、训练模型到配置模型服务器与使用gRPC客户端调用模型,展示了一站式模型上线解决方案,使过程变得简单高效。借助该工具,你可以轻松实现模型的实际应用。
522 0
|
机器学习/深度学习 人工智能 自然语言处理
基于PAI-QuickStart搭建一站式模型训练服务体验
【8月更文挑战第5天】基于PAI-QuickStart搭建一站式模型训练服务体验
380 0

热门文章

最新文章