Otros métodos de compresión para el aprendizaje federado
Noté que el método de compresión Gradient Quantization ya está implementado en el marco TFF. ¿Qué hay de los métodos de compresión no tradicionales en los que seleccionamos un submodelo eliminando algunas partes del modelo global? Me encontré con el método de compresión "Abandono federado" en el documento "Expandiendo el alcance del aprendizaje federado mediante la reducción de los requisitos de recursos del cliente" (https://arxiv.org/abs/1812.07210). Cualquier idea si el método Federated Dropout ya es compatible con Tensorflow Federated. Si no es así, ¿alguna idea de cómo implementarlo (la idea principal del método es eliminar un porcentaje fijo de las activaciones y filtros en el modelo global para intercambiar y entrenar un submodelo más pequeño)?
Respuestas
Actualmente, no hay una implementación de esta idea disponible en la base de código TFF.
Pero aquí hay un esquema de cómo podría hacerlo, recomiendo comenzar desde examples/simple_fedavg
- Modifique el nivel superior build_federated_averaging_processpara aceptar dos
model_fn
s: unoserver_model_fn
para el modelo global y otroclient_model_fn
para la estructura de submodelo más pequeña que realmente se capacitó en los clientes. - Modifique build_server_broadcast_messagepara extraer solo el submodelo relevante del
server_state.model_weights
. Este sería el mapeo del modelo del servidor al modelo del cliente. - Es client_updateposible que en realidad no sea necesario cambiarlo (no estoy 100% seguro), siempre y cuando solo
client_model_fn
se proporcione client_update_fn. - Modificar server_update:
weights_delta
será la actualización del submodelo del cliente, por lo que deberá asignarlo al modelo global más grande.
En general, los pasos 2 y 4 son complicados, ya que dependen no solo de qué capas hay en un modelo, sino también de cómo están conectadas. Por lo tanto, será difícil crear una solución general fácil de usar, pero debería estar bien escribirlas para una estructura de modelo específica que conozca de antemano.