Glossário

Formação distribuída

Acelera o treino de IA com treino distribuído! Aprende a reduzir o tempo de formação, a dimensionar modelos e a otimizar recursos para projectos complexos de ML.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

O treinamento distribuído é uma técnica usada no aprendizado de máquina para acelerar o processo de treinamento de modelos, especialmente os grandes e complexos, como os usados no aprendizado profundo. À medida que os conjuntos de dados aumentam e os modelos se tornam mais sofisticados, o treinamento em um único processadorCPU ou GPU) pode tornar-se proibitivamente lento. O treinamento distribuído resolve esse desafio dividindo a carga de trabalho computacional em várias unidades de processamento, que podem estar localizadas em uma única máquina ou espalhadas por várias máquinas em um ambiente de rede ou de computação em nuvem.

Como funciona a formação distribuída

A ideia central da formação distribuída é o paralelismo. Em vez de processar dados e calcular actualizações de modelos sequencialmente num processador, a tarefa é dividida e executada simultaneamente em vários processadores (frequentemente designados por "trabalhadores"). Existem duas estratégias principais:

  • Paralelismo de dados: A abordagem mais comum. O conjunto de dados é dividido em partes menores, e cada trabalhador treina em sua própria parte usando uma cópia do modelo. Os resultados (gradientes) são então combinados para atualizar o modelo central. Isso funciona bem quando o modelo se encaixa em um único trabalhador, mas o conjunto de dados é muito grande. Estruturas como PyTorch oferecem dados distribuídos em paralelo.
  • Paralelismo de modelos: Usado quando o modelo em si é grande demais para caber na memória de um único trabalhador. Diferentes partes do modelo são colocadas em diferentes workers, e os dados fluem entre eles durante o treinamento. A implementação é mais complexa do que o paralelismo de dados. Saiba mais sobre as abordagens doTensorFlow para o paralelismo de modelos.

Aplicações reais da formação distribuída

A formação distribuída é essencial para resolver problemas de IA em grande escala em vários domínios:

  • Treina grandes modelos linguísticos (LLMs): Modelos como o GPT-4 têm milhares de milhões de parâmetros e são treinados em conjuntos de dados de texto maciços. O treinamento distribuído em milhares de GPUs torna isso viável. Estes modelos alimentam aplicações que vão desde a tradução automática a chatbots avançados.
  • Modelos avançados de visão computacional: O treino de modelos de última geração para tarefas como a segmentação de imagens de alta resolução, a análise detalhada de imagens médicas ou os sistemas de perceção para veículos autónomos exige frequentemente um treino distribuído para lidar com arquitecturas complexas e grandes conjuntos de dados visuais como o ImageNet.

Exemplos de casos de utilização

  • Treinar modelosYOLO Ultralytics : O treinamento distribuído pode reduzir significativamente o tempo necessário para treinar Ultralytics YOLO do Ultralytics, especialmente em grandes conjuntos de dados personalizados para deteção de objectos. Ao utilizar várias GPUs, os utilizadores conseguem uma convergência mais rápida e uma precisão potencialmente melhor do modelo.
  • Treinamento de modelos com base na nuvem: Plataformas como o Ultralytics HUB fornecem uma maneira acessível de aproveitar os recursos de treinamento distribuídos na nuvem. Isto permite que os utilizadores sem hardware local potente treinem grandes modelos de forma eficiente utilizando infra-estruturas geridas de fornecedores como a AWS, Google Cloud ou Azure.

Formação distribuída vs. outros métodos de formação

É útil distinguir a formação distribuída de conceitos relacionados:

  • Formação centralizada: A abordagem tradicional em que todo o processo de formação ocorre numa única máquina ou dispositivo. É mais simples, mas muitas vezes demasiado lento para tarefas modernas de grande escala.
  • Aprendizagem federada: Uma abordagem distribuída diferente focada principalmente na privacidade dos dados. Na Aprendizagem Federada, os modelos são treinados localmente em dispositivos descentralizados (como telemóveis) utilizando dados locais. Apenas as actualizações dos modelos, e não os dados em bruto, são enviadas para um servidor central para agregação. Isto contrasta com a formação distribuída típica, em que os dados são frequentemente localizados centralmente ou distribuídos entre trabalhadores sob controlo central.

A formação distribuída é uma técnica fundamental para alargar os limites da escala e da capacidade dos modelos de IA. Ferramentas e bibliotecas dentro de frameworks como PyTorch, TensorFlowe bibliotecas especializadas como Horovod simplificam a sua implementação, tornando o treino de modelos em grande escala mais acessível.

Lê tudo