notícias

Treinamento de GPU Llama 3.1 trava como um louco. Existe um grande fabricante usando um servidor de CPU para executar um modelo grande com centenas de bilhões de parâmetros?

2024-08-01

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Novo Relatório de Sabedoria

Editor: Departamento Editorial

[Introdução à Nova Sabedoria]É hora de usar um servidor universal de CPU para executar modelos grandes com centenas de bilhões de parâmetros!

Musk construiu o maior supercomputador do mundo, composto por 100.000 H100 conectados em 19 dias, e se dedicou totalmente ao treinamento do Grok 3.

Ao mesmo tempo, a mídia estrangeira deu a notícia de que o próximo cluster de supercomputação construído em conjunto pela OpenAI e pela Microsoft será composto por 100.000 GB200.

Nesta competição de IA, as principais empresas tecnológicas estão a fazer todos os esforços para aumentar o investimento em GPUs, o que parece implicar que ter GPUs cada vez mais poderosas as tornará invencíveis.

No entanto, esta busca fanática por GPUs de última geração não é uma solução perfeita em todas as situações.


O pai de Pytorch disse que há muitos detalhes interessantes da infraestrutura ocultos no relatório técnico, incluindo como paralelizar, como tornar o sistema mais confiável, etc.

Tomando a estabilidade como exemplo, durante os 54 dias de treinamento do Llama 3.1, o cluster H100 de 16.000 blocos do Meta encontrou um total de 419 interrupções inesperadas, o que equivale a uma média de uma a cada 3 horas.

Entre estes, 148 vezes (30,1%) foram causados ​​por diversas falhas de GPU.

Em contrapartida, ocorreram apenas 2 interrupções causadas por falhas de CPU.


Por outro lado, se você quiser rodar o Llama 3.1 405B, será necessário emparelhá-lo com duas estações de trabalho 8×H100 DGX – ou seja, 1280GB de memória de vídeo.

Certa vez, um guerreiro tentou operá-lo com um 4090, mas depois de esperar 30 minutos, o modelo cuspiu lentamente "O".


Uma resposta completa levou 20 horas inteiras

Amigos familiarizados com treinamento e inferência de modelos sabem que essas coisas não são nada surpreendentes.

Construção de cluster (configuração de GPU, design de rede, otimização de rastreamento, etc.), gerenciamento de cluster (monitoramento em tempo real, solução de problemas, etc.)... todos são "obstáculos".

O que é uma empresa que não tem experiência e capital relevantes para fazer?


Recentemente, os engenheiros de P&D da Inspur Information usaram apenas 4 CPUs para executar o "Source 2.0" com centenas de bilhões de parâmetros em um servidor de uso geral!

Diante da tarefa de codificação de escrever um programa em Java, "Source 2.0" dá resultados muito rapidamente.


Faça outra pergunta de raciocínio - uma escada está pendurada na lateral do barco, 2 metros acima do mar. Se a água do mar subir meio metro por hora, quantas horas serão necessárias para a água do mar submergir a escada?

Da mesma forma, a IA fornece etapas e respostas detalhadas para resolução de problemas com atraso quase zero.



É sem precedentes usar um servidor de uso geral para executar modelos grandes com centenas de bilhões de parâmetros. O acúmulo neste campo é completamente vazio e não há experiência com a qual se basear.

Como a Inspur Information faz isso?

Use 4 CPUs para aproveitar modelos grandes com centenas de bilhões de parâmetros

Para conseguir a inferência de um grande modelo com centenas de bilhões de parâmetros em um único servidor, existem dois estágios principais, ambos os quais impõem requisitos rígidos ao poder computacional.

Primeiro, existe o estágio de pré-preenchimento, também chamado de estágio de propagação direta.

Esta etapa envolve o processamento dos dados de entrada e a primeira leitura dos parâmetros do modelo.

Por exemplo, quando você insere o prompt "Escreva-me um artigo sobre IA", o estágio de pré-preenchimento inserirá todos os tokens e parâmetros do modelo da pergunta no cálculo de uma só vez.

Às vezes, essa entrada pode consistir em algumas palavras, ou pode ser milhares de palavras, ou pode ser um livro.

A exigência computacional do primeiro estágio depende principalmente da extensão de nossa entrada.

Durante o cálculo do primeiro token, desde que o modelo seja carregado pela primeira vez, todos os parâmetros de peso, bem como KV Cache e demais dados serão armazenados na memória.

Isso é 2 a 3 vezes o espaço de memória ocupado pelos próprios parâmetros do modelo.

Para centenas de bilhões de modelos de parâmetros, um grande número de parâmetros e entradas de dados precisam ser processados ​​em unidades de computação poderosas. Para isso, ele precisa suportar um conjunto de instruções de vetorização e um conjunto de instruções de cálculo de matrizes para implementar um grande número de operações de multiplicação de matrizes e tensores.

Em segundo lugar, existe a etapa de decodificação, ou seja, a etapa em que o modelo começa a produzir resultados após a entrada de todas as questões.

Nesta fase, o único requisito para modelos grandes é produzir o mais rápido possível. Ao mesmo tempo, o desafio não é mais um desafio de poder computacional, mas um desafio de “transferência de dados”.

Contém duas partes de "transferência de dados":

  • A grande quantidade de KV Cache gerada na fase de pré-preenchimento precisa ser movida da memória/memória de vídeo para a unidade de computação (a carga de trabalho é muito pesada)

  • Transferência dos próprios parâmetros do modelo

Estas transferências desempenham um papel decisivo na velocidade de cálculo e inferência de grandes modelos. A transferência de dados é muito rápida e a velocidade de enunciação do LLM também será rápida.

A saída do LLM gera principalmente tokens um por um por meio do KV Catch e armazena o vetor de valor-chave do novo pedaço de palavra após cada etapa de geração.

Portanto, para inferência em tempo real de centenas de bilhões de modelos grandes, o servidor precisa ter alto poder de computação e alta eficiência de transferência de dados de unidades de armazenamento para unidades de computação.

Em suma, os dois estágios do raciocínio de grandes modelos têm características computacionais completamente diferentes, que requerem otimização colaborativa em termos de software e hardware.

GPU não é tudo

Tradicionalmente, a GPU se tornou a primeira escolha para treinamento e inferência de IA devido às suas capacidades superiores de processamento paralelo.

custo

No entanto, os servidores GPU de última geração costumam ser escassos no mercado e são extremamente difíceis de obter.

Apenas gigantes da tecnologia bem financiados, como a Microsoft e a Google, podem arcar com este custo.

Por outro lado, não é apenas inacessível, mas também inacessível.

O aluguel de serviços em nuvem baseados em GPU é caro em tarefas de inferência. Para os investigadores científicos e fabricantes de aplicações, se precisarem de alcançar uma maior relação custo-eficácia, terão de encontrar outro caminho.

Memória de vídeo

Além disso, uma das maiores desvantagens da GPU é que a capacidade de memória de vídeo é limitada.

A atual arquitetura de rede do LLM na indústria mudou gradualmente de GPT para MoE. A escala de parâmetros de grandes modelos que levam à AGI só aumentará exponencialmente.

Isso significa que o tamanho dos modelos convencionais de código fechado/código aberto só se tornará cada vez maior, e modelos com centenas de bilhões de parâmetros ou mesmo trilhões de parâmetros se tornarão convencionais.

Para dezenas de bilhões de modelos de parâmetros, 20-30 GB de memória de vídeo são suficientes. No entanto, se você quiser executar 100 bilhões de parâmetros, precisará de cerca de 200 a 300 GB de espaço na memória de vídeo.

Os atuais chips de IA convencionais geralmente têm apenas algumas dezenas de GB de memória de vídeo, o que obviamente não pode acomodar um modelo tão grande. (O chip AI mais poderoso atualmente não atingiu 200 GB)


Servidor de uso geral subestimado

Se a GPU não funcionar, comece com a CPU.

Embora o treinamento de modelos em larga escala não seja atualmente possível, os servidores de uso geral apresentam inesperadamente vantagens consideráveis ​​em tarefas de inferência.

No processo de prática específica, os engenheiros da Inspur Information partiram dos recursos de hardware e dos níveis de algoritmo para superar cada "obstáculo".

Memória ultragrande + largura de banda de alta velocidade

Em termos de poder de computação,Atualmente, as principais CPUs de servidores já possuem recursos de aceleração de IA.

Semelhante ao núcleo Tensor da GPU, a extensão de matriz avançada AMX pode acelerar cálculos de baixa precisão, compilar um conjunto de instruções para o núcleo da CPU e usar um núcleo dedicado para aceleração.

Em termos de algoritmos,O servidor universal da Inspur Information pode suportar simultaneamente estruturas de IA convencionais, como PyTorch e TensorFlow, bem como ferramentas de desenvolvimento populares, como DeepSpeed, atendendo às necessidades dos usuários por um ecossistema aberto mais maduro, fácil de implantar e mais conveniente.

Em termos de comunicação,O design da interconexão de barramento UPI (Ultra Path Interconnect) de link completo realiza uma transmissão de dados eficiente entre CPUs:

  1. Permite a transferência direta de dados entre quaisquer duas CPUs, reduzindo atrasos de comunicação

  2. Fornece altas taxas de transferência, até 16GT/s (transferências Giga por segundo)


Além disso, os engenheiros de P&D da Inspur Information também otimizaram os caminhos da fiação e a continuidade da impedância entre as CPUs e entre as CPUs e a memória.

Com base nos resultados da simulação tridimensional, eles ajustaram o arranjo via para reduzir a diafonia do sinal para menos de -60dB, o que é 50% menor que a geração anterior.

Além disso, através da simulação ativa da matriz DOE, é encontrada a solução ideal para a combinação de todos os cantos do canal, permitindo que o desempenho do poder computacional seja totalmente utilizado.

Em termos de memória,Pode-se dizer que é a maior vantagem dos servidores de uso geral.

  • capacidade

Para um servidor de 4 soquetes, você só precisa conectar 8 cartões de memória de 32 GB a cada CPU para chegar facilmente a 1 TB. Quando totalmente inserido, ele pode até ser expandido para 16 TB, podendo suportar modelos com até um trilhão de parâmetros.

  • largura de banda

Emparelhado com memória DDR5, uma largura de banda teórica de 4800 MHz × 8 bits × 8 canais × 4 ÷ 1024 = 1200 GB/s pode ser alcançada.

Os resultados reais da medição mostram que a largura de banda de leitura é de 995 GB/s, a largura de banda de gravação é de 423 GB/s e a largura de banda de leitura e gravação é de 437 GB/s.

Esses dados são comparáveis ​​a algumas GPUs ou placas aceleradoras equipadas com memória GDDR.


Mas o hardware por si só não é suficiente

Depender apenas da inovação de hardware não é suficiente. É difícil para a CPU realizar cálculos paralelos em larga escala de algoritmos de modelos grandes.

Conforme mencionado no início, os modelos grandes têm requisitos muito elevados de largura de banda de comunicação, seja para cálculo de dados, entre unidades de computação ou entre unidades de computação e memória.

Se calculado de acordo com a precisão do BF16, se você quiser que o atraso de execução de um modelo grande de 100 bilhões seja inferior a 100 ms, a largura de banda de comunicação entre a memória e a unidade de computação deve ser de pelo menos 2 TB/s.

Além disso, os processadores de servidor de uso geral não são adequados para grandes modelos de IA baseados em designs de placas aceleradoras que são bons para computação paralela em grande escala.

A razão é óbvia: embora este último possua um núcleo computacional altamente versátil e de alto desempenho, não possui um ambiente de trabalho paralelo.

De modo geral, um servidor de uso geral primeiro transfere o peso do modelo para uma CPU e, em seguida, permite que ele se conecte a outras CPUs em série para realizar a transmissão dos dados de peso.

No entanto, como os modelos grandes precisam transferir frequentemente pesos de algoritmo entre a memória e a CPU durante a operação, a consequência disso é que a utilização da largura de banda entre a CPU e a memória não é alta e a sobrecarga de comunicação é extremamente alta.


Como resolver o problema?Inove com algoritmos

Em resposta aos problemas acima, a Inspur Information propôs duas inovações tecnológicas, "Tensor Parallel" (Tensor Parallel) e "NF4 Quantification", e realizou com sucesso a inferência em tempo real do grande modelo Yuan2.0-102B de centenas de bilhões.

De acordo com os resultados da análise de desempenho, a distribuição do tempo de cálculo das diferentes partes do modelo pode ser vista claramente——

O tempo de execução da camada linear é responsável por 50%, o tempo de execução da convolução é responsável por 20%, o tempo de comunicação de agregação é responsável por 20% e outros cálculos são responsáveis ​​por 10%.

Observe que durante todo o processo de inferência o tempo de cálculo representa 80%!

Isto contrasta fortemente com o uso de múltiplas placas aceleradoras PCIe AI – a sobrecarga de comunicação destas últimas pode chegar a 50%, resultando em um sério desperdício de poder computacional.


Gráfico de resultados de análise de desempenho de inferência do modelo Yuan2.0-102B

paralelismo tensorial

O chamado paralelismo tensorial primeiro divide o operador de convolução em tensores e, em seguida, calcula os pesos das matrizes da camada de atenção e da camada feedforward no modelo grande e os insere na memória de vários processadores.

Desta forma, as quatro CPUs do servidor geral podem obter pesos de algoritmos ao mesmo tempo para acelerar os cálculos.

No entanto, o paralelismo tensorial divide os parâmetros do modelo em granularidades mais finas, exigindo que a CPU execute a sincronização de dados após cada cálculo do tensor.

Para este requisito, a tecnologia de interconexão de barramento UPI de link completo mencionada acima pode atender totalmente a esse requisito (a largura de banda de comunicação é de até 16GT/s).

No final, esse trabalho paralelo colaborativo aumentou diretamente a eficiência da computação em 4 vezes!


Quantificação de NF4

Quanto ao problema de largura de banda de memória insuficiente, o modelo precisa ser “reduzido” sem afetar a precisão, ou seja, quantizado.

A vantagem é que, por um lado, os parâmetros LLM podem ser quantizados em dados de baixo bit e os pesos se tornarão menores. Por outro lado, após a redução do peso, a quantidade de dados transmitidos durante o cálculo também diminuirá.

Aqui, a Inspur Information adota um método de quantificação de quantil raro - NF4 (NormalFloat de 4 dígitos).


O método de quantização NF4 pode comprimir o tamanho de Yuan2.0-102B para 1/4 do tamanho original.

Especificamente, a ideia central do NF4 é garantir que o número de valores do tensor de entrada dentro do intervalo de quantização seja igual.

Este recurso é muito adequado para apresentar pesos LLM com distribuição aproximadamente normal.

Como o desvio padrão pode ser ajustado para se ajustar ao intervalo do tipo de dados quantizado, o NF4 pode alcançar maior precisão do que a quantificação tradicional de números inteiros de 4 bits ou de ponto flutuante de 4 bits.

Desta forma, o modelo quantizado pode não apenas atender aos requisitos de precisão, mas também reduzir significativamente a quantidade de dados de acesso à memória para computação paralela em larga escala, atendendo assim aos requisitos de decodificação do raciocínio em tempo real.


Os intervalos de dados para métodos de quantização de número inteiro ou de ponto flutuante são geralmente distribuídos uniformemente ou exponencialmente.

Para comprimir ainda mais os parâmetros de peso do modelo, a equipe também utilizou a tecnologia de quantização aninhada (Double Quant).

Esta é uma quantização secundária baseada na quantização de NF4.

Como o NF4 irá gerar um grande número de parâmetros de escala após a quantização, se números de ponto flutuante de 32 bits (FP32) forem usados ​​para armazená-los, uma grande quantidade de memória será ocupada.

Para um LLM com centenas de bilhões de parâmetros, se cada 64 parâmetros forem calculados como um bloco de quantização (tamanho do bloco = 64), apenas o armazenamento dos parâmetros de escala exigirá 6 GB adicionais de memória: (100B ÷ 64) × 4 = 6 GB.

A equipe reduziu significativamente o espaço de armazenamento necessário quantizando esses parâmetros de escala para números de ponto flutuante de 8 bits (FP8).

Ao usar 256 como tamanho do bloco de quantização (tamanho do bloco = 256), o espaço adicional necessário para armazenar todos os parâmetros de escala é de apenas 1,57 GB: (100B ÷ 64 ÷ 256) × 4 + (100B ÷ 64) × 1 = 1,57 GB.

Através da quantização aninhada, cada parâmetro de peso do modelo acaba ocupando apenas 4 bytes de espaço de memória, economizando muito espaço de memória que o FP32 original.

Ao mesmo tempo, melhora a eficiência da transferência de dados da memória para a CPU em 4 vezes.

Essa otimização alivia significativamente a limitação da largura de banda da memória na eficiência de inferência e decodificação do modelo Yuan2.0-102B, melhorando assim ainda mais o desempenho de inferência do modelo.

O chamado universal significa que todos podem usá-lo.

Neste ponto, as informações do Inspur foram enviadas com sucesso!

Através da otimização do sistema, o NF8260G7 da Inspur Information é o primeiro do setor a suportar a operação de modelos grandes com centenas de bilhões de parâmetros baseados exclusivamente em processadores de uso geral.

Até agora, a escala de parâmetros de grandes modelos de IA apoiados pelo poder computacional geral ultrapassou 100 bilhões, preenchendo completamente a lacuna na indústria e tornando-se um novo ponto de partida para as empresas possuírem IA.

A implantação de modelos de IA com centenas de bilhões de parâmetros agora tem uma opção com desempenho mais forte e custos mais econômicos. Aplicativos de grandes modelos de IA podem alcançar uma integração mais estreita com nuvem, big data e bancos de dados;


O objetivo final do progresso científico e tecnológico deve ser cair no mundo mortal.

Olhando para o presente, a AIGC penetrou em milhares de indústrias. A IA penetrou em todos os dispositivos de computação a um ritmo alarmante.

De janeiro a abril de 2024, o número de licitações vencedoras para grandes modelos nacionais ultrapassou o total de todo o ano de 2023, e o número divulgado de licitações vencedoras atingiu 77% daquele para todo o ano de 2023.

Profissionais do setor financeiro, departamentos ambulatoriais de hospitais e departamentos de TI corporativos descobriram isso: a infraestrutura de poder computacional das indústrias tradicionais não é mais suficiente!

Hoje, grandes modelos com centenas de bilhões de parâmetros são a chave para o surgimento da inteligência em milhares de indústrias. Se o poder computacional geral pode executar grandes modelos com centenas de bilhões de parâmetros é a chave para avaliar se ele pode apoiar o surgimento da inteligência em milhares de indústrias.

A iniciativa da Inspur Information permite que clientes dos setores de Internet, financeiro, médico e outros consigam uma implantação eficiente e economizem mais de 80% dos custos de construção no primeiro investimento.

Quer se trate de prevenção de fraudes financeiras, análise de dados financeiros, insights de marketing de CRM empresarial, diagnóstico médico inteligente, diagnóstico personalizado e planos de tratamento, educação e treinamento, etc., testemunharemos a ampla aplicação da IA.

De agora em diante, todos os cálculos serão de IA.

Referências:

https://mp.weixin.qq.com/s/1wYt7dfoVy2J1FFkOJjRTg