Federated Learning
El aprendizaje federado entrena un modelo en muchos dispositivos u organizaciones que mantienen sus datos sin procesar en local y solo comparten las actualizaciones del modelo con un servidor.
El aprendizaje federado es una forma de entrenar un modelo de aprendizaje automático en muchos dispositivos u organizaciones que mantienen sus datos de entrenamiento allí donde se recopilaron. Un servidor coordinador envía el modelo actual a los participantes, cada uno lo entrena con sus propios datos y solo las actualizaciones resultantes del modelo se envían de vuelta para combinarlas y crear un modelo compartido mejor. Unos investigadores de Google dieron nombre a este enfoque en su artículo de 2016 Aprendizaje eficiente en comunicaciones de redes profundas a partir de datos descentralizados, que presentó el algoritmo de promediado federado (FedAvg) para entrenar con datos que permanecen en los móviles de los usuarios. Llevar el modelo hasta los datos permite que móviles, hospitales y bancos aprendan de información que las normas de privacidad, regulaciones como el Reglamento General de Protección de Datos (GDPR) de la UE o su enorme volumen impiden reunir en un lago de datos.
Cómo funciona el aprendizaje federado#
El entrenamiento se desarrolla en rondas. El servidor selecciona un grupo de clientes disponibles y les envía los pesos del modelo global. Cada cliente ejecuta unas cuantas épocas de descenso del gradiente con sus datos locales y devuelve los pesos actualizados. A continuación, FedAvg promedia los pesos recibidos, asignando a cada cliente una proporción acorde con el número de ejemplos de entrenamiento que tiene, y el resultado se convierte en el modelo global de la siguiente ronda. En los experimentos de FedAvg, realizar varios pasos locales entre comunicaciones redujo entre 10 y 100 veces el número de rondas de comunicación frente al descenso de gradiente estocástico sincronizado. Este código simula FedAvg para un modelo lineal en tres clientes con distintas cantidades de datos:
import torch
torch.manual_seed(0)
true_w = torch.tensor([2.0, -3.0])
# Three clients with private datasets of different sizes; raw data never leaves a client
clients = []
for n in (50, 200, 500):
X = torch.randn(n, 2)
clients.append((X, X @ true_w + 0.1 * torch.randn(n)))
global_w = torch.zeros(2)
for r in range(1, 6):
weighted = []
for X, y in clients:
w = global_w.clone()
for _ in range(5): # local gradient descent steps on the client's own data
w -= 0.1 * 2 * X.T @ (X @ w - y) / len(y)
weighted.append(len(y) * w)
# FedAvg: average the client weights, weighted by each client's number of samples
global_w = sum(weighted) / sum(len(y) for _, y in clients)
print(f"round {r}: global weights {[round(v, 3) for v in global_w.tolist()]}")Imprime los pesos globales de [1.354, -2.023] después de la ronda 1, [1.935, -2.898] después de la ronda 3 y [1.995, -2.99] después de la ronda 5, que convergen hacia los valores reales [2, -3], aunque el servidor solo recibe los pesos de cada cliente.
Aprendizaje federado entre dispositivos y entre silos#
El aprendizaje federado se desarrolla en dos contextos con distintas limitaciones. El entrenamiento entre dispositivos abarca millones de móviles o sensores, cada uno con pocos datos y a menudo sin conexión o funcionando con batería; por eso, en cada ronda solo se utiliza una pequeña parte de ellos y hay que tolerar desconexiones. El teclado Gboard de Google entrena así sus modelos de predicción de la siguiente palabra. El entrenamiento entre silos conecta a unas pocas organizaciones, como hospitales o bancos, cada una con grandes conjuntos de datos en servidores fiables. En el estudio de segmentación federada de tumores, 71 instituciones de atención sanitaria de seis continentes entrenaron un modelo de segmentación de glioblastomas con 25.256 resonancias magnéticas de 6.314 pacientes, sin compartirlas, y el modelo federado delimitó el tumor susceptible de tratamiento quirúrgico un 33 % mejor que un modelo entrenado con datos públicos. El contexto adecuado depende de dónde se encuentren los datos:
El mismo proceso sirve para modelos de visión: cada hospital, fábrica o tienda puede cargar los pesos globales actuales de YOLO26, ajustarlos con sus propias imágenes mediante el modo de entrenamiento estándar de Ultralytics YOLO y devolver solo los pesos actualizados para que el servidor los promedie. Los marcos de código abierto como Flower y NVIDIA FLARE gestionan la selección de clientes, la comunicación y la agregación en ambos contextos.
Privacidad y seguridad#
Mantener los datos en el dispositivo no garantiza por sí solo la privacidad del entrenamiento, porque las actualizaciones del modelo contienen información sobre los datos que las generaron. Los ataques de inversión de gradientes, como Fuga profunda a partir de gradientes, reconstruyeron imágenes y etiquetas de entrenamiento a partir de gradientes compartidos, y los ataques de inferencia de pertenencia comprueban si se utilizó un registro concreto. Los sistemas de producción incorporan dos defensas. La agregación segura cifra las actualizaciones para que el servidor solo conozca su suma, y la privacidad diferencial recorta cada actualización y añade ruido calibrado para que no se pueda recuperar la contribución de un solo usuario; Google informó de que todos los modelos de lenguaje de redes neuronales de Gboard para predecir la siguiente palabra, entrenados mediante aprendizaje federado, ya ofrecen garantías de privacidad diferencial. El servidor también debe protegerse de los clientes que envían actualizaciones envenenadas, mediante reglas de agregación robustas, como la mediana por coordenadas, que limitan la influencia de cualquier cliente. Si los datos de los clientes difieren mucho entre participantes, por ejemplo, si cada hospital utiliza un escáner distinto, los modelos locales divergen y la convergencia se ralentiza.
Aprendizaje federado y términos relacionados#
- Entrenamiento distribuido: Divide un conjunto de datos almacenado de forma centralizada entre muchas GPU de un centro de datos para entrenar más rápido. El aprendizaje federado no puede trasladar los datos; además, sus participantes son más lentos, menos fiables y tienen datos con distribuciones distintas.
- Aprendizaje dividido: Divide la propia red entre el cliente y el servidor e intercambia activaciones intermedias, mientras que el aprendizaje federado proporciona el modelo completo a cada cliente e intercambia pesos.
- Privacidad de los datos: El objetivo general de proteger la información personal. El aprendizaje federado es una técnica para lograrlo y suele combinarse con privacidad diferencial y agregación segura.
- IA en el borde: Ejecuta modelos en dispositivos. El aprendizaje federado entre dispositivos lo amplía al entrenar también en esos dispositivos.










