Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Treinamento Distribuído

Acelere o treinamento de IA com treinamento distribuído! Aprenda como reduzir o tempo de treinamento, escalar modelos e otimizar recursos para projetos complexos de ML.

A formação distribuída é uma técnica poderosa na aprendizagem automática (ML) que acelera o processo de processo de criação de modelos, dividindo a carga de trabalho computacional por vários processadores, tais como Unidades de processamento gráfico (GPUs) ou Unidades de Processamento Tensor (TPUs). Ao aproveitar o poder combinado de dispositivos simultâneos - localizados numa única estação de trabalho ou em rede em um vasto cluster, os desenvolvedores podem reduzir drasticamente o tempo necessário para treinar arquiteturas complexas de arquitecturas complexas de aprendizagem profunda (DL). Esta abordagem é essencial para lidar com conjuntos de dados maciços e desenvolver sistemas de sistemas de inteligência artificial (IA) de última geração, permitindo ciclos de iteração mais rápidos e uma experimentação mais alargada.

Estratégias principais para paralelização

To effectively distribute the workload, engineers typically employ one of two primary strategies, or a hybrid approach designed to maximize efficiency:

  • Paralelismo de dados: Este é o método mais comum para tarefas como deteção de objectos. Nesta configuração, uma cópia completa do modelo reside em cada dispositivo. Os dados de dados de treino são divididos em pedaços mais pequenos e cada dispositivo processa um subconjunto diferente em simultâneo. Durante a fase de fase de retropropagação, os gradientes são calculados calculados independentemente e depois sincronizados em todos os dispositivos usando protocolos de comunicação como a como o MPI (Message Passing Interface) para atualizar os pesos do modelo de forma consistente.
  • Paralelismo de modelos: Quando uma rede neural (NN) é demasiado grande para caber na memória de uma única GPU, é necessário o paralelismo do modelo. As camadas ou componentes do modelo são particionados em diferentes dispositivos. Os dados fluem sequencialmente ou simultaneamente entre dispositivos à medida que passam pela rede. Esta técnica é fundamental para o treino de modelos de modelos de base e modelos de linguagem de grande porte (LLMs), onde onde a contagem de parâmetros pode atingir os triliões, exigindo ferramentas especializadas como o Microsoft DeepSpeed para gerenciar a memória.

Aplicações no Mundo Real

A formação distribuída permite às indústrias resolver problemas que anteriormente eram computacionalmente inviáveis devido a restrições de tempo ou de memória. ou restrições de memória.

  • Condução autónoma: O desenvolvimento de carros autónomos fiáveis requer o processamento de petabytes de vídeo e dados de sensores. As empresas do sector automóvel utilizam clusters distribuídos em grande escala para treinar modelos de visão para segmentação semântica em tempo real segmentação semântica e rastreamento de objetos em tempo real. Ao utilizar a IA nos fluxos de trabalho do sector automóvel, os engenheiros podem iterar rapidamente em modelos críticos de segurança para melhorar o desempenho.
  • Imagiologia médica: Em IA nos cuidados de saúde, a análise de exames 3D de alta resolução de alta resolução, como as ressonâncias magnéticas ou as tomografias computorizadas, exige recursos computacionais significativos. A formação distribuída permite aos investigadores treinar modelos de diagnóstico de alta precisão em diversos em conjuntos de dados diversos e compatíveis com a privacidade. Estruturas como a NVIDIA CLARA dependem frequentemente de técnicas distribuídas para processar essas imagens médicas complexas de forma eficiente.

Implementação de formação distribuída com YOLO

O ultralytics simplifica a implementação da formação Distributed Data Parallel (DDP). O utilizador pode facilmente escalar o seu treino de YOLO11 modelos em múltiplas GPUs, especificando simplesmente os índices de 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])

Treinamento Distribuído vs. Conceitos Relacionados

É importante distinguir a formação distribuída de outros termos relacionados no ecossistema da IA:

  • vs. Aprendizagem Federada: Embora ambos envolvam vários dispositivos, os seus principais objectivos são diferentes. O treinamento distribuído normalmente centraliza os dados em um cluster de alto desempenho para maximizar a velocidade e o rendimento. Em Em contraste, a aprendizagem federada mantém os dados descentralizados nos dispositivos dos utilizadores (como smartphones) para dar prioridade à privacidade dos dados, agregando actualizações de modelos sem que os sem que os dados brutos deixem o dispositivo de origem.
  • vs. Computação de Alto Desempenho (HPC): A HPC é um campo alargado que engloba a supercomputação para simulações científicas, como a previsão meteorológica. A formação distribuída é uma aplicação específica da HPC aplicada a algoritmos de otimização em redes redes neurais, muitas vezes utilizando bibliotecas de comunicação especializadas como NVIDIA NCCL para reduzir a latência entre GPUs.

Ferramentas e Ecossistema

Um ecossistema sólido de ferramentas e plataformas de código aberto apoia a implementação da formação distribuída:

  • Estruturas: PyTorch oferece suporte nativo através do seu pacote distribuído, enquanto o TensorFlow fornece estratégias como MirroredStrategy para um escalonamento perfeito.
  • Orquestração: A gestão de recursos num grande cluster envolve frequentemente a orquestração de contentores como o Kubernetes ou o Kubeflow, que automatizam a implantação e o dimensionamento de trabalhos de treinamento.
  • Infraestrutura de nuvem: Os principais fornecedores oferecem serviços geridos, tais como AWS SageMaker e Google Cloud TPUs que fornecem uma infraestrutura optimizada para cargas de trabalho distribuídas, eliminando o fardo da manutenção de hardware.
  • Escalabilidade universal: Bibliotecas como Horovod e Ray fornecem abordagens agnósticas de estrutura para escalonamento, permitindo que os desenvolvedores adaptem seu código para ambientes distribuídos com alterações mínimas.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora