跳到正文
原文
北京智源研究院· 阿里妈妈技术·· 16 天前精选AI 评分68

SDH 联邦学习产品化实践

数据不动模型动:SDH 联邦学习产品化实践

AI 摘要

SDH PaaS 3.0 通过联邦学习技术,让平台和业务方在不共享原始数据的情况下,利用各自数据协同训练模型,以预测用户转化可能性,从而提升营销效果。平台方提供转化标签和本地特征,业务方提供互补特征,双方按 EFLS 框架分工协作

正文 · 中文整理稿

数据对齐之后,业务还希望进一步回答:哪些用户更可能转化,下一轮投放应该重点触达谁?要做好这类预测,单靠一方的数据往往不够。平台掌握用户是否转化的标签,业务方拥有能够补充判断的用户特征。双方数据结合起来,有望提升预测效果,但标签和特征分散在不同参与方,不能直接汇集到一起训练。如何让数据留在各方本地,又能共同训练一个预测模型,是联合建模需要解决的核心问题。为此,SDH PaaS 3.0 将联邦学习融入数据合作流程:平台方提供转化标签(以及平台特征),业务方提供互补特征,在原始数据不出域的条件下协同训练模型,预测用户的转化可能性。围绕实际使用,平台将协同训练以及模型和预测结果的交付串联起来,让双方能够按统一流程开展联合建模。本文将以转化预测为例,介绍这一过程如何在 SDH 上落地,让数据合作从“看清已有表现”进一步走向“预测未来机会”。

明确了业务目标和双方的数据之后,接下来要看这些数据如何在不汇集到一起的情况下参与训练。 下面以平台方和业务方的协作为例,从角色分工、共同用户的确定,到训练过程中的计算与交互,展开介绍一次联合训练如何完成。 确定双方分工,并找出共同用户。 在联邦学习框架 EFLS 中,双方按训练时的分工配置角色。 本例中,平台方是 Leader,提供“用户是否购买”的标签,也可以提供本地特征; 业务方是 Follower,提供互补特征。 样本对齐,就是找出双方数据里对应同一位用户的记录。

双方按任务配置和合作授权确定共同样本,保证后续计算针对同一批用户。 完成对齐后,双方仍分别使用各自保存的数据。 各自计算,并交换训练所需的中间结果。 训练时,双方先在本地根据各自的特征完成计算,再按协议交换所需的中间结果。 平台方把这些结果与购买标签结合,计算预测结果与实际结果的差距,再将用于调整模型的信息(梯度)按协议回传。 双方据此更新各自的模型参数,重复计算,直到训练结束。 双方在训练过程中仍需通信。 传递的是训练协议要求的中间结果和消息,原始特征和购买标签留在各自的环境中。

具体交换哪些内容,由所用算法和任务配置决定。 EFLS 支持对前向计算得到的中间结果加密,也支持差分隐私,即通过加入受控噪声降低单个样本信息泄露的风险。 具体启用哪些措施、如何设置参数,需要根据任务和协议要求确定。 训练完成后,还要通过授权和审批,明确谁能使用模型、哪些数据能用于预测,以及预测结果交给谁。

把联合建模用于实际业务,除了训练算法,还需要明确数据怎么授权、任务由谁审批、结果交给谁。SDH 将数据准备、任务配置、多方审批、协同执行和结果交付串成一套流程,让参与方能够在约定的权限范围内发起任务、跟踪进度并使用结果。先确认参与方和可用数据。开始建模前,双方先在 SDH 的合作空间中确认谁参与、要解决什么业务问题、准备使用哪些数据。将 ODPS、OSS 等来源的数据注册为数据资产后,再确认本次任务可以使用的字段。授权要具体到字段。业务方提供的特征中,哪些能用于训练、哪些能用于预测,都需要提前确认。建模人员再从已获授权的字段中选择任务输入。配置任务、完成审批并使用结果。创建训练任务时,建模人员选择模板,并配置参与方、输入数据、Leader/Follower 角色及训练参数。需要预测时,再创建预测任务,指定使用的模型、输入数据和结果保存位置。预测所用数据和结果接收方也要获得相应授权。任务提交后,由各方按合作约定审批,SDH 同时执行预算等运行限制。审批通过后,SDH 将任务调度到双方的执行环境。平台方和业务方分别准备数据,并按同一协议开始计算。运行期间,可以查看任务状态,了解任务处于准备、运行还是失败阶段。任务完成后,模型、评估信息等结果按合作约定完成审批,再交付给获准使用的参与方。运行日志记录任务执行的相关信息。遇到失败或需要排查问题时,可以结合任务状态和日志查找原因。

当样本达到千万级、特征达到数百维,联合训练的挑战也延伸到了数据准备和运行协同。 围绕内存与磁盘占用、双方准备进度、任务失败重跑和样本一致性,SDH 对执行链路进行优化,减少资源限制和重复处理带来的影响,让大规模任务更稳定地运行。 内存不够:分批排序,再合并读取。 千万级样本加上数百个特征,单侧数据就可能达到数十 GB,一次性读取可能超出单机内存。 SDH 先把数据分批排序,写入临时文件,再按顺序合并读取这些文件。 这种借助临时文件完成排序的方法叫“外部排序”,同时合并多个有序文件的过程叫“多路归并”。

这样,数据准备就不必依赖能装下全部数据的大内存。 准备速度不同:区分等待与通信超时。 双方的 数据量和处理速度不同,一方准备好了,另一方可能还在处理数据。 因此,任务需要把“等待对方准备”与“双方开始通信”分开。 训练前的握手,是双方交换消息、确认可以开始的过程。 如果过早开始计算握手超时,就可能把正常的数据准备误判为通信故障。 区分这两个阶段,才能正确判断任务为什么在等待。 磁盘空间:及时清理临时文件和缓存。 数据准备、远端文件读取和失败重试都会占用本地磁盘。

如果临时文件和缓存不断累积,任务就可能因空间不足而中断。 因此,需要按数据规模预留空间,在读取结束后及时关闭文件,并清理不再使用的缓存和临时文件。 重跑时还要使用的数据,则应保存到容器销毁后仍能保留的位置。 任务重跑:复用完整数据,减少重复处理。 大规模数据通常会拆成多个文件分批处理,这些文件称为“分片”。 任务中断后,不必从头处理所有数据:可以根据记录的生成状态,逐一检查分片是否对应本次任务的输入、内容是否完整。 已经完成且校验通过的分片可以直接复用,缺失或不完整的部分再重新处理,减少重跑所需的时间。

样本对应:确保标签和特征属于同一位用户。 联合训练时,平台方的购买标签必须与业务方同一位用户的特征一一对应。 双方需要按约定的规则分片、排序和读取数据,确保每批输入中的样本顺序一致,避免标签与特征错配。 SDH 在测试中同时运行 Leader 和 Follower,检查双方能否正确协作。

联合建模的价值,最终要体现在业务行动和实际效果上。预测分数可以帮助业务人员识别人群差异,辅助选择投放对象和制定营销计划;通过离线评估与实际投放效果对比,再判断模型是否带来了收益,为后续优化提供依据。模型训练完成后,可以预测用户购买商品的可能性。预测结果按合作约定交付后,业务人员可以参考预测分数对用户分组,例如将购买可能性较高的用户归为一组,辅助选择投放人群和制定营销计划。模型是否有帮助,要结合实际结果来判断。可以先用未参与训练、但已知购买结果的数据,检查模型预测得是否准确;将预测结果用于投放后,再观察购买人数、转化率等指标,并与原有做法比较,评估模型在实际业务中的效果。

SDH 已通过 ISO/IEC 27001 与 ISO/IEC 27701 双认证,以及中国信通院“可信隐私计算”联邦学习基础能力专项评测。

图片

image.png

image.png

image.png

image.png

来源:北京智源研究院 · hub.baai.ac.cn

00