Glossário

Formação distribuída

Acelere a formação em IA com formação distribuída! Saiba como reduzir o tempo de formação, dimensionar modelos e otimizar recursos para projectos complexos de ML.

A formação distribuída é uma técnica utilizada na aprendizagem automática (ML) para acelerar o processo de formação de modelos, dividindo a carga de trabalho computacional por vários processadores. Estes processadores, frequentemente Unidades de Processamento Gráfico (GPUs), podem estar localizados numa única máquina ou espalhados por várias máquinas numa rede. À medida que os conjuntos de dados aumentam e os modelos de aprendizagem profunda se tornam mais complexos, o treino num único processador pode demorar muito tempo. O treinamento distribuído resolve esse gargalo, tornando viável o desenvolvimento de modelos de IA de última geração em um período de tempo razoável.

Como funciona a formação distribuída?

As estratégias de formação distribuída dividem-se principalmente em duas categorias, que também podem ser utilizadas em combinação:

  • Paralelismo de dados: Esta é a abordagem mais comum. Nesta estratégia, todo o modelo é replicado em cada trabalhador (ou GPU). O conjunto de dados de treino principal é dividido em partes mais pequenas, e a cada trabalhador é atribuída uma parte. Cada trabalhador calcula de forma independente as passagens para a frente e para trás do seu subconjunto de dados para gerar gradientes. Estes gradientes são então agregados e calculados, normalmente através de um processo como All-Reduce, e o gradiente consolidado é utilizado para atualizar os parâmetros do modelo em todos os trabalhadores. Isso garante que cada cópia do modelo permaneça sincronizada.
  • Paralelismo de modelo: Esta estratégia é utilizada quando um modelo é demasiado grande para caber na memória de uma única GPU. Aqui, o próprio modelo é particionado, com diferentes camadas ou secções colocadas em diferentes trabalhadores. Os dados são passados entre os trabalhadores à medida que fluem pelas camadas da rede neural. Esta abordagem é mais complexa de implementar devido às elevadas exigências de comunicação entre os trabalhadores, mas é essencial para treinar modelos maciços como os modelos de fundação. Arquitecturas como a Mixture of Experts (MoE) dependem fortemente do paralelismo dos modelos.

Aplicações no mundo real

A formação distribuída é fundamental para muitos dos avanços modernos da IA.

  1. Treinar modelos de visão em grande escala: As empresas que desenvolvem modelos avançados de visão computacional, como o Ultralytics YOLO11, utilizam frequentemente conjuntos de dados maciços como o COCO ou o ImageNet. Usando o paralelismo de dados, elas podem distribuir o treinamento em um cluster de GPUs. Isto reduz drasticamente o tempo de formação de semanas para apenas horas ou dias, permitindo uma iteração mais rápida, uma afinação mais extensa dos hiperparâmetros e, em última análise, conduzindo a modelos com maior precisão.
  2. Desenvolvimento de grandes modelos linguísticos (LLMs): A criação de LLMs como os da série GPT seria impossível sem formação distribuída. Estes modelos contêm centenas de milhares de milhões de parâmetros e não podem ser treinados num único dispositivo. Os investigadores utilizam uma abordagem híbrida, combinando o paralelismo de modelos para dividir o modelo entre GPUs e o paralelismo de dados para processar grandes quantidades de dados de texto de forma eficiente. Este é um componente essencial de projectos como o Megatron-LM da NVIDIA.

Formação distribuída vs. conceitos relacionados

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

  • Aprendizagem federada: Embora ambos envolvam vários dispositivos, os seus objectivos e limitações são diferentes. A formação distribuída é normalmente realizada num ambiente controlado, como um centro de dados com ligações de alta velocidade para acelerar a formação de uma única entidade. Em contraste, a aprendizagem federada treina modelos em dispositivos descentralizados (por exemplo, smartphones) sem mover os dados privados para um servidor central. O foco principal da aprendizagem federada é a privacidade dos dados, enquanto que para a formação distribuída, é a velocidade e a escala.
  • IA de ponta: Estes termos referem-se a diferentes fases do ciclo de vida do ML. A formação distribuída faz parte da fase de formação. A IA periférica diz respeito à fase de implementação, em que um modelo optimizado executa a inferência diretamente num dispositivo local, frequentemente com recursos limitados, como uma câmara ou o computador de bordo de um automóvel. Um modelo treinado utilizando métodos distribuídos pode ser preparado para a implementação da IA periférica.

Ferramentas e implementação

A implementação da formação distribuída é facilitada por várias ferramentas e plataformas:

  • Estruturas de ML: Estruturas essenciais como PyTorch e TensorFlow oferecem suporte integrado para APIs de formação distribuída, tais como PyTorch DistributedDataParallel e O tf.distribute.Strategy.
  • Bibliotecas especializadas: Bibliotecas como a Horovod, desenvolvida pela Uber, oferecem uma abordagem agnóstica de estrutura para o aprendizado profundo distribuído.
  • Plataformas de nuvem: Os principais fornecedores de serviços em nuvem, como AWS, Google Cloud e Microsoft Azure, oferecem serviços de ML geridos e infra-estruturas optimizadas para formação distribuída em grande escala.
  • Plataformas de MLOps: Plataformas como o Ultralytics HUB simplificam o processo, fornecendo interfaces para gerenciar conjuntos de dados, selecionar modelos e iniciar trabalhos de treinamento, incluindo opções de treinamento em nuvem que lidam com a infraestrutura distribuída subjacente. Boas práticas de MLOps são fundamentais para gerenciar o treinamento distribuído de forma eficaz.

Junte-se à comunidade Ultralytics

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

Aderir agora
Ligação copiada para a área de transferência