FederatedAI / FATE

An Industrial Grade Federated Learning Framework
Apache License 2.0
5.74k stars 1.55k forks source link

FATE 消息队列 #5728

Open FancyXun opened 1 month ago

FancyXun commented 1 month ago

大家好,请教FATE的算法的几个通信问题。

1.目前使用k8s部署了eggroll + osx模式。我理解osx是一个消息队列组件吧?多方之间的所有的通信都要走osx这个组件?

2.基于1,是否支持对接其他的消息队列组件,比如Kafka,rabbitmq之类的,适配的话需要改动什么,对代码有修改吗?如果有,具体是改哪些组件呢?

3.之前是用spark+pulsar的部署模式,但是似乎2.0的spark的bug较多,但我也理解是不是也支持eggroll + pulsar这种模式?

FancyXun commented 1 month ago

大家好,请教FATE的算法的几个通信问题。

1.目前使用k8s部署了eggroll + osx模式。我理解osx是一个消息队列组件吧?多方之间的所有的通信都要走osx这个组件?

2.基于1,是否支持对接其他的消息队列组件,比如Kafka,rabbitmq之类的,适配的话需要改动什么,对代码有修改吗?如果有,具体是改哪些组件呢?

3.之前是用spark+pulsar的部署模式,但是似乎2.0的spark的bug较多,但我也理解是不是也支持eggroll + pulsar这种模式?

以上的提问主要是考虑到有些场景,多方之间只能通过mq进行通信,我看了写fate的架构图,如果osx是个消息队列组件,似乎也是通过消息队列组件来作为多方的通信协议

dylan-fan commented 1 month ago

osx既支持流式模式,也支持队列模式。 eggroll可以和队列组合。 spark的bug 我们应该在FATE 2.1以上版本修复了,建议用最新版本FATE。 如果想使用rabbitmq之类,可以看fate python部分代码,进行参考修改。比如https://github.com/FederatedAI/FATE/tree/master/python/fate/arch/federation/backends/rabbitmq https://github.com/FederatedAI/FATE/tree/master/python/fate/arch/federation/backends/osx

FancyXun commented 1 month ago

osx既支持流式模式,也支持队列模式。 eggroll可以和队列组合。 spark的bug 我们应该在FATE 2.1以上版本修复了,建议用最新版本FATE。 如果想使用rabbitmq之类,可以看fate python部分代码,进行参考修改。比如https://github.com/FederatedAI/FATE/tree/master/python/fate/arch/federation/backends/rabbitmq https://github.com/FederatedAI/FATE/tree/master/python/fate/arch/federation/backends/osx

好的,感谢。我们的目标主要是想使用外部的消息队列。所以如果我想FATE使用外部的消息队列(kafka或者rabbitmq)进行通信,您指的修改是对osx这个组件进行修改让他适配外部的消息队列,还是说对您发的两个链接进行修改。我看您发的链接里面有一些和rabbitmq的代码,是fate原生就支持吗?

dylan-fan commented 1 month ago

你可以参考fate里面 rabbitmq实现

FancyXun commented 1 month ago

好的,再请教下两个问题

  1. 如果还是使用osx作为消息组件,他们之间的通信我理解是http协议吗
  2. 所有fate的算法都是走Osx这个组件吗? 我的诉求就是尽量少的修改组件,比如我希望每个算法之间进行通信时,如果他们之间采用的http协议,我想要在header头里面加一些自定义参数。如果所有的算法都走osx这个组件,我是否在osx这个组件里面统一修改就可以了。 谢谢
dylan-fan commented 1 month ago

所有算法都是走同样的组件,比如osx。osx协议走的是grpc协议。