A nova geração de soluções de rede AIGC: tecnologia DDC para redes

O ano de 2023 testemunhou o pleno crescimento da tecnologia de inteligência artificial de IA, representada por grandes modelos AIGC, como ChatGPT, GPT-4, Ernie Bot, etc. demonstraram de forma impressionante suas excelentes capacidades de produção de conteúdo, causando um choque profundo nas pessoas. Como profissional de TI, a tecnologia de comunicação por trás dos grandes modelos AIGC também deve despertar uma reflexão profunda. Sem uma boa rede, não há como falar em treinamento de grandes modelos. Para construir um cluster de modelo de treinamento em grande escala, não são necessários apenas componentes básicos, como servidores GPU, placas de rede, etc., mas também o problema de construção de rede precisa ser resolvido com urgência. Que tipo de rede poderosa está apoiando a operação do AIGC? Como a chegada total da onda de IA trará mudanças revolucionárias à rede tradicional?

AIGC

A razão pela qual os grandes modelos AIGC mencionados anteriormente são tão poderosos não é apenas porque eles têm uma enorme quantidade de dados alimentados por trás deles, mas também porque os algoritmos estão em constante evolução e atualização. Mais importante ainda, a escala do poder computacional humano desenvolveu-se até certo ponto. A poderosa infraestrutura de poder computacional pode suportar totalmente as necessidades computacionais do AIGC. No treinamento de modelos grandes, como o tamanho do modelo geralmente excede a memória e o poder de computação de uma única GPU, são necessárias várias GPUs para compartilhar a carga. No processo de treinamento de modelos grandes, existem três formas de compartilhamento de carga da GPU: paralelismo de tensor, paralelismo de pipeline e paralelismo de dados.

Paralelismo de dados:

O paralelismo de dados é uma técnica de paralelização simples e direta, onde cópias completas do modelo são replicadas em vários processadores (como GPUs). Cada processador ou GPU obtém uma cópia de todo o modelo e executa de forma independente a propagação direta e reversa em diferentes subconjuntos de dados. Após cada etapa de treinamento, as atualizações de peso do modelo de todos os processadores precisam ser mescladas ou sincronizadas, o que geralmente é feito por alguma forma de operação de comunicação coletiva (como redução total). O paralelismo de dados permite que o modelo seja treinado em conjuntos de dados maiores, pois os dados são divididos em vários pequenos lotes, cada um processado em um processador diferente.

Imagine uma grande biblioteca onde você precisa categorizar todos os livros. O paralelismo de dados é como contratar vários bibliotecários, cada um responsável por categorizar uma parte dos livros. No caso de treinamento de modelo, cada GPU obtém uma cópia de todo o modelo, mas processa apenas uma parte de todo o conjunto de dados. Depois que todas as GPUs concluem suas respectivas tarefas, elas trocam informações para atualizar os pesos do modelo de forma síncrona.

Paralelismo tensorial:

O paralelismo tensorial geralmente é usado quando o modelo é muito grande para caber na memória de um único processador. Nesta estratégia de paralelização, diferentes partes do modelo (como diferentes tensores ou grupos de parâmetros nas camadas da rede neural) são atribuídas a diferentes processadores. Isso significa que cada processador é responsável apenas por computar uma parte do modelo. Para completar a propagação direta e reversa de todo o modelo, os processadores precisam trocar frequentemente seus resultados intermediários, o que pode levar a uma alta sobrecarga de comunicação. O paralelismo tensor requer conexões de alta velocidade entre processadores, para minimizar a latência dessas trocas.

Suponha que o paralelismo de dados envolva vários bibliotecários, cada um lidando com uma parte dos livros. Nesse caso, o paralelismo tensorial é como se cada bibliotecário fosse responsável por uma parte das etapas do trabalho de categorização. No treinamento do modelo, cada GPU é responsável por uma parte da computação do modelo, por exemplo, uma GPU é responsável por calcular a primeira metade das camadas do modelo e outra GPU é responsável pela segunda metade. Desta forma, cada camada do modelo pode ser computada em múltiplas GPUs.

Paralelismo de pipeline:

O paralelismo de pipeline é uma estratégia de paralelização que atribui diferentes camadas ou partes do modelo a diferentes processadores e executa a computação em pipeline. No paralelismo de pipeline, os dados de entrada são divididos em vários microlotes, cada um dos quais passa por cada camada do modelo sequencialmente. Quando um microlote termina o cálculo da primeira camada, ele é imediatamente passado para a próxima camada, enquanto a primeira camada inicia o processamento do próximo microlote. Esta forma pode reduzir o tempo ocioso dos processadores, mas requer um gerenciamento cuidadoso do pipeline, para evitar a criação de paralisações muito grandes, onde alguns processadores podem pausar seu trabalho por esperarem por resultados de computação dependentes.

O paralelismo de pipeline é como trabalhadores em uma linha de montagem de uma fábrica, cada um executando uma tarefa específica e depois passando o produto semiacabado para o próximo trabalhador. No treinamento do modelo, o modelo é dividido em várias partes, cada uma delas executada sequencialmente em diferentes GPUs. Quando uma GPU termina sua parte do cálculo, ela passa o resultado intermediário para a próxima GPU para continuar o cálculo.

Na implantação prática, o projeto da rede deve levar em consideração os requisitos de largura de banda e latência dessas estratégias paralelas para garantir a eficiência e eficácia do treinamento do modelo. Às vezes, essas três estratégias paralelas são combinadas para otimizar ainda mais o processo de treinamento. Por exemplo, um modelo grande pode usar paralelismo de dados em múltiplas GPUs para processar diferentes subconjuntos de dados, enquanto usa paralelismo de tensor dentro de cada GPU para lidar com diferentes partes do modelo.

AIGC inteligente

Vejamos a demanda por poder de computação de IA a partir do treinamento de grandes modelos. Com a atualização contínua de grandes modelos, a demanda por poder computacional para treinamento de modelos também aumenta, dobrando a cada três meses. O modelo GPT-3 (175 bilhões de parâmetros, corpus de treinamento de 45 TB, consumindo 3640PFlops/s-dias de poder de computação), ChatGPT3, usa 128 servidores A100, um total de 1024 placas A100 para treinamento, portanto, um único nó de servidor requer 4 redes 100G canais; enquanto ChatGPT4, ChatGPT5 e outros modelos grandes, os requisitos de rede serão maiores.

O AIGC desenvolveu-se até ao presente e os parâmetros do modelo para formação aumentaram de 100 mil milhões para 10 biliões. Para completar um treinamento em tão grande escala, o número de GPUs que suportam a camada subjacente também atingiu a escala de 10,000 placas.

Então a questão é: qual é o maior fator que afeta a utilização da GPU?

A resposta é rede.

Como um cluster de computação com dezenas de milhares de GPUs, a interação dos dados com o cluster de armazenamento requer uma enorme largura de banda. Além disso, as GPUs não são independentes na execução de cálculos de treinamento, mas utilizam paralelismo misto. Há muita troca de dados entre GPUs, o que também requer uma enorme largura de banda.

Se a rede não for potente, a transmissão de dados será lenta e a GPU terá que esperar pelos dados, diminuindo a utilização. A diminuição da utilização aumentará o tempo de treinamento, o custo e a experiência do usuário piorará.

A indústria criou um modelo para calcular a relação entre a largura de banda da rede, a latência de comunicação e a utilização da GPU, conforme mostrado na figura a seguir:

Utilização de GPU

Taxa de transferência de largura de banda e utilização de GPU

Latência dinâmica e utilização de GPU

Você pode ver que quanto mais forte for o rendimento da rede, maior será a utilização da GPU; quanto maior a latência dinâmica da comunicação, menor será a utilização da GPU.

Que tipo de rede pode suportar o funcionamento do AIGC?

Para lidar com os altos requisitos da computação em cluster de IA na rede, a indústria propôs várias soluções. Nas estratégias tradicionais, comumente vemos três tecnologias: Infiniband, RDMA e frame switches.

Rede Infiniband

Para profissionais familiarizados com comunicação de dados, banda infinita a rede não é desconhecida. É aclamado como a melhor maneira de construir uma rede de alto desempenho, garantindo largura de banda extremamente alta, sem congestionamento e baixa latência. A rede usada pelo ChatGPT e GPT-4 é a rede Infiniband. Contudo, a desvantagem desta tecnologia é que ela é cara e custa várias vezes mais do que a rede Ethernet tradicional. Além disso, esta tecnologia é relativamente fechada e existe apenas um fornecedor maduro na indústria, o que limita a escolha do usuário.

RDMA em Infinibanda

Rede RDMAing 

RDMA, que significa Remote Direct Memory Access, é um novo tipo de mecanismo de comunicação. No esquema RDMA, os dados podem se comunicar diretamente com a placa de rede, contornando a CPU e o complexo sistema operacional, o que não apenas melhora muito o rendimento, mas também garante menor latência.

Anteriormente, o RDMA era transportado principalmente na rede InfiniBand. Agora, foi gradualmente portado para Ethernet. O atual esquema de rede principal é baseado no protocolo RoCE v2 para construir uma rede que suporte RDM. No entanto, as tecnologias PFC e ECN neste esquema, embora sejam geradas para evitar o congestionamento do link, podem fazer com que o remetente pause ou diminua a velocidade quando acionadas com frequência, afetando assim a largura de banda da comunicação.

Rede RDMA

Troca de quadro

Algumas empresas de Internet esperavam usar switches de quadros para atender às necessidades de redes de alto desempenho. No entanto, este esquema tem desafios como escalabilidade insuficiente, alto consumo de energia do dispositivo e grandes domínios de falha, por isso é adequado apenas para implantação de clusters de computação de IA em pequena escala.

Nova geração de rede AIGC: tecnologia DDC

Dadas as várias limitações dos esquemas tradicionais, surgiu uma nova solução – DDC (Distributed Disgregated Chassis). O DDC “desmonta” o switch de quadro tradicional, aprimora sua escalabilidade e projeta com flexibilidade a escala da rede de acordo com o tamanho do cluster de IA. Através desta forma inovadora, o DDC supera as limitações dos esquemas tradicionais e fornece uma arquitetura de rede mais eficiente e flexível para a computação de IA.

Troca de quadro

Do ponto de vista da escala e da largura de banda, o DDC atendeu plenamente aos requisitos de rede para treinamento de modelos de IA em larga escala. No entanto, a operação da rede não envolve apenas esses dois aspectos, ela também precisa ser otimizada em termos de latência, balanceamento de carga, eficiência de gerenciamento e assim por diante. Para tanto, a DDC adota as seguintes estratégias técnicas:

  • Mecanismo de encaminhamento baseado em VOQ+Cell, combatendo eficazmente a perda de pacotes

Quando a rede encontra tráfego intermitente, o processamento do receptor pode ser lento, resultando em congestionamento e perda de pacotes. O mecanismo de encaminhamento baseado em VOQ+Cell adotado pelo DDC pode resolver bem esse problema. O processo específico é o seguinte:

O remetente primeiro classificará e armazenará os pacotes em VOQs após recebê-los. Antes de enviar os pacotes, o NCP enviará primeiro uma mensagem de Crédito para confirmar se o receptor possui espaço de buffer suficiente. Somente quando o receptor confirmar que possui capacidade de processamento, os pacotes serão divididos em células e balanceados dinamicamente em carga para os nós do Fabric. Se o receptor estiver temporariamente impossibilitado de processar, os pacotes serão armazenados temporariamente nos VOQs do remetente e não serão encaminhados diretamente. Esse mecanismo faz uso total do cache, o que pode reduzir bastante ou até mesmo evitar a perda de pacotes, melhorando assim a estabilidade geral da comunicação, reduzindo a latência e aumentando a utilização da largura de banda e a eficiência do rendimento dos negócios.

Mecanismo de encaminhamento baseado em VOQ + Cell
  • Implantação de PFC de salto único, evitando completamente impasses

A tecnologia PFC é usada para controle de tráfego em redes RDMA sem perdas, que podem criar vários canais virtuais para links Ethernet e definir prioridades para cada canal. No entanto, o PFC também apresenta problemas de impasse.

Na rede DDC, como todos os NCPs e NCFs são considerados dispositivos inteiros, não há comutação multinível, evitando assim completamente o problema de impasse do PFC.

Diagrama esquemático do mecanismo de funcionamento do PFC

Diagrama esquemático do mecanismo de funcionamento do PFC

40 200G
  • SO distribuído, aumentando a confiabilidade

Na arquitetura DDC, a função de gerenciamento é controlada centralmente pelo NCC, mas isso pode representar um único ponto de risco de falha. Para evitar esse problema, o DDC usa um sistema operacional distribuído, que permite que cada NCP e NCF gerenciem de forma independente, e possui um plano de controle e um plano de gerenciamento independentes. Isto não só melhora muito a confiabilidade do sistema, mas também facilita sua implantação.

Conclusão: O DDC atende aos requisitos de rede para treinamento de modelos de IA em larga escala por meio de suas estratégias técnicas exclusivas e também otimiza muitos detalhes, garantindo que a rede possa funcionar de forma estável e eficiente sob várias condições complexas.

Deixe um comentário

Voltar ao Topo