Agora mesmo, o GPT-4 da OpenAI foi "código aberto" por especialistas da indústria novamente!
Isso inclui parâmetros e informações muito específicos, como arquitetura do GPT-4, infraestrutura de treinamento e inferência, volume de parâmetros, conjunto de dados de treinamento, número de token, custo e Mistura de especialistas (MoE).
Em particular, por trás dos diferentes projetos, como o OpenAI pesa. E como atravessar o maior gargalo na inferência de modelos grandes.
De quem veio uma revelação tão pesada?
Os autores do artigo são dois colaboradores da SemiAnalysis chamados Dylan Patel e Gerald Wong.
Vale mencionar que Dylan Patel também foi um dos autores do vazamento interno de documentos do Google (“Não temos um fosso, nem a OpenAI”), que já havia causado alvoroço na indústria.
O CEO da DeepMind, Hassabis, confirmou recentemente a autenticidade dos documentos vazados dos engenheiros do Google em uma entrevista à mídia estrangeira The Verge.
Pode-se ver que Dylan Patel tem alguns canais especiais, o que torna a revelação de hoje um pouco mais autêntica.
Li Zhifei, CEO da Going out to ask, também fez um discurso
Muitas empresas podem fazer GPT-4
Na opinião do autor do artigo de última hora, a razão pela qual o OpenAI não é aberto não é para garantir que os seres humanos não sejam destruídos pela IA, mas porque as coisas que eles constroem são reproduzíveis.
Ele até prevê que, no futuro, todas as grandes empresas de Internet ou start-ups de IA na China e nos Estados Unidos poderão construir um modelo igual ao GPT-4 ou até mesmo superar o GPT-4.
Mas ele também admitiu que o GPT-4 é uma grande obra-prima do OpenAI. Ele condensa o projeto engenhoso do engenheiro, a estrutura complexa e vários trade-offs engenhosos de engenharia.
O fosso mais durável do OpenAI é que eles têm feedback de usuários reais, os principais talentos de engenharia do setor e a posição de liderança contínua trazida pela vantagem do pioneirismo.
Estrutura do modelo
Em primeiro lugar, o autor que deu a notícia acredita que o GPT-4 contém um total de 1,8 trilhão de parâmetros em 120 camadas, enquanto o GPT-3 possui apenas cerca de 175 bilhões de parâmetros.
Em outras palavras, a escala do GPT-4 é mais de 10 vezes a do GPT-3.
Anteriormente, foi dito na Internet que o parâmetro GPT-4 era de 1 trilhão, o que parece subestimado da situação real.
Para manter o custo razoável, a OpenAI adota o modelo MoE para construção.
Especificamente, o GPT-4 possui 16 modelos especialistas com aproximadamente 111 bilhões de parâmetros por especialista MLP. Dentre eles, dois modelos especialistas são utilizados para propagação direta.
Embora haja muita discussão na literatura sobre algoritmos avançados para selecionar para quais especialistas cada token aponta, diz-se que o algoritmo usado pelo OpenAI para GPT-4 é realmente muito simples.
Além disso, existem cerca de 55 bilhões de parâmetros no modelo, que são utilizados para o compartilhamento do mecanismo de atenção.
Em cada raciocínio de propagação direta (gerando um token), o GPT-4 precisa usar apenas cerca de 280 bilhões de parâmetros e 560TFLOPs.
Isso contrasta fortemente com muitos modelos puramente densos que requerem cerca de 1,8 trilhão de parâmetros e 3700 TFLOPs por passagem direta.
A composição do conjunto de dados
OpenAI treinou GPT-4 com 13 trilhões de tokens.
Esse conjunto de dados não contém apenas 13 trilhões de tokens, mas como não há tokens de alta qualidade, esse conjunto de dados também contém muitas épocas.
Dentro do Scale AI e do conjunto de dados, também estão incluídos milhões de linhas de dados de ajuste fino de instrução.
No entanto, o autor da revelação disse que não encontrou muitas informações sobre esses dados de RLHF.
O comprimento do contexto no estágio de pré-treinamento atingiu 8K (seqlen), e a versão 32k foi ajustada com base na versão 8K pré-treinada.
O tamanho do lote é aumentado gradualmente ao longo de vários dias no cluster, e o tamanho final do lote usado pelo OpenAI é de 60 milhões.
Obviamente, esse é "apenas" o tamanho do modelo especialista em 7,5 milhões de tokens cada, pois nem todo modelo especialista verá todos os tokens.
Estratégia paralela
A estratégia paralela é muito importante para o A100GPU.
O OpenAI usa paralelismo de tensor de 8 vias, porque o NVLink suporta apenas alguns.
Mas, além disso, o autor das últimas notícias ouviu que o OpenAI usa 15 pipelines paralelos.
Em teoria, 15 pipelines é um pouco demais considerando a comunicação de dados e o tempo de computação.
Mas devido à limitação da capacidade de memória, muitos pipelines são significativos.
Quando puramente em pipeline e tensor paralelo, o parâmetro FP16 é de cerca de 30 GB por GPU.
Mas, uma vez que o cache KV e o custo são adicionados, se a maioria das GPUs usadas pelo OpenAI for de 40 GB A100, essa arquitetura faz sentido em teoria.
É possível que OpenAI esteja usando ZeRo Stage 1 e pode estar usando FSDP em nível de bloco ou paralelismo de dados compartilhados híbrido.
Por que eles não usaram o modelo completo do FSDP? Provavelmente por causa do alto custo de comunicação.
Embora o OpenAI tenha uma rede de alta velocidade entre a maioria dos nós, ela não cobre todos os nós.
Entre eles, pelo menos alguns clusters terão largura de banda de conexão muito menor do que outros.
No entanto, o autor disse que não entende muito bem como o OpenAI evita a geração de "enormes bolhas" em cada lote sob um paralelismo de pipeline tão alto. É muito provável que o OpenAI tenha resistido a esses custos.
Custo de treinamento
OpenAI treina GPT-4 com cerca de 2.15e25 FLOPS, treinados em cerca de 25.000 A100s por 90 a 100 dias, e a taxa de utilização está entre 32% e 36%.
Essa utilização extremamente baixa se deveu em parte ao alto número de falhas, que exigia o reinício do treinamento dos pontos de verificação anteriores. Como o custo da bolha mencionado acima.
O custo de treinamento desperdiçado neste caso é extremamente alto.
Outro motivo é que o all-reduce entre tantas GPUs é muito caro.
Este diagrama assume que a incapacidade de fundir cada operação, a largura de banda de memória exigida pelo mecanismo de atenção e a sobrecarga de hardware equivalente às leituras de parâmetros levam a ineficiências. Na verdade, mesmo com uma biblioteca otimizada como a biblioteca FasterTransformer da Nvidia, a sobrecarga total pode ser ainda maior
O autor do denunciante suspeita que, se esse cluster for realmente um grupo de clusters menores com conexões de rede mais fracas, a velocidade de conexão sem bloqueio (sem bloqueio) entre diferentes partes do cluster é de 800G/1.6T, mas essas partes O a velocidade de conexão entre eles é de apenas 200G/400G.
Se o custo da computação em nuvem OpenAI for de cerca de US$ 1/A100 horas, então, nessas condições, o custo de treinamento é de cerca de US$ 63 milhões.
Isso não inclui todos os experimentos, falha de treinamento e outros custos, como coleta de dados, RLHF, custo humano, etc.
Se você levar em conta os fatores que acabamos de mencionar, o custo real é muito maior.
Além disso, isso deve partir da premissa de que outros podem comprar chips/redes/datacenters, incorrer em despesas de capital para construir esses sistemas e alugá-los para a OpenAI.
Mas hoje, a $ 2/H100 horas, o pré-treinamento pode ser feito em cerca de 8.192 H100s em apenas 55 dias a um custo de $ 21,5 milhões.
A figura acima mostra o número de parâmetros e tokens para alguns dos modelos avançados disponíveis publicamente. A linha no gráfico são as observações em escala Chinchilla do Google DeepMind (barras de erro maiores suavizadas) e cada ponto na linha mostra os FLOPS teóricos necessários para treinar o modelo com esse parâmetro e número de tokens
No entanto, o autor do relatório disse que até o final deste ano, pelo menos nove empresas terão clusters H100 superiores ao tamanho acima mencionado.
Embora nem todas essas empresas os usem para treinamento de modelos individuais, se houver, eles terão modelos maiores do que o GPT-4.
Por exemplo, a Meta terá mais de 100.000 H100 até o final deste ano, mas uma parte considerável deles será distribuída em seu próprio data center para inferência.
Mas seu maior aglomerado único ainda excederá 25.000 H100.
Em suma, até o final deste ano, muitas empresas terão recursos de computação suficientes para treinar modelos do tamanho do GPT-4.
Esta tabela é o custo teoricamente ideal de treinamento de um modelo em uma Nvidia A100, sem considerar a mão de obra necessária, ferramentas ML Ops, coleta/pré-processamento de dados, recuperação de falhas, exemplos de aprendizado one-shot/poucos shot, inferência, etc., muitos peças O custo de
Compensações em modelos de especialistas mistos
O MoE (Modelo Misto de Especialistas) é uma ótima maneira de reduzir a quantidade de parâmetros durante a inferência, aumentando-os ao mesmo tempo.
Mas isso é necessário para que cada token de treinamento codifique mais informações, porque é muito difícil obter tokens suficientes de alta qualidade.
Se a OpenAI realmente deseja buscar o melhor desempenho, eles precisam treinar o dobro de tokens para alcançá-lo.
Dito isto, a OpenAI fez algumas compensações.
Por exemplo, lidar com MoE durante a inferência é muito difícil porque todas as partes do modelo não são usadas a cada geração de token.
Isso significa que algumas peças podem estar inativas enquanto outras estão funcionando.
Essa situação pode reduzir significativamente a utilização ao atender usuários.
Os pesquisadores mostraram que o uso de 64-128 modelos especializados produz melhores perfis de perda do que o uso de 16 modelos especializados, mas isso é apenas uma pesquisa.
Há muitas razões para usar relativamente poucos modelos de especialistas. Uma das razões pelas quais a OpenAI escolheu 16 especialistas é porque mais modelos de especialistas são difíceis de generalizar em muitas tarefas.
Também é mais difícil alcançar a convergência com modelos mais especializados.
Em um processo de treinamento tão grande, a OpenAI optou por ser mais conservadora no número de modelos especialistas.
Além disso, usar menos modelos especialistas também ajuda na infraestrutura de inferência. Existem várias compensações e compensações difíceis ao mudar para uma arquitetura de inferência híbrida de modelo especializado.
O autor das últimas notícias começa com a discussão dos trade-offs básicos do raciocínio LLM e, em seguida, discute os problemas que a OpenAI enfrenta e as escolhas que ela faz.
Trocas de raciocínio
Antes de apresentar as compensações de inferência, a propósito, depois de conversar com todas as empresas LLM, o denunciante descobriu que a biblioteca de inferência FasterTransformer da NVIDIA é muito ruim e o TensorRT é ainda mais.
Isso significa que, se a Nvidia não modificar, as pessoas precisarão criar suas próprias soluções do zero.
Existem três compensações principais no raciocínio sobre grandes modelos de linguagem, a dimensão do tamanho do lote (número de usuários processados simultaneamente) e o número de chips usados, como segue:
1. Atraso
O modelo deve responder dentro de uma latência razoável. Ninguém quer esperar alguns segundos em um aplicativo de bate-papo antes de começar a receber a saída. O tempo de processamento para pré-preenchimento (tokens de entrada) e decodificação (tokens de saída) varia.
2. Rendimento
O modelo deve gerar um certo número de tokens por segundo. Os humanos precisam de cerca de 30 fichas por segundo. Para vários outros casos de uso, taxas de transferência mais baixas e mais altas são aceitáveis.
3. Taxa de utilização
O hardware que executa o modelo deve alcançar altas taxas de utilização, ou o custo será proibitivo. Embora uma latência mais alta e uma taxa de transferência mais baixa possam ser usadas para combinar mais solicitações do usuário para obter maior utilização, isso também aumenta a dificuldade.
A chave para o raciocínio LLM é equilibrar os dois pontos de largura de banda de memória e computação.
Requisitos teóricos de largura de banda do LLM: pode-se supor que o tamanho máximo do modelo que pode ser executado no iPhone 14 é de aproximadamente 1 bilhão de parâmetros FP16 ou aproximadamente 4 bilhões de parâmetros int4. Esse é o limite básico do LLM baseado em smartphones. Qualquer tamanho maior modelos não serão adotados
Simplificando, cada parâmetro deve ser lido e há 2 FLOPs associados a ele.
Portanto, a proporção da maioria dos chips (o H100 SXM tem apenas 3 TB/s de largura de banda de memória, mas o FP8 tem 2.000 TFLOPs/s) é completamente desequilibrado na inferência com um tamanho de lote de 1.
Se houver apenas um usuário (tamanho do lote 1), a largura de banda de memória necessária para ler cada parâmetro toda vez que um token é gerado domina o tempo de inferência, enquanto o tempo de computação é quase insignificante.
Para dimensionar com eficiência grandes modelos de linguagem para vários usuários, o tamanho do lote deve exceder 1. Vários usuários compartilham o custo dos parâmetros de leitura. Por exemplo, com um tamanho de lote de 256/512, você pode obter 512 FLOP/s ou 1024 FLOP/s por byte de memória lido.
Essa proporção está mais próxima do equilíbrio do H100 entre largura de banda de memória e FLOPS. Isso ajuda a alcançar maior utilização, mas ao custo de maior latência.
Muitos consideram a capacidade de memória um grande gargalo para inferência LLM, já que modelos grandes requerem vários chips para inferência, e capacidades de memória mais altas significam que podem caber em menos chips.
No entanto, é realmente melhor usar mais chips para que a latência seja menor, a taxa de transferência seja aumentada e tamanhos de lote maiores possam ser usados para maior utilização.
Compensações e infraestrutura de inferência GPT-4
Como mencionado acima, é muito difícil para o raciocínio GPT-4. Mas ser um mod MoE novamente apresenta um novo conjunto de dificuldades.
Cada passagem de encaminhamento que gera tokens pode ser roteada para um conjunto diferente de especialistas. Isso representa um problema com a compensação entre taxa de transferência, latência e utilização em lotes maiores.
O GPT-4 da OpenAI tem 16 especialistas, e cada encaminhamento passa rotas para 2 deles.
Isso significa que, se o tamanho do lote for 8, a leitura de cada parâmetro do especialista pode ter apenas um tamanho de lote de 1.
Pior ainda, isso pode significar que um especialista tem um tamanho de lote de 8, enquanto outros especialistas têm tamanhos de lote de 4, 1 ou 0.
Para cada token gerado, o algoritmo de roteamento envia passes de encaminhamento em diferentes direções, fazendo com que os atrasos entre tokens e tamanhos de lote especializados variem significativamente.
A infraestrutura de inferência é uma das principais razões pelas quais a OpenAI escolheu um número menor de especialistas. Se eles escolherem mais especialistas, a largura de banda da memória se tornará o gargalo para a inferência.
O cluster de inferência da OpenAI geralmente pode atingir um tamanho de lote de 4k+, o que significa que, mesmo com o melhor equilíbrio de carga entre especialistas, o tamanho do lote de especialistas é de apenas cerca de 500 ou mais. Isso requer uma quantidade muito grande de uso para ser alcançado.
De acordo com o denunciante, descobrimos que o OpenAI realiza inferência em um cluster de 128 GPUs. Eles têm vários desses clusters em vários data centers e localizações geográficas.
A inferência usa paralelismo de tensor de 8 vias e paralelismo de pipeline de 16 vias. Cada nó composto por 8 GPUs tem apenas cerca de 130B de parâmetros, ou menos de 30GB por GPU em FP16 e menos de 15GB em FP8/int8.
Isso permite a execução de inferência em um A100 de 40 GB, desde que o tamanho do cache KV para todos os lotes não seja muito grande.
Camadas contendo diferentes especialistas em nós diferentes não são divididas porque isso faria com que o tráfego de rede fosse muito irregular e recalcular o cache KV entre cada geração de token seria muito caro.
Para futuras extensões do modelo MoE e roteamento condicional, a maior dificuldade é como lidar com o roteamento do cache KV.
O modelo tem 120 camadas, então elas podem simplesmente ser distribuídas para 15 nós diferentes, mas como o primeiro nó precisa carregar e incorporar os dados, faz sentido colocar menos camadas no nó mestre do cluster de inferência de.
Além disso, existem alguns rumores sobre "decodificação especulativa" (a seguir), o que também explica por que os masternodes precisam conter menos camadas.
Custo de inferência
Comparado com o modelo Davinchi com 175 bilhões de parâmetros, o GPT-4 custa 3 vezes, embora seus parâmetros feed-forward aumentem apenas 1,6 vezes.
Isso ocorre principalmente porque o GPT-4 requer um cluster maior e obtém menor utilização.
Os autores acreditam que o custo de inferir o comprimento da sequência de 8k do GPT-4 em 128 A100s é de US$ 0,0049 por 1.000 tokens, enquanto o custo de inferir o comprimento da sequência de 8k do GPT-4 em 128 H100s é de US$ 0,0021 por 1.000 tokens.
Observe que isso pressupõe uma utilização razoavelmente alta e mantém o tamanho do lote alto.
Mas está claro que o OpenAI às vezes é muito subutilizado.
A esse respeito, o autor levantou a hipótese de que o OpenAI desligaria o cluster fora do horário de pico, reconfiguraria os nós, retomaria o treinamento de modelos de teste menores e tentaria várias novas tecnologias para reduzir os custos de inferência.
Se a OpenAI não tivesse feito isso, sua utilização teria sido menor e seus custos teriam mais do que dobrado.
Atenção multiconsulta
Além disso, o OpenAI também está usando o Multi-Query Attention (MQA).
Endereço de papel:
Resumindo, apenas uma cabeça de atenção é necessária e o consumo de memória do cache KV pode ser significativamente reduzido.
Mesmo assim, o GPT-4 com um comprimento de 32k certamente não pode rodar em um A100 de 40GB, e há um limite máximo para o tamanho máximo do lote de 8k.
Processamento em lote contínuo
O OpenAI implementa tamanho de lote variável e processamento em lote contínuo.
Isso permite algum grau de latência máxima e otimiza o custo de inferência.
Decodificação especulativa
Foi revelado que o OpenAI usou "decodificação especulativa" no processo de raciocínio do GPT-4, que ainda tem 100% de incerteza.
A variação na latência de token para token, e a diferença ao fazer tarefas de recuperação simples versus tarefas mais complexas, parece sugerir que isso é possível, embora ainda haja muitas variáveis para ter certeza.
Aqui, o denunciante fez modificações apropriadas/adicionou alguns detalhes para explicar o texto em um estudo "Acelerando a inferência LLM com decodificação especulativa encenada" da DeepMind.
Geralmente, existem duas fases para usar o LLM.
O primeiro é o pré-preenchimento, onde o texto da dica é inserido no modelo para gerar o cache KV e as probabilidades de log (distribuição de probabilidade de possíveis saídas de token) da primeira saída. Esse processo geralmente é rápido porque todo o texto do prompt pode ser processado em paralelo.
A segunda etapa é a decodificação. Selecione um token das probabilidades de log da saída e alimente-o no modelo, o que gerará as probabilidades de log do próximo token. Repita esse processo até que o número desejado de tokens seja gerado.
Como a decodificação deve ocorrer sequencialmente, cada vez que os pesos precisam ser transmitidos pela unidade de computação para gerar um único token. Portanto, este segundo estágio é muito computacionalmente intensivo (ou seja, calcula FLOPs/bytes de largura de banda de memória) ao executar em mini-lotes. Portanto, a decodificação é geralmente a parte mais cara da geração autorregressiva.
É por isso que o token de entrada é muito mais barato que o token de saída nas chamadas de API do OpenAI.
A ideia básica da "decodificação especulativa" é usar um modelo de rascunho menor e mais rápido para decodificar vários tokens antecipadamente e, em seguida, alimentá-los no modelo preditivo como um lote.
Se as previsões do modelo de rascunho estiverem corretas, ou seja, o modelo maior concorda com essas previsões, vários tokens podem ser decodificados usando um único lote, o que economiza muita largura de banda de memória e tempo.
No entanto, se o modelo maior rejeitar um token previsto pelo modelo de rascunho, o lote restante é descartado e o algoritmo reverte naturalmente para a decodificação token por token padrão.
A "decodificação especulativa" também pode ser acompanhada por um esquema de amostragem de rejeição para amostrar da distribuição original. Vale a pena notar que isso só é útil em configurações de pequenos lotes em que a largura de banda é o gargalo.
A decodificação especulativa, que troca computação por largura de banda, é um alvo atraente de engenharia de desempenho por dois motivos principais:
Primeiro, não reduz a qualidade do modelo. Em segundo lugar, as melhorias de desempenho que oferece são muitas vezes ortogonais a outras abordagens, uma vez que seu desempenho vem da conversão de "execução sequencial" para "execução paralela".
O método de inferência atual é uma sequência separada de previsões em lote. No entanto, essa abordagem não é bem dimensionada para grandes lotes ou alinhamentos de modelo de baixo calado.
Intuitivamente, a probabilidade de dois modelos concordarem em sequências contiguamente longas de tokens é exponencialmente baixa, implicando que os ganhos da decodificação especulativa diminuem rapidamente à medida que a densidade aritmética aumenta.
O denunciante acredita que, se o OpenAI usar "decodificação especulativa", eles só poderão usá-lo em sequências de cerca de 4 tokens.
Como um aparte, toda a conspiração sobre a castração do OpenAI, resultando em GPT-4 de qualidade inferior, pode ser simplesmente porque eles sujeitam seus modelos preditivos a sequências de baixa probabilidade de modelos de "decodificação especulativa".
Também foi especulado que Bard também usa "decodificação especulativa" porque o Google espera que toda a sequência seja totalmente gerada antes de enviá-la ao usuário, mas, na opinião do denunciante, esse palpite está completamente incorreto.
Visual Multimodal
Os recursos multimodais visuais são a parte menos impressionante do GPT-4, pelo menos em comparação com as principais pesquisas.
Claro, ninguém ainda comercializou os resultados da pesquisa LLM multimodal.
O denunciante disse que é um codificador visual independente do codificador de texto, além de atenção cruzada, a arquitetura é semelhante ao Flamingo e mais parâmetros foram adicionados ao GPT-4 1.8T.
A capacidade multimodal do GPT-4 é ajustada com cerca de 2 trilhões de tokens após o pré-treinamento de texto.
Diz-se que, no modelo visual, o OpenAI originalmente esperava treinar do zero, mas como não era maduro o suficiente, não teve escolha a não ser ajustar o modelo de treinamento de texto.
E o modelo de próxima geração GPT-5, cujo treinamento deve treinar o modelo de visão do zero, e ser capaz de gerar imagens, e até gerar áudio.
Um dos principais propósitos dessa habilidade visual é permitir que agentes autônomos leiam páginas da web e transcrevam imagens, vídeos.
Vale ressaltar que os dados usados pelo OpenAI para treinar modelos multimodais incluem: "dados conjuntos" (LaTeX/texto), capturas de tela de páginas da web, vídeos do YouTube (quadros de amostragem e execução do Whisper para obter legendas).
Um fato interessante sobre a otimização excessiva de LLMs é que os modelos visuais têm um custo de IO diferente dos modelos textuais. No modelo visual, o IO de carregamento de dados é cerca de 150 vezes maior que o do modelo de texto.
O custo de IO do modelo visual é baixo
Cada token no modelo visual tem 600 bytes e o texto tem 4 bytes/token.
Portanto, isso requer muito trabalho em termos de compactação de imagem. Isso é extremamente importante para os fornecedores de hardware, pois eles otimizarão o hardware daqui a 2 a 3 anos em relação aos casos de uso e proporções do LLM.
Eles podem se encontrar em um mundo onde cada modelo possui recursos visuais e de áudio poderosos.
Eles podem se sentir mal adaptados à arquitetura.
Em geral, a arquitetura definitivamente superará os modelos densos simplificados baseados em texto e os modelos MoE que vemos hoje.
Referências
Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Insider GPT-4 vazou, 1,8 trilhão de parâmetros enormes, 13 trilhões de treinamento de token, gastou 63 milhões de dólares americanos
Fonte: "Xinzhiyuan" (ID: AI_era)
Agora mesmo, o GPT-4 da OpenAI foi "código aberto" por especialistas da indústria novamente!
Isso inclui parâmetros e informações muito específicos, como arquitetura do GPT-4, infraestrutura de treinamento e inferência, volume de parâmetros, conjunto de dados de treinamento, número de token, custo e Mistura de especialistas (MoE).
De quem veio uma revelação tão pesada?
Vale mencionar que Dylan Patel também foi um dos autores do vazamento interno de documentos do Google (“Não temos um fosso, nem a OpenAI”), que já havia causado alvoroço na indústria.
Pode-se ver que Dylan Patel tem alguns canais especiais, o que torna a revelação de hoje um pouco mais autêntica.
Muitas empresas podem fazer GPT-4
Na opinião do autor do artigo de última hora, a razão pela qual o OpenAI não é aberto não é para garantir que os seres humanos não sejam destruídos pela IA, mas porque as coisas que eles constroem são reproduzíveis.
Ele até prevê que, no futuro, todas as grandes empresas de Internet ou start-ups de IA na China e nos Estados Unidos poderão construir um modelo igual ao GPT-4 ou até mesmo superar o GPT-4.
Mas ele também admitiu que o GPT-4 é uma grande obra-prima do OpenAI. Ele condensa o projeto engenhoso do engenheiro, a estrutura complexa e vários trade-offs engenhosos de engenharia.
Estrutura do modelo
Em primeiro lugar, o autor que deu a notícia acredita que o GPT-4 contém um total de 1,8 trilhão de parâmetros em 120 camadas, enquanto o GPT-3 possui apenas cerca de 175 bilhões de parâmetros.
Em outras palavras, a escala do GPT-4 é mais de 10 vezes a do GPT-3.
Para manter o custo razoável, a OpenAI adota o modelo MoE para construção.
Especificamente, o GPT-4 possui 16 modelos especialistas com aproximadamente 111 bilhões de parâmetros por especialista MLP. Dentre eles, dois modelos especialistas são utilizados para propagação direta.
Embora haja muita discussão na literatura sobre algoritmos avançados para selecionar para quais especialistas cada token aponta, diz-se que o algoritmo usado pelo OpenAI para GPT-4 é realmente muito simples.
Além disso, existem cerca de 55 bilhões de parâmetros no modelo, que são utilizados para o compartilhamento do mecanismo de atenção.
Em cada raciocínio de propagação direta (gerando um token), o GPT-4 precisa usar apenas cerca de 280 bilhões de parâmetros e 560TFLOPs.
Isso contrasta fortemente com muitos modelos puramente densos que requerem cerca de 1,8 trilhão de parâmetros e 3700 TFLOPs por passagem direta.
A composição do conjunto de dados
OpenAI treinou GPT-4 com 13 trilhões de tokens.
Esse conjunto de dados não contém apenas 13 trilhões de tokens, mas como não há tokens de alta qualidade, esse conjunto de dados também contém muitas épocas.
Dentro do Scale AI e do conjunto de dados, também estão incluídos milhões de linhas de dados de ajuste fino de instrução.
No entanto, o autor da revelação disse que não encontrou muitas informações sobre esses dados de RLHF.
O comprimento do contexto no estágio de pré-treinamento atingiu 8K (seqlen), e a versão 32k foi ajustada com base na versão 8K pré-treinada.
O tamanho do lote é aumentado gradualmente ao longo de vários dias no cluster, e o tamanho final do lote usado pelo OpenAI é de 60 milhões.
Obviamente, esse é "apenas" o tamanho do modelo especialista em 7,5 milhões de tokens cada, pois nem todo modelo especialista verá todos os tokens.
Estratégia paralela
A estratégia paralela é muito importante para o A100GPU.
O OpenAI usa paralelismo de tensor de 8 vias, porque o NVLink suporta apenas alguns.
Mas, além disso, o autor das últimas notícias ouviu que o OpenAI usa 15 pipelines paralelos.
Em teoria, 15 pipelines é um pouco demais considerando a comunicação de dados e o tempo de computação.
Mas devido à limitação da capacidade de memória, muitos pipelines são significativos.
Quando puramente em pipeline e tensor paralelo, o parâmetro FP16 é de cerca de 30 GB por GPU.
Mas, uma vez que o cache KV e o custo são adicionados, se a maioria das GPUs usadas pelo OpenAI for de 40 GB A100, essa arquitetura faz sentido em teoria.
É possível que OpenAI esteja usando ZeRo Stage 1 e pode estar usando FSDP em nível de bloco ou paralelismo de dados compartilhados híbrido.
Por que eles não usaram o modelo completo do FSDP? Provavelmente por causa do alto custo de comunicação.
Embora o OpenAI tenha uma rede de alta velocidade entre a maioria dos nós, ela não cobre todos os nós.
Entre eles, pelo menos alguns clusters terão largura de banda de conexão muito menor do que outros.
No entanto, o autor disse que não entende muito bem como o OpenAI evita a geração de "enormes bolhas" em cada lote sob um paralelismo de pipeline tão alto. É muito provável que o OpenAI tenha resistido a esses custos.
Custo de treinamento
OpenAI treina GPT-4 com cerca de 2.15e25 FLOPS, treinados em cerca de 25.000 A100s por 90 a 100 dias, e a taxa de utilização está entre 32% e 36%.
Essa utilização extremamente baixa se deveu em parte ao alto número de falhas, que exigia o reinício do treinamento dos pontos de verificação anteriores. Como o custo da bolha mencionado acima.
O custo de treinamento desperdiçado neste caso é extremamente alto.
Outro motivo é que o all-reduce entre tantas GPUs é muito caro.
O autor do denunciante suspeita que, se esse cluster for realmente um grupo de clusters menores com conexões de rede mais fracas, a velocidade de conexão sem bloqueio (sem bloqueio) entre diferentes partes do cluster é de 800G/1.6T, mas essas partes O a velocidade de conexão entre eles é de apenas 200G/400G.
Se o custo da computação em nuvem OpenAI for de cerca de US$ 1/A100 horas, então, nessas condições, o custo de treinamento é de cerca de US$ 63 milhões.
Isso não inclui todos os experimentos, falha de treinamento e outros custos, como coleta de dados, RLHF, custo humano, etc.
Se você levar em conta os fatores que acabamos de mencionar, o custo real é muito maior.
Além disso, isso deve partir da premissa de que outros podem comprar chips/redes/datacenters, incorrer em despesas de capital para construir esses sistemas e alugá-los para a OpenAI.
Mas hoje, a $ 2/H100 horas, o pré-treinamento pode ser feito em cerca de 8.192 H100s em apenas 55 dias a um custo de $ 21,5 milhões.
No entanto, o autor do relatório disse que até o final deste ano, pelo menos nove empresas terão clusters H100 superiores ao tamanho acima mencionado.
Embora nem todas essas empresas os usem para treinamento de modelos individuais, se houver, eles terão modelos maiores do que o GPT-4.
Por exemplo, a Meta terá mais de 100.000 H100 até o final deste ano, mas uma parte considerável deles será distribuída em seu próprio data center para inferência.
Mas seu maior aglomerado único ainda excederá 25.000 H100.
Em suma, até o final deste ano, muitas empresas terão recursos de computação suficientes para treinar modelos do tamanho do GPT-4.
Compensações em modelos de especialistas mistos
O MoE (Modelo Misto de Especialistas) é uma ótima maneira de reduzir a quantidade de parâmetros durante a inferência, aumentando-os ao mesmo tempo.
Mas isso é necessário para que cada token de treinamento codifique mais informações, porque é muito difícil obter tokens suficientes de alta qualidade.
Se a OpenAI realmente deseja buscar o melhor desempenho, eles precisam treinar o dobro de tokens para alcançá-lo.
Dito isto, a OpenAI fez algumas compensações.
Por exemplo, lidar com MoE durante a inferência é muito difícil porque todas as partes do modelo não são usadas a cada geração de token.
Isso significa que algumas peças podem estar inativas enquanto outras estão funcionando.
Essa situação pode reduzir significativamente a utilização ao atender usuários.
Os pesquisadores mostraram que o uso de 64-128 modelos especializados produz melhores perfis de perda do que o uso de 16 modelos especializados, mas isso é apenas uma pesquisa.
Há muitas razões para usar relativamente poucos modelos de especialistas. Uma das razões pelas quais a OpenAI escolheu 16 especialistas é porque mais modelos de especialistas são difíceis de generalizar em muitas tarefas.
Também é mais difícil alcançar a convergência com modelos mais especializados.
Em um processo de treinamento tão grande, a OpenAI optou por ser mais conservadora no número de modelos especialistas.
Além disso, usar menos modelos especialistas também ajuda na infraestrutura de inferência. Existem várias compensações e compensações difíceis ao mudar para uma arquitetura de inferência híbrida de modelo especializado.
O autor das últimas notícias começa com a discussão dos trade-offs básicos do raciocínio LLM e, em seguida, discute os problemas que a OpenAI enfrenta e as escolhas que ela faz.
Trocas de raciocínio
Antes de apresentar as compensações de inferência, a propósito, depois de conversar com todas as empresas LLM, o denunciante descobriu que a biblioteca de inferência FasterTransformer da NVIDIA é muito ruim e o TensorRT é ainda mais.
Isso significa que, se a Nvidia não modificar, as pessoas precisarão criar suas próprias soluções do zero.
Existem três compensações principais no raciocínio sobre grandes modelos de linguagem, a dimensão do tamanho do lote (número de usuários processados simultaneamente) e o número de chips usados, como segue:
1. Atraso
O modelo deve responder dentro de uma latência razoável. Ninguém quer esperar alguns segundos em um aplicativo de bate-papo antes de começar a receber a saída. O tempo de processamento para pré-preenchimento (tokens de entrada) e decodificação (tokens de saída) varia.
2. Rendimento
O modelo deve gerar um certo número de tokens por segundo. Os humanos precisam de cerca de 30 fichas por segundo. Para vários outros casos de uso, taxas de transferência mais baixas e mais altas são aceitáveis.
3. Taxa de utilização
O hardware que executa o modelo deve alcançar altas taxas de utilização, ou o custo será proibitivo. Embora uma latência mais alta e uma taxa de transferência mais baixa possam ser usadas para combinar mais solicitações do usuário para obter maior utilização, isso também aumenta a dificuldade.
A chave para o raciocínio LLM é equilibrar os dois pontos de largura de banda de memória e computação.
Simplificando, cada parâmetro deve ser lido e há 2 FLOPs associados a ele.
Portanto, a proporção da maioria dos chips (o H100 SXM tem apenas 3 TB/s de largura de banda de memória, mas o FP8 tem 2.000 TFLOPs/s) é completamente desequilibrado na inferência com um tamanho de lote de 1.
Se houver apenas um usuário (tamanho do lote 1), a largura de banda de memória necessária para ler cada parâmetro toda vez que um token é gerado domina o tempo de inferência, enquanto o tempo de computação é quase insignificante.
Para dimensionar com eficiência grandes modelos de linguagem para vários usuários, o tamanho do lote deve exceder 1. Vários usuários compartilham o custo dos parâmetros de leitura. Por exemplo, com um tamanho de lote de 256/512, você pode obter 512 FLOP/s ou 1024 FLOP/s por byte de memória lido.
Essa proporção está mais próxima do equilíbrio do H100 entre largura de banda de memória e FLOPS. Isso ajuda a alcançar maior utilização, mas ao custo de maior latência.
Muitos consideram a capacidade de memória um grande gargalo para inferência LLM, já que modelos grandes requerem vários chips para inferência, e capacidades de memória mais altas significam que podem caber em menos chips.
No entanto, é realmente melhor usar mais chips para que a latência seja menor, a taxa de transferência seja aumentada e tamanhos de lote maiores possam ser usados para maior utilização.
Compensações e infraestrutura de inferência GPT-4
Como mencionado acima, é muito difícil para o raciocínio GPT-4. Mas ser um mod MoE novamente apresenta um novo conjunto de dificuldades.
Cada passagem de encaminhamento que gera tokens pode ser roteada para um conjunto diferente de especialistas. Isso representa um problema com a compensação entre taxa de transferência, latência e utilização em lotes maiores.
O GPT-4 da OpenAI tem 16 especialistas, e cada encaminhamento passa rotas para 2 deles.
Isso significa que, se o tamanho do lote for 8, a leitura de cada parâmetro do especialista pode ter apenas um tamanho de lote de 1.
Pior ainda, isso pode significar que um especialista tem um tamanho de lote de 8, enquanto outros especialistas têm tamanhos de lote de 4, 1 ou 0.
Para cada token gerado, o algoritmo de roteamento envia passes de encaminhamento em diferentes direções, fazendo com que os atrasos entre tokens e tamanhos de lote especializados variem significativamente.
A infraestrutura de inferência é uma das principais razões pelas quais a OpenAI escolheu um número menor de especialistas. Se eles escolherem mais especialistas, a largura de banda da memória se tornará o gargalo para a inferência.
O cluster de inferência da OpenAI geralmente pode atingir um tamanho de lote de 4k+, o que significa que, mesmo com o melhor equilíbrio de carga entre especialistas, o tamanho do lote de especialistas é de apenas cerca de 500 ou mais. Isso requer uma quantidade muito grande de uso para ser alcançado.
De acordo com o denunciante, descobrimos que o OpenAI realiza inferência em um cluster de 128 GPUs. Eles têm vários desses clusters em vários data centers e localizações geográficas.
A inferência usa paralelismo de tensor de 8 vias e paralelismo de pipeline de 16 vias. Cada nó composto por 8 GPUs tem apenas cerca de 130B de parâmetros, ou menos de 30GB por GPU em FP16 e menos de 15GB em FP8/int8.
Isso permite a execução de inferência em um A100 de 40 GB, desde que o tamanho do cache KV para todos os lotes não seja muito grande.
Camadas contendo diferentes especialistas em nós diferentes não são divididas porque isso faria com que o tráfego de rede fosse muito irregular e recalcular o cache KV entre cada geração de token seria muito caro.
Para futuras extensões do modelo MoE e roteamento condicional, a maior dificuldade é como lidar com o roteamento do cache KV.
O modelo tem 120 camadas, então elas podem simplesmente ser distribuídas para 15 nós diferentes, mas como o primeiro nó precisa carregar e incorporar os dados, faz sentido colocar menos camadas no nó mestre do cluster de inferência de.
Além disso, existem alguns rumores sobre "decodificação especulativa" (a seguir), o que também explica por que os masternodes precisam conter menos camadas.
Custo de inferência
Comparado com o modelo Davinchi com 175 bilhões de parâmetros, o GPT-4 custa 3 vezes, embora seus parâmetros feed-forward aumentem apenas 1,6 vezes.
Isso ocorre principalmente porque o GPT-4 requer um cluster maior e obtém menor utilização.
Os autores acreditam que o custo de inferir o comprimento da sequência de 8k do GPT-4 em 128 A100s é de US$ 0,0049 por 1.000 tokens, enquanto o custo de inferir o comprimento da sequência de 8k do GPT-4 em 128 H100s é de US$ 0,0021 por 1.000 tokens.
Observe que isso pressupõe uma utilização razoavelmente alta e mantém o tamanho do lote alto.
Mas está claro que o OpenAI às vezes é muito subutilizado.
Se a OpenAI não tivesse feito isso, sua utilização teria sido menor e seus custos teriam mais do que dobrado.
Atenção multiconsulta
Além disso, o OpenAI também está usando o Multi-Query Attention (MQA).
Resumindo, apenas uma cabeça de atenção é necessária e o consumo de memória do cache KV pode ser significativamente reduzido.
Mesmo assim, o GPT-4 com um comprimento de 32k certamente não pode rodar em um A100 de 40GB, e há um limite máximo para o tamanho máximo do lote de 8k.
Processamento em lote contínuo
O OpenAI implementa tamanho de lote variável e processamento em lote contínuo.
Isso permite algum grau de latência máxima e otimiza o custo de inferência.
Decodificação especulativa
Foi revelado que o OpenAI usou "decodificação especulativa" no processo de raciocínio do GPT-4, que ainda tem 100% de incerteza.
A variação na latência de token para token, e a diferença ao fazer tarefas de recuperação simples versus tarefas mais complexas, parece sugerir que isso é possível, embora ainda haja muitas variáveis para ter certeza.
Aqui, o denunciante fez modificações apropriadas/adicionou alguns detalhes para explicar o texto em um estudo "Acelerando a inferência LLM com decodificação especulativa encenada" da DeepMind.
O primeiro é o pré-preenchimento, onde o texto da dica é inserido no modelo para gerar o cache KV e as probabilidades de log (distribuição de probabilidade de possíveis saídas de token) da primeira saída. Esse processo geralmente é rápido porque todo o texto do prompt pode ser processado em paralelo.
A segunda etapa é a decodificação. Selecione um token das probabilidades de log da saída e alimente-o no modelo, o que gerará as probabilidades de log do próximo token. Repita esse processo até que o número desejado de tokens seja gerado.
Como a decodificação deve ocorrer sequencialmente, cada vez que os pesos precisam ser transmitidos pela unidade de computação para gerar um único token. Portanto, este segundo estágio é muito computacionalmente intensivo (ou seja, calcula FLOPs/bytes de largura de banda de memória) ao executar em mini-lotes. Portanto, a decodificação é geralmente a parte mais cara da geração autorregressiva.
É por isso que o token de entrada é muito mais barato que o token de saída nas chamadas de API do OpenAI.
A ideia básica da "decodificação especulativa" é usar um modelo de rascunho menor e mais rápido para decodificar vários tokens antecipadamente e, em seguida, alimentá-los no modelo preditivo como um lote.
Se as previsões do modelo de rascunho estiverem corretas, ou seja, o modelo maior concorda com essas previsões, vários tokens podem ser decodificados usando um único lote, o que economiza muita largura de banda de memória e tempo.
No entanto, se o modelo maior rejeitar um token previsto pelo modelo de rascunho, o lote restante é descartado e o algoritmo reverte naturalmente para a decodificação token por token padrão.
A "decodificação especulativa" também pode ser acompanhada por um esquema de amostragem de rejeição para amostrar da distribuição original. Vale a pena notar que isso só é útil em configurações de pequenos lotes em que a largura de banda é o gargalo.
A decodificação especulativa, que troca computação por largura de banda, é um alvo atraente de engenharia de desempenho por dois motivos principais:
Primeiro, não reduz a qualidade do modelo. Em segundo lugar, as melhorias de desempenho que oferece são muitas vezes ortogonais a outras abordagens, uma vez que seu desempenho vem da conversão de "execução sequencial" para "execução paralela".
O método de inferência atual é uma sequência separada de previsões em lote. No entanto, essa abordagem não é bem dimensionada para grandes lotes ou alinhamentos de modelo de baixo calado.
Intuitivamente, a probabilidade de dois modelos concordarem em sequências contiguamente longas de tokens é exponencialmente baixa, implicando que os ganhos da decodificação especulativa diminuem rapidamente à medida que a densidade aritmética aumenta.
O denunciante acredita que, se o OpenAI usar "decodificação especulativa", eles só poderão usá-lo em sequências de cerca de 4 tokens.
Como um aparte, toda a conspiração sobre a castração do OpenAI, resultando em GPT-4 de qualidade inferior, pode ser simplesmente porque eles sujeitam seus modelos preditivos a sequências de baixa probabilidade de modelos de "decodificação especulativa".
Também foi especulado que Bard também usa "decodificação especulativa" porque o Google espera que toda a sequência seja totalmente gerada antes de enviá-la ao usuário, mas, na opinião do denunciante, esse palpite está completamente incorreto.
Visual Multimodal
Os recursos multimodais visuais são a parte menos impressionante do GPT-4, pelo menos em comparação com as principais pesquisas.
Claro, ninguém ainda comercializou os resultados da pesquisa LLM multimodal.
O denunciante disse que é um codificador visual independente do codificador de texto, além de atenção cruzada, a arquitetura é semelhante ao Flamingo e mais parâmetros foram adicionados ao GPT-4 1.8T.
A capacidade multimodal do GPT-4 é ajustada com cerca de 2 trilhões de tokens após o pré-treinamento de texto.
Diz-se que, no modelo visual, o OpenAI originalmente esperava treinar do zero, mas como não era maduro o suficiente, não teve escolha a não ser ajustar o modelo de treinamento de texto.
E o modelo de próxima geração GPT-5, cujo treinamento deve treinar o modelo de visão do zero, e ser capaz de gerar imagens, e até gerar áudio.
Um dos principais propósitos dessa habilidade visual é permitir que agentes autônomos leiam páginas da web e transcrevam imagens, vídeos.
Vale ressaltar que os dados usados pelo OpenAI para treinar modelos multimodais incluem: "dados conjuntos" (LaTeX/texto), capturas de tela de páginas da web, vídeos do YouTube (quadros de amostragem e execução do Whisper para obter legendas).
Um fato interessante sobre a otimização excessiva de LLMs é que os modelos visuais têm um custo de IO diferente dos modelos textuais. No modelo visual, o IO de carregamento de dados é cerca de 150 vezes maior que o do modelo de texto.
Cada token no modelo visual tem 600 bytes e o texto tem 4 bytes/token.
Portanto, isso requer muito trabalho em termos de compactação de imagem. Isso é extremamente importante para os fornecedores de hardware, pois eles otimizarão o hardware daqui a 2 a 3 anos em relação aos casos de uso e proporções do LLM.
Eles podem se encontrar em um mundo onde cada modelo possui recursos visuais e de áudio poderosos.
Eles podem se sentir mal adaptados à arquitetura.
Em geral, a arquitetura definitivamente superará os modelos densos simplificados baseados em texto e os modelos MoE que vemos hoje.
Referências