学习联邦学习的概念及方法,尝试微众银行FATE框架。
本节主要是记录从官方微信群得到的回答及修改结果。
单机版教程参考:横向联邦学习实践
集群版教程参考:使用FATE进行图片识别的深度神经网络联邦学习
实际使用中提出了这样一个问题:在案例中,mnist数据集是随机划分的,即每一个数据集内同时存在0~9全部标签。但是生产中存在这样一种情况:不同参与者拥有的标签完全不同,比如一方拥有0 ~4,另一方拥有 5 ~9。模拟这种情况进行尝试。在不改变算法配置的情况下报错。
经其他人提醒后,怀疑可能是由于单独一方参与者不拥有全部标签,和算法配置不符带来的问题。在数据集上增加几条其它标签的数据,保证各方拥有全部标签。运行时不再报错。
上述方法并没有从根本上解决问题。接下来尝试通过改变算法模块解决报错问题。
20200518:官方回答:
问:在用横向联邦学习进行手写体识别的时候报错。我将数据集分按标签为01234和56789划分,分类任务5或者10均报错。请问fate支持两个节点上的数据标签完全不同这种情况吗?
答:是会这样 现在没有进行类别数同步 类别数的推断会出错 下个版本会解决这个问题。(当时刚刚发布1.4版本)
在github提了issue进行记录。
新问题:
使用fate 1.3中遇到了这样的问题:集群正常运行了一段时间后出现问题,数据突然上传的很慢,原本只需要十几秒的过程会卡住,等待很久的话会报错。使用的是docker版的集群部署。这种问题遇到了不止一次,在不同节点(host,guest)上均遇到过。重新部署后解决了这个问题。这个问题的原因和解决方法尚不清楚。
另外,重新部署后的数据仍然保留,这是为什么?
怀疑:磁盘空间不足。
20200609:
问题:使用resnet50模型后,提交任务报错。
{
“retcode”: 100,
“retmsg”: “an error occurred while creating the job: role guest party_id 9999\n(1406, “Data too long for column ‘f_runtime_conf’ at row 1”)”
}
原因:任务参数过多。runtime_config文件会读成json存入mysql,这个报错是超过mysql的字段最大长度,存mysql报错。
解决方法:修改mysql容器中表名为t_job的f_runtime_config字段。
mysql账户密码: user:fate passwd:fate_dev
将TEXT修改为MEDIUMTEXT后错误解决。
20200624:
问题:是否支持加载预训练的模型权重?
答:暂不支持