参考:
https://blog.csdn.net/WenDong1997/article/details/106743620
https://blog.csdn.net/qq_41841524/article/details/117662143
经过整理而总结的文章,如有侵权,烦请联系修改。
配置文件
①上传数据文件
让 FATE 使用数据
②dsl文件
构建建模任务
实际上,在构建建模任务时,可能会涉及到几个组件,例如 data_io、feature_engineering、algorithm_model、evaluation 等。但是,这些组件的组合因任务而异。因此,自由组合组件的便捷方式将是一个关键特征。
目前,FATE 提供了一种特定领域的语言(DSL)来定义您想要的任何结构。这些组件通过 dsl 配置文件组合为有向无环图 (DAG)。
dsl 配置文件的使用就像定义一个 json 文件一样简单。
DSL 配置文件将为每个组件定义输入数据和(或)模型以及输出数据和(或)模型。
下游组件将上游组件的输出数据和(或)模型作为输入。这样,就可以通过配置文件构造一个 DAG。
③conf文件
为每个特定组件定义提交运行时配置
该配置文件用于为各方配置所有组件的参数。
FATE训练流程:
FATE训练任务流程主要有:
-
上传数据,需要准备上传数据配置文件
-
配置dsl文件:用于定义建模任务
配置conf文件:用于设置每个组件的参数
-
训练模型或者继续进行预测
-
FATE Board查看结果
一、上传数据
①定义上传数据配置文件
示例
{
"file": "examples/data/breast_b.csv",
"head": 1,
"partition": 10,
"work_mode": 0,
"table_name": "hetero_breast_b",
"namespace": "hetero_guest_breast"
}
参数说明:
file: 文件路径
head: 指定数据文件是否包含表头
partition: 指定用于存储数据的分区数
work_mode: 指定工作模式,0代表单机版,1代表集群版
table_name&namespace: 存储数据表的标识符号
实践例子:
使用Fate提供的案例数据,目录在fate容器中的/fate/examples/dsl/v1/homo_logistic_regression/upload_data_host.json和/fate/examples/dsl/v1/homo_logistic_regression/upload_data_guest.json
这里上传数据需要准备host以及guest两方的上传数据
vim /fate/examples/dsl/v1/homo_logistic_regression/upload_data_host.json
vim /fate/examples/dsl/v1/homo_logistic_regression/upload_data_guest.json
也可以不做修改,如作修改做好原文件备份或者直接查看fate github中相应的原件)
注:安装vim:
apt-get update
apt-get install -y vim
②上传数据
标准命令为:
python ${your_install_path}/fate_flow/fate_flow_client.py -f upload -c ${upload_data_json_path}
${your_install_path}: fate的安装目录
${upload_data_json_path}:上传数据配置文件路径
实践例子:
进入fate容器,在容器fate目录下执行下列命令:
python python/fate_flow/fate_flow_client.py -f upload -c examples/dsl/v1/homo_logistic_regression/upload_data_host.json
python python/fate_flow/fate_flow_client.py -f upload -c examples/dsl/v1/homo_logistic_regression/upload_data_guest.json
<下面这条upload_data_test.json 是上传测试数据,仅仅在作evaluation时需要上传,执行普通的train_job可以不用上传>
python python/fate_flow/fate_flow_client.py -f upload -c examples/dsl/v1/homo_logistic_regression/upload_data_test.json
输出所示,table_name和namespace已经列出,可以在上传配置文件中作为输入配置。
打开fate监控面板fate_board,点击可以看见参数配置等信息。
二、训练模型:
①定义DSL 配置文件
示例:
{
"components" : {
"dataio_0": { //module_name
"module": "DataIO",