FATE
FATE copied to clipboard
关于横向联邦场景下Host方如何完成仅一方的部署与预测
根据教程,横向联邦场景下,guest方训练完模型后,可以通过deploy命令部署模型,然后submit job的方式完成预测。 然后在 #4314 中提到,可以通过修改conf文件,仅保留一方的role与component_params的方式,完成仅一方的预测。 我根据上面的方法,实现了仅guest方参与的预测,但是,在尝试实现仅host方参与的预测时出现了问题: 根据我的理解,在预测之前,需要先部署模型,即执行deploy命令:
flow model deploy --model-id arbiter-9998#guest-9999#host-9998#model --model-version 202303220252081986320 --dsl-path /data/projects/fate/examples/dsl/v2/homo_logistic_regression/homo-lr-normal-predict-dsl.json
在host方执行后遇到如下报错:
{
"retmsg": "Deploy model failed. Cannot found model of initiator role or the fate version of model is older than 1.5.0",
"retcode": 404
}
1.是因为该模型的发起方是guest-9999,host方的flow报错? 2.若我想实现在FATE平台上完成host方的单独预测应该怎么做? 3.若想完成host方的单独预测,只能通过homo_convert转换成本地模型,然后在其他平台上部署? 谢谢。
我感觉应该是你的/homo-lr-normal-predict-dsl.json存在问题,在使用host部署的时候应该修改一些内容,不是和guest完全一样的。
我感觉应该是你的/homo-lr-normal-predict-dsl.json存在问题,在使用host部署的时候应该修改一些内容,不是和guest完全一样的。
@oceanqdu 感谢您的回复,这里的homo-lr-normal-predict-dsl.json使用的是与guest方相同的dsl,内容如下:
{
"components": {
"data_transform_0": {
"input": {
"data": {
"data": [
"reader_0.data"
]
},
"model": [
"pipeline.data_transform_0.model"
]
},
"module": "DataTransform",
"output": {
"data": [
"data"
]
}
},
"reader_0": {
"module": "Reader",
"output": {
"data": [
"data"
]
}
},
"scale_0": {
"input": {
"data": {
"data": [
"data_transform_0.data"
]
},
"model": [
"pipeline.scale_0.model"
]
},
"module": "FeatureScale",
"output": {
"data": [
"data"
]
}
},
"homo_lr_0": {
"input": {
"data": {
"test_data": [
"scale_0.data"
]
},
"model": [
"pipeline.homo_lr_0.model"
]
},
"module": "HomoLR",
"output": {
"data": [
"data"
]
}
}
}
}
如果想在host方部署需要修改哪些内容?这里看起来没有指定guest或host的字段,感谢。
我感觉是不是在你加载之前需要导入一下模型?例如这样 flow model import -c examples/model/import_model.json 我之前都是在guest方进行的,host方我也没有实验过。
我感觉是不是在你加载之前需要导入一下模型?例如这样 flow model import -c examples/model/import_model.json 我之前都是在guest方进行的,host方我也没有实验过。
好的,感谢,我后续尝试一下,目前在host方我只实现了通过homo_convert导出模型,然后在本地做推理。
我感觉是不是在你加载之前需要导入一下模型?例如这样 flow model import -c examples/model/import_model.json 我之前都是在guest方进行的,host方我也没有实验过。
好的,感谢,我后续尝试一下,目前在host方我只实现了通过homo_convert导出模型,然后在本地做推理。
你好,请问这个 homo_convert 是什么功能,如何使用呢? 我最近也想导出模型,用于本地推理。
你好,请问这个 homo_convert 是什么功能,如何使用呢? 我最近也想导出模型,用于本地推理。
你好,homo_convert是flow cli提供的接口,用于将横向联邦模型导出,具体请参考homo_convert。 我印象中是训练完成后,执行flow model deploy ; 然后根据获得的model_id,model_version,以及实际的role与party_id修改examples/model/homo_convert_model.json; 执行flow model homo_convert,如果flow server成功返回,返回的结果将包含模型导出的本地路径; 导出的模型好像仍需要手动进行数据预处理,即导出的模型只包含运行算法的那个组件,如homo_lr等。 希望对你有所帮助。
你好,请问这个 homo_convert 是什么功能,如何使用呢? 我最近也想导出模型,用于本地推理。
你好,homo_convert是flow cli提供的接口,用于将横向联邦模型导出,具体请参考homo_convert。 我印象中是训练完成后,执行flow model deploy ; 然后根据获得的model_id,model_version,以及实际的role与party_id修改examples/model/homo_convert_model.json; 执行flow model homo_convert,如果flow server成功返回,返回的结果将包含模型导出的本地路径; 导出的模型好像仍需要手动进行数据预处理,即导出的模型只包含运行算法的那个组件,如homo_lr等。 希望对你有所帮助。
感谢感谢。
你好 请问这个问题现在解决了吗 如果解决了是如何实现的方便说一下嘛 感谢感谢