对服务器和客户端之间的通信执行的操作

Operations performed on the communications between the server and clients

部分联邦学习研究基于对服务器和客户端之间的通信执行的操作,例如丢弃客户端和服务器之间交换的部分更新(丢弃一些描述模型的梯度)或丢弃来自特定的更新某个通信回合中的客户端。我想知道 Tensorflow 联合 (TFF) 框架是否支持此类功能以及它们是如何支持的,因为乍一看,在我看来,TFF API 的抽象级别不允许此类操作。谢谢。

TFF 的语言设计有意避免了客户端的概念身份;希望避免使 "Client X" 可寻址并丢弃其更新或向其发送不同的数据。

但是,可能有一种方法可以 运行 模拟所提到的计算类型。 TFF 确实支持表达以下内容:

  • 以张量属性为条件的计算,例如忽略具有 nan 值的更新。实现这一点的一种方法是编写一个 tff.tf_computation 有条件地将 tff.federated_mean 之前的更新权重归零。此技术用于 tff.learning.build_federated_averaing_process()

  • 模拟 运行 对不同客户端集的不同计算(其中一组可能是单个客户端)。由于引用执行器通过客户端拥有的数据对客户端进行参数化,因此 TFF 的编写者可以编写两个 tff.federated_computations,将它们应用于不同的模拟数据,然后合并结果。