Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Entrenamiento Distribuido

¡Acelere el entrenamiento de la IA con el entrenamiento distribuido! Aprenda a reducir el tiempo de entrenamiento, escalar modelos y optimizar los recursos para proyectos complejos de ML.

El entrenamiento distribuido es una potente técnica de aprendizaje automático que acelera el proceso de proceso de creación de modelos dividiendo la carga de trabajo computacional entre varios procesadores, como Unidades de procesamiento gráfico (GPU) o unidades de procesamiento Tensor (TPU). Al aprovechar la potencia combinada de dispositivos concurrentes, ya estén ubicados en una única estación de trabajo o conectados en red a través de un gran clúster, los desarrolladores pueden reducir drásticamente el tiempo necesario para entrenar complejas arquitecturas de aprendizaje profundo (deep learning, DL). arquitecturas de aprendizaje profundo (DL). Este enfoque es para manejar conjuntos de datos masivos y desarrollar sistemas de inteligencia sistemas de inteligencia artificial (IA) de última generación, lo que permite ciclos de iteración más rápidos y una experimentación más amplia.

Estrategias básicas de paralelización

Para distribuir eficazmente la carga de trabajo, los ingenieros suelen emplear una de las dos estrategias principales, o un enfoque híbrido diseñado para maximizar la eficiencia:

  • Paralelismo de datos: Este es el método más común para tareas como detección de objetos. En esta configuración, una copia completa del modelo reside en cada dispositivo. Los datos de entrenamiento de datos de entrenamiento se dividen en trozos más pequeños, y cada dispositivo procesa simultáneamente un subconjunto diferente. Durante la fase de fase de retropropagación, los gradientes se calculan gradientes se calculan de forma independiente y luego se sincronizan en todos los dispositivos interfaz de paso de mensajes (MPI) para actualizar los pesos del modelo.
  • Paralelismo de modelos: Cuando una red neuronal (NN) es demasiado grande para caber en la memoria de una sola GPU, se requiere paralelismo de modelos. Las capas o componentes del modelo se dividen en diferentes dispositivos. Los datos fluyen de forma secuencial o concurrente entre los dispositivos a medida que atraviesan la red. Esta técnica es fundamental para entrenar modelos modelos de fundamentos y grandes modelos lingüísticos (LLM), en los que donde el número de parámetros puede alcanzar los billones, lo que requiere herramientas especializadas como Microsoft DeepSpeed para gestionar la memoria.

Aplicaciones en el mundo real

La formación distribuida permite a las industrias resolver problemas que antes eran inviables desde el punto de vista computacional debido a limitaciones de tiempo o memoria. de tiempo o memoria.

  • Conducción autónoma: Desarrollar coches autónomos fiables requiere procesar petabytes de datos de vídeo y datos de sensores. Las empresas automovilísticas utilizan clústeres distribuidos a gran escala para entrenar modelos de visión para la segmentación semántica y el seguimiento de objetos en tiempo real. segmentación semántica y seguimiento de objetos en tiempo real. Al utilizar la IA en los flujos de trabajo de automoción, los ingenieros pueden iterar rápidamente en modelos críticos de seguridad para mejorar el rendimiento.
  • Imagen médica: En AI in Healthcare, el análisis de escáneres 3D de alta resolución, como resonancias magnéticas o tomografías computarizadas. El entrenamiento distribuido permite a los investigadores entrenar modelos de diagnóstico de alta precisión en diversos conjuntos de datos que respeten la privacidad. Marcos como NVIDIA CLARA a menudo se basan en técnicas distribuidas para procesar eficientemente estas complejas imágenes médicas.

Implantación de la formación distribuida con YOLO

En ultralytics simplifica la implementación de la formación DDP (Distributed Data Parallel). En puede escalar fácilmente su entrenamiento de YOLO11 modelos en múltiples GPUs simplemente especificando los índices de los dispositivos.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])

Entrenamiento distribuido vs. Conceptos relacionados

Es importante distinguir la formación distribuida de otros términos relacionados en el ecosistema de la IA:

  • vs. Aprendizaje Federado: Aunque ambos implican múltiples dispositivos, sus objetivos principales difieren. La formación distribuida suele centralizar los datos en un clúster de alto rendimiento para maximizar la velocidad y el rendimiento. En Por el contrario, el aprendizaje federado descentralizados en los dispositivos de los usuarios (como los smartphones) para priorizar la privacidad de los datos, agregando actualizaciones sin que los datos salgan del dispositivo de origen.
  • vs. Computación de alto rendimiento (HPC): La HPC es un campo amplio que abarca la supercomputación para simulaciones científicas, como la predicción meteorológica. El entrenamiento distribuido es una aplicación específica de la HPC aplicada a algoritmos de optimización en redes redes neuronales, a menudo utilizando bibliotecas de comunicación especializadas como NVIDIA NCCL para reducir la latencia entre GPU.

Herramientas y ecosistema

Un sólido ecosistema de herramientas y plataformas de código abierto apoya la implantación de la formación distribuida:

  • Marcos: PyTorch ofrece soporte nativo a través de su paquete distribuido, mientras que TensorFlow proporciona estrategias como MirroredStrategy para un escalado sin fisuras.
  • Orquestación: La gestión de recursos a través de un gran clúster a menudo implica la orquestación de contenedores como Kubernetes o Kubeflow, que automatizan el despliegue y el escalado de los trabajos de formación.
  • Infraestructura en la nube: Los principales proveedores ofrecen servicios gestionados como AWS SageMaker y Google Cloud TPUs que proporcionan una infraestructura optimizada para cargas de trabajo distribuidas, eliminando la carga del mantenimiento del hardware. cargas de trabajo distribuidas, eliminando la carga del mantenimiento del hardware.
  • Escalabilidad universal: Bibliotecas como Horovod y Ray proporcionan enfoques de escalado independientes del marco, lo que permite a los desarrolladores adaptar su código a entornos distribuidos con cambios mínimos. su código a entornos distribuidos con cambios mínimos.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora