O projeto e a prática de redes de IA de alto desempenho em grande escala

Requisitos de rede para treinamento de modelos grandes

No último semestre, os modelos grandes continuaram a ser um tema quente. Embora ainda haja muito debate sobre o desenvolvimento e aplicação de grandes modelos, as capacidades dos grandes modelos tornaram-se certamente a base para o desenvolvimento futuro da inteligência artificial. Em comparação com os modelos pequenos anteriores, os modelos grandes têm uma demanda mais forte por treinamento paralelo distribuído em larga escala.

Isto se deve a dois motivos principais: Os próprios modelos são muito grandes. Devido às limitações atuais da memória da GPU, temos que dividir um modelo em várias GPUs para armazenamento. Por exemplo, o grande modelo do FiberMall tem 260 bilhões de parâmetros, mas na realidade, uma única GPU A800 com 80 GB de memória pode armazenar apenas cerca de 1 a 2 bilhões de parâmetros, incluindo os estados computacionais durante o treinamento. Armazenar apenas um modelo de 260 bilhões de parâmetros exigiria centenas de GPUs, o que já é uma escala relativamente grande.

Treinar mais parâmetros requer mais poder computacional, por isso devemos introduzir GPUs de maior escala para aceleração, o que significa que o número de GPUs necessárias também aumentará em uma ordem de magnitude.

No FiberMall, nomeamos a escala de treinamento com base no número de GPUs usadas para uma tarefa. Por exemplo, chamamos de pequena escala se tiver menos de 100 cartões, de média escala se tiver entre 100 e 1,000 cartões, de grande escala se tiver mais de 1,000 cartões e de supergrande escala se tiver mais de 10,000 cartões. De acordo com esta convenção de nomenclatura, podemos dizer que o treinamento paralelo em larga escala de mais de 1,000 cartões é a base para o sucesso de grandes modelos.

treinamento paralelo

Existem várias estratégias comuns para treinamento paralelo distribuído de modelos de aprendizado de máquina. Descreveremos três das abordagens mais amplamente utilizadas.

A estratégia mais amplamente adotada é o paralelismo de dados. No paralelismo de dados, cada GPU mantém uma cópia idêntica do modelo, e o conjunto de dados é particionado e distribuído pelas GPUs para treinamento. Após cada iteração de treinamento, os gradientes calculados em cada GPU são sincronizados globalmente e os parâmetros do modelo para a próxima iteração são atualizados de acordo em todas as GPUs. No paralelismo de dados, uma operação Allreduce é necessária para agregar os gradientes nas GPUs, e o volume de comunicação é dimensionado com o tamanho dos parâmetros do modelo, o que pode ser substancial para modelos em grande escala com bilhões de parâmetros.

A segunda estratégia paralela é o paralelismo de pipeline. Os modelos de redes neurais são normalmente compostos de múltiplas camadas de neurônios, incluindo os modelos profundos do Transformer. No paralelismo de pipeline, o modelo é particionado por camada, com diferentes camadas atribuídas a diferentes GPUs. Essa abordagem requer transferências de dados ponto a ponto entre as GPUs para passar ativações durante a passagem para frente e gradientes durante a passagem para trás. Embora a comunicação ocorra diversas vezes por iteração, o volume de dados transferidos geralmente não é grande e os requisitos de desempenho da rede são relativamente modestos.

A terceira estratégia paralela é o paralelismo de tensores, que envolve a utilização conjunta de múltiplas GPUs para realizar um único cálculo de tensor, como a multiplicação de matrizes. Esta abordagem requer uma operação Allreduce para sincronizar os resultados do cálculo do tensor parcial nas GPUs. O tamanho dos tensores que estão sendo calculados depende da arquitetura do modelo e do tamanho do lote usado para treinamento, e esses cálculos de tensores ocorrem frequentemente durante cada iteração de treinamento. Como resultado, o paralelismo tensorial apresenta a maior demanda.

três paralelos

Considerando as características das três estratégias paralelas, uma abordagem híbrida é comumente adotada no treinamento de modelos de larga escala.

Dentro de uma única máquina com múltiplas GPUs, o paralelismo de tensor é empregado para aproveitar totalmente as conexões NVLink de alta largura de banda entre as GPUs.

Como uma única máquina com 8 GPUs pode não ser suficiente para acomodar todo o modelo grande, o paralelismo de pipeline é usado em várias máquinas para construir uma unidade mínima de treinamento com pipelines paralelos.

Para acelerar ainda mais o treinamento do modelo, o paralelismo de dados é então aplicado, onde cada grupo de dados paralelos (DP) consiste em uma combinação de paralelismo de tensor e paralelismo de pipeline.

As operações Allreduce no paralelismo de dados ocorrem dentro de cada grupo DP, onde os gradientes são sincronizados entre as GPUs do mesmo grupo DP. Por exemplo, o diagrama mostra uma configuração com 8 GPUs em paralelismo de tensor, 4 GPUs em paralelismo de pipeline e 3 grupos DP. Neste caso, existem 32 grupos Allreduce, cada um com 3 GPUs realizando sincronização gradiente.

O principal requisito de rede para treinar modelos grandes é a operação Allreduce no estágio de paralelismo de dados, onde cada GPU precisa participar do Allreduce em volumes de dados na faixa de 10 GB.

paralelismo híbrido

A necessidade de treinamento de modelos em larga escala nos levou a propor três objetivos principais para redes de IA de alto desempenho: escala ultralarga, largura de banda ultraalta e estabilidade ultralonga.

Escala Ultra Grande

O tamanho do modelo determina diretamente a velocidade de treinamento do modelo. Conforme mostrado na figura, para um modelo de 175 bilhões de parâmetros, seriam necessários mais de 100 dias para treinar usando 2,000 GPUs. No entanto, ao usar 8,000 GPUs, o tempo de treinamento pode ser reduzido para cerca de 30 dias. Isto é crucial para a rápida iteração de modelos de grande escala hoje.

Largura de banda ultra-alta

A largura de banda AllReduce determina diretamente a eficiência geral do treinamento distribuído em larga escala. Como mostra a figura, quando a largura de banda AllReduce média de uma única GPU é de 5 GB/s, a taxa de aceleração geral no treinamento distribuído em larga escala é de apenas 70%. Para atingir uma taxa de aceleração de 90%, a largura de banda AllReduce de GPU única precisa atingir 20 GB/s, equivalente a uma única GPU utilizando totalmente uma placa de rede 400G.

Estabilidade ultralonga

Dado que o treinamento do modelo pode durar várias semanas, a estabilidade a longo prazo é de extrema importância. Usando a disponibilidade da GPU como exemplo, se a disponibilidade mensal de uma única GPU for 99.9%, a probabilidade de ocorrer falha e interrupção durante um mês de treinamento com 1,000 GPUs é de 60%. Mesmo que a disponibilidade da GPU melhore para 99.99%, a probabilidade de interrupção com 8,000 GPUs ainda é de cerca de 50%. Para minimizar as interrupções de treinamento e reduzir a necessidade de verificações frequentes, a rede deve garantir uma disponibilidade ainda maior.

requisito de rede

Design de rede de alto desempenho AIPod

Para atender a esses objetivos, projetamos a rede AIPod de alto desempenho para infraestrutura de IA.

Conforme mostrado no diagrama, a rede AIPod é uma topologia totalmente conectada com aproximadamente 400 switches, 3,000 placas de rede, 10,000 cabos e 20,000 módulos ópticos. O comprimento total do cabo é equivalente à distância de Pequim a Qingdao.

AIPod de alto desempenho

Projeto Racional da Rede AIPod

Após a discussão anterior sobre o entendimento conceitual, vamos agora nos aprofundar no projeto racional da rede AIPod.

Para suportar a escala massiva da rede AIPod, foi escolhida uma arquitetura de rede CLOS sem bloqueio de 3 camadas. A topologia da rede CLOS é semelhante ao diagrama mostrado anteriormente, onde:

Os servidores são conectados aos switches da camada Leaf (LF).

Os switches Leaf se interconectam com os switches Spine (SP).

Os switches Spine são ainda conectados à camada SuperSpine (SSP).

Conforme mencionado anteriormente, durante o treinamento de modelos grandes, a comunicação primária ocorre entre GPUs do mesmo servidor, ou seja, GPU 1 para GPU 1, GPU 2 para GPU 2 e assim por diante. A comunicação entre GPUs é menos frequente.

Para acomodar este padrão de comunicação, a rede AIPod adota uma arquitetura de 8 canais. Cada servidor possui 8 portas de rede, cada uma conectada a um switch Leaf diferente. Esses 8 switches Leaf formam um grupo de agregação, suportando até 512 GPUs.

Além disso, os 8 switches Leaf estão conectados a canais diferentes e, dentro de cada canal, os switches Leaf e Spine estão em uma topologia de malha completa. Esse design permite que o cluster seja dimensionado para suportar mais de 16K GPUs.

Embora a maior parte da comunicação ocorra dentro do mesmo canal, ainda há necessidade de comunicação entre canais. Para resolver isso, a rede AIPod usa a camada SuperSpine para interconectar os switches Spine de diferentes canais, fornecendo um caminho de comunicação contínuo em toda a rede.

A rede AIPod emprega um design sem bloqueio ou com taxa de excesso de assinatura de 1:1, onde a largura de banda de uplink e downlink dos switches são iguais, garantindo largura de banda intra-cluster suficiente.

Para suportar a maior escala possível, a rede AIPod utiliza os mais recentes chips de switch de alta capacidade, como o switch 51.2T, que evoluiu das gerações anteriores de 12.8T e 25.6T.

Este design racional da rede AIPod, com sua arquitetura CLOS multicamadas, comunicação baseada em canal e componentes de comutação de alta capacidade, permite o suporte de cargas de trabalho de treinamento de IA em grande escala.

Não convergente de 3 níveis

Na discussão anterior, cobrimos a construção de redes AIPod em grande escala. Agora, vamos voltar nossa atenção para os desafios relacionados à largura de banda da rede.

A infraestrutura de nuvem inteligente do FiberMall escolheu uma especificação máxima de acesso ao servidor de 8x400G, e a rede utiliza uma arquitetura CLOS sem bloqueio, com suporte a RDMA e GDR. Teoricamente, isso deveria fornecer capacidades de largura de banda muito altas. Entretanto, à medida que a escala da rede aumenta, vários problemas podem surgir, sendo um dos mais significativos os conflitos de seleção de caminho entre switches.

Tecnicamente, quase todas as transmissões de rede têm um problema inerente: para evitar a reordenação de pacotes dentro de uma conexão, o que pode desencadear a retransmissão e a degradação do desempenho na extremidade receptora, os switches precisam encaminhar pacotes da mesma conexão por um único caminho. A seleção deste caminho depende do algoritmo hash utilizado.

Sabe-se que algoritmos hash apresentam colisões, conforme ilustrado no diagrama. Se duas conexões de switch cruzado escolherem simultaneamente o mesmo link do lado esquerdo, ele ficará congestionado, enquanto o link do lado direito permanecerá subutilizado, reduzindo efetivamente pela metade a largura de banda de ambas as conexões. Este problema é bastante comum em ambientes de treinamento em larga escala.

Para mitigar o impacto desse problema, normalmente configuramos a biblioteca de comunicação NCCL para usar múltiplas conexões entre GPUs, conforme mostrado no diagrama à direita. Quanto mais conexões, menor a probabilidade de desequilíbrio grave. Essa abordagem aumenta a entropia de roteamento na rede e reduz o impacto dos conflitos de seleção de caminho baseados em hash, mas não resolve completamente o problema.

Alta largura de banda

Podemos observar que esses problemas ocorrem apenas em cenários de comunicação entre switches. Portanto, para reduzir ainda mais o impacto, devemos nos esforçar para manter a comunicação dentro de um único switch sempre que possível. A comunicação de grupo intra-agregação entre GPUs do mesmo número não cruza switches e, portanto, evita o conflito de seleção de caminho baseado em hash. É por isso que pretendemos maximizar o tamanho de cada grupo de agregação.

Para reduzir a comunicação entre switches, a rede AIPod fornece uma abordagem com reconhecimento de arquitetura de rede. Isso permite que os sistemas de nível superior estejam cientes da posição atual da GPU na arquitetura da rede, do seu grupo de agregação e do seu GroupID.

O AIPod pode expor essas informações ao sistema de agendamento de tarefas, permitindo-lhe agendar tarefas dentro do mesmo grupo de agregação tanto quanto possível, garantindo que a comunicação permaneça dentro de um único grupo de agregação.

No entanto, tarefas de modelo grandes são muitas vezes demasiado grandes para serem confinadas num único grupo de agregação. Nesses casos, precisamos aproveitar as informações do grupo de agregação para realizar o processamento ordenado dos recursos globais da GPU, permitindo que a biblioteca de comunicação construa topologias Allreduce mais eficientes que minimizem o tráfego entre switches. O diagrama no canto inferior direito ilustra esse conceito, onde duas ordens diferentes de construção de anel para uma operação Allreduce de 4 GPU podem resultar em utilizações de largura de banda de switch cruzado significativamente diferentes. A abordagem do lado esquerdo é mais eficiente, enquanto a do lado direito é menos eficiente. Este é o benefício dos recursos de reconhecimento de arquitetura de rede do AIPod.

NCCL

A abordagem consciente da arquitetura de rede pode reduzir significativamente a quantidade de comunicação entre switches, mitigando o impacto de conflitos de seleção de caminho baseados em hash. No entanto, o problema não está completamente resolvido, pois ainda podem ocorrer conflitos.

Para resolver totalmente esse problema, precisamos aproveitar os recursos de encaminhamento de múltiplos caminhos da rede, que permitem a recepção de pacotes fora de ordem, quebrando a suposição de que pacotes de uma única conexão só podem ser encaminhados por um único caminho. As redes Infiniband introduziram esse recurso de roteamento adaptativo e, no AIPod, implementamos uma funcionalidade semelhante usando a tecnologia de balanceamento de carga dinâmico (DLB) sobre os switches personalizados do FiberMall.

Nesta abordagem, conforme ilustrado no diagrama, a placa de interface de rede primeiro marca os pacotes para permitir o processamento fora de ordem. Os switches calculam então o caminho ideal para cada pacote com base em fatores como profundidade da fila e utilização do link. Isto introduz o desafio da reordenação de pacotes, que é abordado pelo receptor através do processamento de reordenação de pacotes.

Esta combinação de mecanismos pode resolver efetivamente o problema de conflito de seleção de caminho baseado em hash na comunicação entre switches. Acreditamos que o reforço destas capacidades técnicas subjacentes é a solução definitiva para a formação em larga escala.

Garantindo estabilidade em redes AIPod

Manter tarefas de longa duração sem interrupção é crucial para o treinamento de modelos grandes, mas falhas de hardware são inevitáveis. Para um cluster que pode acomodar 16,000 GPUs, pode haver quase 100,000 módulos ópticos. Assumindo um tempo médio entre falhas (MTBF) de 10 milhões de horas por módulo, com uma base tão grande, uma falha pode ocorrer aproximadamente a cada 4 dias em média, à medida que eventos de baixa probabilidade se tornam eventos de alta probabilidade em escala.

Para resolver isso, a rede AIPod foi projetada para permitir a recuperação rápida de falhas de hardware. Por exemplo, suponha que um link na rede sofra uma falha, causando perda de pacotes. Nesse caso, o AIPod deve garantir que a duração desta perda de pacotes seja menor que o timeout típico definido pela biblioteca de comunicação, evitando a interrupção da tarefa.

Para perda de pacotes de uplink, a tecnologia de balanceamento de carga dinâmico do AIPod pode fornecer recuperação em escala de milissegundos, selecionando um link alternativo disponível. Para perda de pacotes de downlink, o AIPod aciona atualizações e convergência de roteamento de rede, otimizando a estratégia de atualização de roteamento e a eficiência de distribuição para manter a duração da perda de pacotes de downlink dentro do segundo nível.

recuperar

Além disso, a rede AIPod inclui um mecanismo de detecção de caixa preta para identificar proativamente problemas ocultos, como problemas de inversão de bits causados ​​por defeitos no chip do switch, que podem levar à corrupção e perda de pacotes sem detecção explícita de falhas. Esse mecanismo garante que cada link seja monitorado continuamente e que quaisquer problemas de conectividade acionem localização e isolamento automáticos, além de alertas para intervenção rápida da equipe de operações.

Além das falhas relacionadas à conectividade, o design de rede sem perdas do AIPod, habilitado pela tecnologia PFC, também pode enfrentar anomalias, como impasses de PFC ou tempestades persistentes de PFC devido a falhas de chip. O AIPod aborda esses desafios por meio de uma plataforma de telemetria de desempenho, construída nos switches personalizados do FiberMall, que fornece visibilidade sobre qualquer perda de pacotes, PFC ou anomalias de buffer, permitindo rápida detecção e resolução antes de impactar a estabilidade do treinamento de grandes modelos.

Alcançando latência ultrabaixa em redes AIPod

Embora a baixa latência não seja uma consideração essencial para o treinamento de modelos grandes, onde a largura de banda é a principal preocupação, a rede AIPod também foi projetada para oferecer suporte a cargas de trabalho de IA sensíveis à latência.

Os principais fatores que podem ser otimizados para baixa latência são o atraso da fibra e o atraso do enfileiramento do switch. A rede AIPod otimiza o layout físico do cluster para minimizar a distância entre servidores, switches e switches, permitindo o uso de conexões de fibra mais curtas para reduzir o atraso de propagação da fibra.

Além disso, a rede AIPod otimiza os parâmetros de controle de congestionamento para minimizar a ocupação do buffer do switch, o que impacta diretamente no atraso de fila. Com essas otimizações, o AIPod pode atingir latência de rede em nível de microssegundos, o que é insignificante no contexto do desempenho de treinamento de grandes modelos de ponta a ponta.

Aproveitando o armazenamento de alto desempenho no AIPod

Além da rede de treinamento de alto desempenho, o AIPod também aproveita os recursos de armazenamento de alto desempenho do FiberMall, como o sistema de arquivos paralelos (PFS) elástico baseado em RDMA que pode fornecer até 200 Gbps por cliente e a carga de hardware de alto desempenho balanceamento de instâncias para acesso ao armazenamento de arquivos em nuvem (CFS) ou armazenamento de objetos (BOS), fornecendo mais de 10 Gbps de largura de banda estável por cliente.

Essas tecnologias de armazenamento de alto desempenho contribuem significativamente para a eficiência computacional geral do treinamento de modelos grandes.

Treinamento de modelo grande AIPod na prática

FiberMall demonstrou a aplicação prática da rede AIPod no treinamento de modelos em larga escala, apresentando operação estável com largura de banda de comunicação por GPU superior a 100 Gbps em clusters RoCE e Infiniband.

Para apoiar esses esforços de treinamento em larga escala, a FiberMall desenvolveu ferramentas especializadas, incluindo uma ferramenta de visualização de tarefas de alta precisão que pode agregar e analisar os dados de tráfego de rede de milhares de instâncias paralelas, bem como uma ferramenta de diagnóstico de falhas que pode identificar rapidamente o causa raiz de várias anomalias, como falhas de GPU ou nós lentos, que podem prejudicar o desempenho geral do treinamento.

A rede AIPod de alto desempenho, ferramentas de suporte e recursos de armazenamento permitem que os clientes da FiberMall treinem grandes modelos de maneira eficiente e econômica, mantendo uma posição de liderança na era dos modelos de IA em grande escala.

Deixe um comentário

Voltar ao Topo