首页 > 解决方案 > 有没有办法模拟 tensorflow-federated 中的通信成本?

问题描述

我正在努力优化联邦学习中的通信成本。因此,我需要模拟真实的网络延迟并测量通信开销(客户端和服务器之间的通信)。可以用 TFF 做到这一点吗?在联邦学习环境中是否存在用于通信的现实网络模型?

标签: tensorflow-federated

解决方案


在执行堆栈中引入网络延迟或延迟并不是 TFF 目前开箱即用的支持。

然而,在架构上这是绝对可能的。解决类似请求的最近贡献的一个示例是SizingExecutor,它测量在执行层次结构中向下和向上通过它的位。SizingExecutor立即在代表客户端的每个执行器顶部放置一个,然后测量通过该执行堆栈运行的每个联合计算中广播和聚合的位;这个实现可以在这里找到,实际上是在公共 API 中公开的。

您的愿望与 sizing executor 并没有完全不同,并且 sizing executor 可以直接服务于您的目的,如果您将 total bits ber round 作为您尝试优化的指标。但是,如果您更愿意检查分布式计算的其他方面(例如随机数据损坏),您可以想象通过实现与大小调整执行器类似的功能来实现这一点,尽管您也可以想象在计算级别执行此操作(客户端随机选择是否返回其真实结果或其结果的损坏版本)。

我认为从设计的角度来看,TFF 更愿意任何新的执行者保持他们正在执行的计算的语义不变,并且会转向简单地测量每轮比特等属性,或者直接在计算或算法中引入任何损坏,而不是然后在执行这些计算。客户可以选择引入的腐败或延迟类型实际上是任意的;是一个最近的研究项目的一个例子,它试图通过在某些客户端上插入恶意更新来攻击全局模型。我想,可以使用相同的方法来模拟任何所需的网络属性(例如,一些客户端休眠,一些发送回损坏的更新等)。

希望这可以帮助!


推荐阅读