Distributed Training
Explora cómo el entrenamiento distribuido escala las cargas de trabajo de IA en múltiples GPU. Aprende a acelerar el entrenamiento de Ultralytics YOLO26 con DDP para obtener resultados más rápidos y precisos.
El entrenamiento distribuido es un método de aprendizaje automático donde la carga de trabajo del entrenamiento de un modelo se reparte entre múltiples procesadores o máquinas. Este enfoque es esencial para manejar conjuntos de datos a gran escala y arquitecturas de redes neuronales complejas que, de otro modo, requerirían una cantidad de tiempo impracticable para entrenarse en un solo dispositivo. Al aprovechar la potencia computacional combinada de múltiples Unidades de Procesamiento Gráfico (GPUs) o Unidades de Procesamiento Tensorial (TPUs), el entrenamiento distribuido acelera significativamente el ciclo de desarrollo, permitiendo a investigadores e ingenieros iterar más rápido y alcanzar una mayor precisión en sus modelos.
Link to this sectionCómo funciona el entrenamiento distribuido#
La idea central detrás del entrenamiento distribuido es la paralelización. En lugar de procesar los datos secuencialmente en un solo chip, la tarea se divide en fragmentos más pequeños que se procesan simultáneamente. Existen dos estrategias principales para lograr esto:
- Paralelismo de datos: Este es el enfoque más común para tareas como la detección de objetos. En esta configuración, se coloca una copia del modelo completo en cada dispositivo. Los datos de entrenamiento globales se dividen en lotes más pequeños, y cada dispositivo procesa un lote diferente al mismo tiempo. Después de cada paso, los gradientes (actualizaciones del modelo) se sincronizan en todos los dispositivos para asegurar que los pesos del modelo permanezcan consistentes.
- Paralelismo de modelo: Cuando una red neuronal (NN) es demasiado grande para caber en la memoria de una sola GPU, el propio modelo se divide en varios dispositivos. Diferentes capas o componentes del modelo residen en diferentes chips y los datos fluyen entre ellos. Esto suele ser necesario para entrenar modelos fundamentales masivos y Modelos de Lenguaje Extensos (LLMs).
Link to this sectionAplicaciones en el mundo real#
El entrenamiento distribuido ha transformado industrias al hacer posible la resolución de problemas que antes eran computacionalmente inviables.
- Conducción autónoma: Desarrollar vehículos autónomos seguros requiere analizar petabytes de datos de vídeo y sensores. Los ingenieros automotrices utilizan grandes clústeres distribuidos para entrenar modelos de visión para la segmentación semántica y detección de carriles en tiempo real. Esta escala masiva garantiza que los sistemas de IA en automoción puedan reaccionar de manera fiable a diversas condiciones de la carretera.
- Imágenes médicas: En el sector sanitario, el análisis de escaneos 3D de alta resolución como las resonancias magnéticas requiere una memoria y potencia de procesamiento considerables. El entrenamiento distribuido permite a los investigadores crear herramientas de diagnóstico de alto rendimiento para la detección de tumores y otras tareas críticas. Al utilizar marcos como NVIDIA MONAI, los hospitales pueden entrenar modelos en conjuntos de datos diversos sin alcanzar cuellos de botella de memoria, mejorando los resultados de la IA en la atención sanitaria.
Link to this sectionUso del entrenamiento distribuido con Ultralytics#
La librería ultralytics hace que sea sencillo implementar el entrenamiento de Paralelismo de Datos Distribuido (DDP). Puedes escalar tu entrenamiento de modelos YOLO26 de vanguardia en múltiples GPUs simplemente especificando los índices de los dispositivos en tus argumentos de entrenamiento.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])Link to this sectionConceptos relacionados y comparaciones#
Es útil distinguir el entrenamiento distribuido de términos similares en el ecosistema del aprendizaje automático para comprender sus roles específicos:
- Vs. Aprendizaje federado: Aunque ambos implican múltiples dispositivos, sus objetivos difieren. El entrenamiento distribuido suele centralizar los datos en un clúster de alto rendimiento para maximizar la velocidad. Por el contrario, el aprendizaje federado mantiene los datos descentralizados en los dispositivos de los usuarios (como teléfonos inteligentes) para priorizar la privacidad de los datos, actualizando el modelo global sin que los datos sin procesar salgan nunca de la fuente.
- Vs. Computación de alto rendimiento (HPC): HPC es un campo amplio que incluye la supercomputación para simulaciones científicas como la previsión meteorológica. El entrenamiento distribuido es una aplicación específica de HPC aplicada a algoritmos de optimización en aprendizaje profundo. A menudo se basa en bibliotecas de comunicación especializadas como NVIDIA NCCL para minimizar la latencia entre GPUs.
Link to this sectionEscalado con plataformas en la nube#
Gestionar la infraestructura para el entrenamiento distribuido puede ser complejo. Las plataformas modernas simplifican esto ofreciendo entornos gestionados. Por ejemplo, la Ultralytics Platform permite a los usuarios gestionar conjuntos de datos e iniciar ejecuciones de entrenamiento que pueden implementarse en entornos de nube o clústeres locales. Esta integración agiliza el flujo de trabajo desde la anotación de datos hasta el despliegue del modelo final, asegurando que escalar a múltiples GPUs sea lo más fluido posible. De manera similar, los proveedores de nube como Google Cloud Vertex AI y Amazon SageMaker proporcionan una infraestructura robusta para ejecutar trabajos de entrenamiento distribuido a escala empresarial.






