讲课老师:胡冬文
1.预处理
隐语是一个开源的联邦学习框架,它支持多种联邦学习算法,包括:
- 预处理和隐私求交: 提供数据加载、清洗、转换等功能,并支持安全地计算数据交集。
- 决策树模型: 支持多种决策树算法,包括可证安全的 SS-XGB 和 SecureBoost,以及非可证安全的水平 XGBoost。
- 线性回归模型: 支持多种线性回归模型,包括可证安全的 SS-SGD、HESS-SGD 和 SS-GLM,以及非可证安全的混合联邦 LR。
- 神经网络算法: 支持水平联邦学习和垂直拆分学习两种模式,并提供丰富的模型库和训练器。
联邦学习是一种在本地设备上训练机器学习模型的方法,无需将数据集中到中央服务器。这有助于保护数据隐私,并提高模型训练的效率。
DataFrame:联邦表格数据的封装,DataFrame由多个参与方的数据块构成,支持数据水平、垂直切分和混合切分,分别对应 3 组API:HDataFrame、VDataFrame、MixDataFrame。
FedNdarray:联邦ndarray 的封装,同样由多个参与方的数据块构成,支持水平和垂直切分,对应统一的API:FedNdarray
2.决策树和线性回归模型
隐语支持多种决策树算法(XGB),同时支持回归和二分类训练,可根据使用场景和安全性需求选用
隐语支持多种线性回归模型,满足不同的使用场景,并有一些针对性的优化。
3.神经网络算法
根据使用场景不同,隐语提供了两种神经网络算法:水平联邦学习、垂直拆分学习。
水平联邦学习:隐语提供的水平联邦学习FLModel是一个通用的范式,而不是一个具体的模型或算法,您可以自由的定义模型和训练参数。 目前FLModel支持TensorFlow 和 PyTorch 两种后端,您可以使用tf或torch原生的方式编写模型代码,然后使用 FLModel 训练。 同时,您也可以直接使用各种封装好的模型库,比如:torchvision和tf.keras.applications
垂直拆分学习:隐语提供的垂直拆分学习SLModel同样是一个通用的范式,您可以自由的定义模型和训练参数。 SLModel 同样支持TensorFlow 和 PyTorch 两种后端,您可以使用tf或torch原生的方式编写模型代码,然后使用 SLModel 训练。 与水平联邦相比,垂直拆分学习的架构略有不同,他的模型被拆分成2份、3份或者更多,分别分布在不同的参与方。建 模时需要针对拆分学习架构重新设计模型结构。下面是两方场景下常见的两种结构。 为此,隐语提供了一个拆分好的模型库:sf.ml.nn.applications