Split Learning
Aprende cómo el aprendizaje dividido divide las redes neuronales entre dispositivos para admitir la IA colaborativa mientras exploras los riesgos de privacidad, los flujos de trabajo de entrenamiento, las aplicaciones y las opciones de diseño.
El aprendizaje dividido es un enfoque de aprendizaje automático distribuido que divide una red neuronal entre dos o más ubicaciones de computación. Un cliente procesa datos de entrada privados a través de las capas iniciales del modelo, envía solo activaciones intermedias a un servidor y recibe los gradientes necesarios para continuar entrenando las capas locales del cliente. Esto permite que las organizaciones o los dispositivos colaboren sin transferir directamente los datos de entrenamiento sin procesar.
El enfoque es especialmente relevante cuando el aprendizaje automático debe operar a través de límites de privacidad, propiedad, ancho de banda o hardware. Por ejemplo, un hospital puede retener imágenes médicas localmente mientras un servidor más potente ejecuta la porción de un modelo que exige mayor capacidad de cómputo. Sin embargo, mantener los datos sin procesar de forma local no garantiza automáticamente la privacidad de los datos, porque las representaciones intermedias aún pueden revelar información sensible.
Cómo funciona el aprendizaje dividido#
Una red neuronal se divide en una capa de corte elegida. Las capas anteriores al corte se ejecutan en el cliente, mientras que las capas posteriores se ejecutan en el servidor. La salida de la red del lado del cliente se suele denominar activación, representación intermedia o datos aplastados.
Un paso de entrenamiento sigue esta secuencia:
- El cliente ejecuta una pasada hacia adelante desde la entrada sin procesar hasta la capa de corte.
- El cliente envía la activación resultante al servidor.
- El servidor completa la pasada hacia adelante y calcula la pérdida.
- Durante la propagación hacia atrás, el servidor calcula un gradiente para la activación de la capa de corte y lo devuelve.
- El cliente utiliza ese gradiente para actualizar las capas locales del cliente.
Este proceso se basa en la misma regla de la cadena implementada por sistemas como la diferenciación automática de PyTorch. La diferencia es que las activaciones y los gradientes cruzan un límite de red durante el entrenamiento.
El siguiente ejemplo de un solo proceso simula ese límite:
import torch
from torch import nn
client_model = nn.Sequential(nn.Linear(8, 16), nn.ReLU())
server_model = nn.Sequential(nn.Linear(16, 2))
client_optimizer = torch.optim.SGD(client_model.parameters(), lr=0.01)
server_optimizer = torch.optim.SGD(server_model.parameters(), lr=0.01)
inputs = torch.randn(4, 8)
targets = torch.tensor([0, 1, 0, 1])
client_optimizer.zero_grad()
server_optimizer.zero_grad()
client_activations = client_model(inputs)
sent_activations = client_activations.detach().requires_grad_()
predictions = server_model(sent_activations)
loss = nn.CrossEntropyLoss()(predictions, targets)
loss.backward()
client_activations.backward(sent_activations.grad)
server_optimizer.step()
client_optimizer.step()
print(loss.item())Desvincular client_activations representa enviarlas a otro sistema. El gradiente de activación devuelto reconecta las dos mitades para la optimización. Una implementación de producción debe agregar redes, autenticación, cifrado, gestión de fallos y controles de privacidad.
Aprendizaje dividido frente a enfoques relacionados#
El aprendizaje dividido pertenece al campo más amplio del entrenamiento distribuido, pero particiona el cálculo de manera diferente.
- Aprendizaje federado: Cada participante normalmente entrena un modelo local completo y envía actualizaciones del modelo para su agregación. El aprendizaje dividido otorga a cada participante solo una parte del modelo e intercambia activaciones intermedias y gradientes.
- Paralelismo de tuberías: Ambos enfoques ubican diferentes capas en diferentes dispositivos. El paralelismo de tuberías mejora principalmente la escala o la utilización del hardware en un entorno de confianza, mientras que el aprendizaje dividido comúnmente separa a los propietarios de los datos de los proveedores de computación.
- Entrenamiento paralelo de datos: Frameworks como PyTorch DistributedDataParallel y el entrenamiento distribuido de TensorFlow replican un modelo y sincronizan las actualizaciones. Por lo general, no mantienen las capas iniciales exclusivamente junto a los datos originales.
El aprendizaje dividido también puede admitir datos particionados verticalmente, donde las organizaciones conservan diferentes características para registros coincidentes. El flujo de trabajo de aprendizaje dividido de SecretFlow ilustra esta disposición.
Aplicaciones en el mundo real#
-
Imagen médica colaborativa: Los hospitales pueden entrenar un sistema de visión por computador compartido mientras mantienen las radiografías o escaneos dentro de su propia infraestructura. Cada hospital ejecuta las primeras capas localmente, y un servidor central completa el entrenamiento a partir de características intermedias. La descripción general del aprendizaje dividido del MIT utiliza centros de radiología para explicar esta arquitectura.
-
Cámaras industriales con recursos limitados: Las cámaras o pasarelas de fábrica pueden ejecutar un extractor de características compacto localmente mientras un servidor entrena las capas restantes para la detección de objetos. Esto puede reducir la transferencia de video sin procesar y el cálculo del cliente, haciendo que el enfoque sea relevante para los sistemas de IA en el borde que operan en múltiples instalaciones.
Beneficios, riesgos y opciones de diseño#
La capa de corte determina el equilibrio entre la carga de trabajo del cliente, la carga de trabajo del servidor, el volumen de comunicación y la exposición de información. Un corte temprano reduce el cálculo del cliente pero puede producir activaciones grandes similares a la entrada. Un corte posterior puede crear características más abstractas pero requiere un hardware de cliente más potente.
Las activaciones intermedias y los gradientes pueden seguir siendo vulnerables a la reconstrucción, la inferencia o la manipulación. Por lo tanto, los equipos deben evaluar los controles de acceso, el transporte cifrado, la protección de activaciones, el registro de auditoría y la confianza de los participantes en lugar de tratar el aprendizaje dividido como una solución de privacidad completa. El marco de privacidad del NIST y el marco de gestión de riesgos de IA del NIST proporcionan procesos más amplios para evaluar estos riesgos.
El ancho de banda y la latencia también importan porque cada paso de entrenamiento puede requerir comunicación bidireccional. Los clientes lentos o poco confiables pueden retrasar todo el sistema, mientras que las distribuciones de datos inconsistentes pueden afectar la convergencia.
Ultralytics YOLO no proporciona una orquestación de aprendizaje dividido lista para usar. Su implementación requeriría particionar cuidadosamente la arquitectura de YOLO, coordinar las pasadas hacia adelante y hacia atrás remotas, y potencialmente ampliar el flujo de trabajo de entrenador personalizado documentado. Para los proyectos que solo necesitan que los datos permanezcan en hardware propio, el entrenamiento de modelos de la plataforma Ultralytics admite el entrenamiento local con métricas transmitidas en streaming, pero el entrenamiento local no es aprendizaje dividido porque el modelo en sí no se divide entre los participantes.






