Glosario

Formación Distribuida

¡Acelera el entrenamiento de IA con el entrenamiento distribuido! Aprende a reducir el tiempo de entrenamiento, escalar modelos y optimizar recursos para proyectos complejos de ML.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

El entrenamiento distribuido es una técnica utilizada en el aprendizaje automático para acelerar el proceso de entrenamiento de los modelos, especialmente los grandes y complejos como los utilizados en el aprendizaje profundo. A medida que los conjuntos de datos aumentan y los modelos se hacen más sofisticados, el entrenamiento en un único procesadorCPU o GPU) puede resultar prohibitivamente lento. El entrenamiento distribuido aborda este reto dividiendo la carga de trabajo computacional entre varias unidades de procesamiento, que pueden estar ubicadas en una sola máquina o repartidas entre varias máquinas en un entorno de computación en red o en la nube.

Cómo funciona la formación distribuida

La idea central del entrenamiento distribuido es el paralelismo. En lugar de procesar los datos y calcular las actualizaciones del modelo secuencialmente en un procesador, la tarea se divide y se ejecuta simultáneamente en varios procesadores (a menudo llamados "trabajadores"). Existen dos estrategias principales:

  • Paralelismo de datos: El enfoque más común. El conjunto de datos se divide en trozos más pequeños, y cada trabajador se entrena en su propio trozo utilizando una copia del modelo. A continuación, se combinan los resultados (gradientes) para actualizar el modelo central. Esto funciona bien cuando el modelo cabe en un solo trabajador pero el conjunto de datos es muy grande. Frameworks como PyTorch ofrecen Datos Distribuidos en Paralelo.
  • Paralelismo de modelos: Se utiliza cuando el modelo en sí es demasiado grande para caber en la memoria de un solo trabajador. Las diferentes partes del modelo se colocan en diferentes trabajadores, y los datos fluyen entre ellos durante el entrenamiento. Es más complejo de implementar que el paralelismo de datos. Más información sobre los enfoques deTensorFlow para el paralelismo de modelos.

Aplicaciones reales de la formación distribuida

El entrenamiento distribuido es esencial para abordar problemas de IA a gran escala en diversos dominios:

  • Entrenamiento de grandes modelos lingüísticos (LLM): Los modelos como el GPT-4 tienen miles de millones de parámetros y se entrenan en conjuntos de datos de texto masivos. El entrenamiento distribuido en miles de GPUs lo hace posible. Estos modelos permiten aplicaciones que van desde la traducción automática a los chatbots avanzados.
  • Modelos avanzados de visión por ordenador: El entrenamiento de los modelos más avanzados para tareas como la segmentación de imágenes de alta resolución, el análisis detallado de imágenes médicas o los sistemas de percepción para vehículos autónomos suele requerir un entrenamiento distribuido para manejar arquitecturas complejas y grandes conjuntos de datos visuales como ImageNet.

Ejemplos de casos prácticos

  • Entrenamiento de los modelosYOLO Ultralytics : El entrenamiento distribuido puede reducir significativamente el tiempo necesario para entrenar Ultralytics YOLO sobre todo en grandes conjuntos de datos personalizados para la detección de objetos. Al utilizar varias GPU, los usuarios consiguen una convergencia más rápida y una precisión del modelo potencialmente mayor.
  • Formación de modelos basada en la nube: Las plataformas como Ultralytics HUB proporcionan una forma accesible de aprovechar los recursos de entrenamiento distribuidos en la nube. Esto permite a los usuarios sin un hardware local potente entrenar grandes modelos de forma eficiente utilizando infraestructuras gestionadas de proveedores como AWS, Google Cloud o Azure.

Formación distribuida frente a otros métodos de formación

Es útil distinguir la formación distribuida de los conceptos relacionados:

  • Formación centralizada: El enfoque tradicional en el que todo el proceso de formación tiene lugar en una sola máquina o dispositivo. Es más sencillo, pero a menudo demasiado lento para las tareas modernas a gran escala.
  • Aprendizaje Federado: Un enfoque distribuido diferente, centrado principalmente en la privacidad de los datos. En el Aprendizaje Federado, los modelos se entrenan localmente en dispositivos descentralizados (como teléfonos móviles) utilizando datos locales. Sólo las actualizaciones del modelo, no los datos en bruto, se envían a un servidor central para su agregación. Esto contrasta con el entrenamiento distribuido típico, en el que los datos suelen estar centralizados o distribuidos entre trabajadores bajo control central.

El entrenamiento distribuido es una técnica fundamental para ampliar los límites de la escala y la capacidad de los modelos de IA. Las herramientas y bibliotecas de marcos como PyTorch, TensorFlowy bibliotecas especializadas como Horovod simplifican su aplicación, haciendo más accesible el entrenamiento de modelos a gran escala.

Leer todo