代码拉取完成,页面将自动刷新
MindSpore-Federated纵向联邦学习框架采用yaml配置文件,配置纵向联邦学习模型的训练与推理流程,包括网络、优化器、算子等模块的输入/输出和超参数信息。yaml配置文件的详细信息参见下表:
功能分类 | 配置参数 | 参数类型 | 取值范围 | 是否必选 |
---|---|---|---|---|
role | role | str | 'leader' or 'follower' | 是 |
model | train_net | dict | 是 | |
train_net.name | str | 否 | ||
train_net.inputs | list | 是 | ||
train_net.inputs.name | str | 是 | ||
train_net.inputs.source | str | 'remote' or 'local' | 是 | |
train_net.inputs.compress_type | str | 'min_max' or 'bit_pack' or 'no_compress' | 否 | |
train_net.inputs.bit_num | int | [1, 8] | 否 | |
train_net.outputs | list | 是 | ||
train_net.outputs.name | str | 是 | ||
train_net.outputs.destination | str | 'remote' or 'local' | 是 | |
train_net.outputs.compress_type | str | 'min_max' or 'bit_pack' or 'no_compress' | 否 | |
train_net.outputs.bit_num | int | [1, 8] | 否 | |
eval_net | dict | 是 | ||
eval_net.name | str | 否 | ||
eval_net.inputs | list | 是 | ||
eval_net.inputs.name | str | 是 | ||
eval_net.inputs.source | str | 'remote' or 'local' | 是 | |
eval_net.inputs.compress_type | str | 'min_max' or 'bit_pack' or 'no_compress' | 否 | |
eval_net.inputs.bit_num | int | [1, 8] | 否 | |
eval_net.outputs | list | 是 | ||
eval_net.output.name | str | 是 | ||
eval_net.output.destination | str | 'remote' or 'local' | 是 | |
eval_net.outputs.compress_type | str | 'min_max' or 'bit_pack' or 'no_compress' | 否 | |
eval_net.outputs.bit_num | int | [1, 8] | 否 | |
eval_net.gt | str | 否 | ||
opts | type | str | mindspore.nn.optim内定义的优化器名称 | 是 |
grads | list | 是 | ||
grads.inputs | list | 是 | ||
grads.inputs.name | str | 是 | ||
grads.output | dict | 是 | ||
grads.output.name | str | 是 | ||
grads.params | list | 否 | ||
grads.params.name | str | 否 | ||
grads.sens | union(float, int, str) | 否 | ||
params | list | 否 | ||
params.name | str | 否 | ||
hyper_parameters | dict | 否 | ||
grad_scalers | inputs | list | 否 | |
inputs.name | str | 否 | ||
output | dict | 否 | ||
output.name | str | 否 | ||
sens | union(float, int, str) | 否 | ||
dataset | name | str | 否 | |
features | list | 否 | ||
labels | list | 否 | ||
hyper_parameters | epochs | int | 否 | |
batch_size | int | 否 | ||
is_eval | bool | 否 | ||
privacy | label_dp | dict | 否 | |
label_dp.eps | float | 否 | ||
ckpt_path | str | 否 |
其中:
"leader"
或 "follower"
。默认值:""
。""
。""
。[]
。""
。"remote"
或 "local"
,"remote"
代表数据来源于其它参与方的网络传输,"local"
代表数据来源于本地。默认值: "local"
。"min_max"
或 "bit_pack"
或 "no_compress"
,"min_max"
代表采用最小最大量化通信压缩方法,"bit_pack"
代表采用比特打包通信压缩方法,"no_compress"
代表不采用通信压缩方法。[]
。""
。"remote"
或 "local"
,"remote"
代表数据将通过网络传输给其它参与方,"local"
代表数据本地使用,不进行网络传输。默认值: "local"
。"min_max"
或 "bit_pack"或"no_compress"
,"min_max"
代表采用最小最大量化通信压缩方法,"bit_pack"
代表采用比特打包通信压缩方法,"no_compress"
代表不采用通信压缩方法。""
。""
。[]
。""
。"remote"
或 "local"
,"remote"
代表数据来源于其它参与方的网络传输,"local"
代表数据来源于本地。默认值: "local"
。"min_max"
或 "bit_pack"
或 "no_compress"
,"min_max"
代表采用最小最大量化通信压缩方法,"bit_pack"
代表采用比特打包通信压缩方法,"no_compress"
代表不采用通信压缩方法。[]
。""
。"remote"
或 "local"
,"remote"
代表数据将通过网络传输给其它参与方,"local"
代表数据本地使用,不进行网络传输。默认值: "local"
。"min_max"
或 "bit_pack"
或 "no_compress"
,"min_max"
代表采用最小最大量化通信压缩方法,"bit_pack"
代表采用比特打包通信压缩方法,"no_compress"
代表不采用通信压缩方法。默认值: "min_max"
。""
。"Adam"
,参考优化器。默认值: ""
。[]
。[]
。""
。{}
。""
。[]
。""
。""
。[]
。""
。{}
。[]
。""
。{}
。""
。""
。""
。[]
。[]
。1
。1
。False
。{}
。1.0
。"./checkpoints"
。以本项目所提供的纵向联邦学习模型训练 - Wide&Deep推荐应用为例,其基于Wide&Deep模型和Criteo数据集,进行纵向联邦学习模型训练,其纵向联邦Leader参与方的yaml如下:
role: leader
model: # define the net of vFL party
train_net:
name: leader_loss_net
inputs:
- name: id_hldr
source: local
- name: wt_hldr
source: local
- name: wide_embedding
source: remote
compress_type: min_max
bit_num: 6
- name: deep_embedding
source: remote
compress_type: min_max
bit_num: 6
- name: label
source: local
outputs:
- name: out
destination: local
- name: wide_loss
destination: local
- name: deep_loss
destination: local
eval_net:
name: leader_eval_net
inputs:
- name: id_hldr
source: local
- name: wt_hldr
source: local
- name: wide_embedding
source: remote
compress_type: min_max
bit_num: 6
- name: deep_embedding
source: remote
compress_type: min_max
bit_num: 6
outputs:
- name: logits
destination: local
- name: pred_probs
destination: local
gt: label
opts: # define ms optimizer
- type: FTRL
grads: # define ms grad operations
- inputs:
- name: id_hldr
- name: wt_hldr
- name: wide_embedding
- name: deep_embedding
- name: label
output:
name: wide_loss
sens: 1024.0
# if not specify params, inherit params of optimizer
params: # if not specify params, process all trainable params
- name: wide
hyper_parameters:
learning_rate: 5.e-2
l1: 1.e-8
l2: 1.e-8
initial_accum: 1.0
loss_scale: 1024.0
- type: Adam
grads:
- inputs:
- name: id_hldr
- name: wt_hldr
- name: wide_embedding
- name: deep_embedding
- name: label
output:
name: deep_loss
sens: 1024.0
params:
- name: deep
- name: dense
hyper_parameters:
learning_rate: 3.5e-4
eps: 1.e-8
loss_scale: 1024.0
grad_scalers: # define the grad scale calculator
- inputs:
- name: wide_embedding
- name: deep_embedding
output:
name: wide_loss
sens: 1024.0
- inputs:
- name: wide_embedding
- name: deep_embedding
output:
name: deep_loss
sens: 1024.0
dataset:
name: criteo
features:
- id_hldr
- wt_hldr
labels:
- ctr
hyper_parameters:
epochs: 20
batch_size: 16000
is_eval: True
ckpt_path: './checkpoints'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。