paint-brush
O algoritmo do transformador com a menor complexidade de tempo ideal possívelby@thomascherickal
702
702

O algoritmo do transformador com a menor complexidade de tempo ideal possível

micro117m2024/05/26
Read on Terminal Reader

Houve alguns avanços incríveis em transformadores como DPO, LoRa, etc. Mas o algoritmo básico do transformador também foi aprimorado! Veremos os transformadores funcionarem em um nível totalmente novo. A magnitude dessas descobertas não pode ser superestimada! Isto é revolucionário.
featured image - O algoritmo do transformador com a menor complexidade de tempo ideal possível
micro1 HackerNoon profile picture
0-item
1-item


Comparando Atenção, Mamba, Jamba e xLSTM

Prólogo

Neste artigo estamos falando apenas sobre complexidade de tempo - deliberadamente.


Para complexidade de espaço, consulte meu artigo sobre transformadores de 1 bit, disponível aqui:

Introdução

Estamos avançando rumo ao futuro no que diz respeito à tecnologia de IA generativa e os algoritmos por trás dos modelos de linguagem grande não são exceção. Neste artigo, cobriremos três dos desenvolvimentos mais interessantes recentemente no campo da IA generativa e falaremos sobre eles em detalhes. Um deles também alcançou a complexidade de tempo ideal para executar um algoritmo de modelo de linguagem grande. Em outras palavras, um desenvolvimento recente tornou-se o algoritmo de transformador LLM mais rápido possível - pelos nossos modelos atuais, não é possível ir mais rápido do que isso no que diz respeito à complexidade de tempo assintótico, exceto por otimizações de tempo constante. Como estamos lidando com centenas de bilhões de parâmetros, a aceleração das constantes pode ser bastante grande! Espero que você esteja tão animado quanto eu porque será um passeio emocionante!


O Algoritmo Titular - o Transformador Baseado na Atenção

Todo mundo está familiarizado com o papel seminal de 2017 Atenção é tudo que você precisa, mas vou resumi-lo de qualquer maneira para que os recém-chegados tenham uma ideia mais clara do que estamos falando.


Este é o link para o artigo de pesquisa:

Atenção é tudo que você precisa

Da introdução do artigo:

Redes neurais recorrentes, memória de longo curto prazo e redes neurais recorrentes fechadas em particular, foram firmemente estabelecidas como abordagens de última geração em modelagem de sequência e problemas de transdução, como modelagem de linguagem e tradução automática.


Desde então, numerosos esforços continuaram a ampliar os limites dos modelos de linguagem recorrentes e das arquiteturas de codificador-decodificador.


Os modelos recorrentes normalmente fatoram a computação ao longo das posições dos símbolos das sequências de entrada e saída.


Alinhando as posições às etapas do tempo de cálculo, elas geram uma sequência de estados ocultos ℎ𝑡, em função do estado oculto anterior ℎ𝑡−1 e da entrada para a posição 𝑡.


Essa natureza inerentemente sequencial impede a paralelização em exemplos de treinamento, o que se torna crítico em comprimentos de sequência mais longos, pois as restrições de memória limitam o processamento em lote entre exemplos.


Trabalhos recentes alcançaram melhorias significativas na eficiência computacional por meio de truques de fatoração e computação condicional, ao mesmo tempo que melhoraram o desempenho do modelo no caso desta última.


A restrição fundamental da computação sequencial, entretanto, permanece.


Os mecanismos de atenção tornaram-se parte integrante da modelagem de sequências convincentes e modelos de transdução em diversas tarefas, permitindo a modelagem de dependências independentemente de sua distância nas sequências de entrada ou saída.


Em todos os casos, exceto em alguns casos, tais mecanismos de atenção são usados em conjunto com uma rede recorrente.


Neste trabalho propomos o Transformer, uma arquitetura de modelo que evita a recorrência e depende inteiramente de um mecanismo de atenção para desenhar dependências globais entre entrada e saída.


O Transformer permite uma paralelização significativamente maior e pode atingir um novo estado da arte em qualidade de tradução após ser treinado por apenas doze horas em oito GPUs P100.


E como sabemos, os transformadores GPT-1, GPT-2, GPT-3 e GPT 3.5 logo revolucionaram a IA generativa para sempre.


De repente, as máquinas podiam falar um inglês aparentemente humano.


Este foi o diagrama clássico que dominou artigos e boletins de notícias de pesquisa nos dois anos seguintes:

A arquitetura seminal do transformador.


Então o GPT-4 foi lançado - e a vida nunca mais seria a mesma.


Tínhamos cruzado um ponto de inflexão.


Porém, esses transformadores eram caros, lentos para treinar e difíceis de implantar devido aos seus custos operacionais extremamente elevados.


A complexidade de tempo do algoritmo Transformer era quadrática, ou O(n*n) onde n era o número de parâmetros de entrada .


Para um modelo de transformador padrão com 𝐿 camadas, a complexidade de tempo do algoritmo de inferência é 𝑂( L*n*n*d ) onde L era o número de camadas, n o número de tokens de entrada e d a profundidade do transformador .


Este parecia ser o estado da arte – por um tempo.


A quantização foi introduzida em outro artigo já em 2021 e parecia ser o próximo mecanismo de última geração (consulte a seção Prelúdio ).


Mas logo estávamos prestes a ter outro candidato.


Bem-vindo ao Algoritmo Mamba

Este foi o artigo de pesquisa relevante:



Mamba: Modelagem de Sequência de Tempo Linear com Espaços de Estado Seletivos


Do resumo do artigo de pesquisa:


Os modelos básicos, que agora alimentam a maioria das aplicações interessantes em aprendizagem profunda, são quase universalmente baseados na arquitetura Transformer e em seu módulo de atenção central.


Muitas arquiteturas de tempo subquadrático, como atenção linear, convolução fechada e modelos recorrentes e modelos de espaço de estado estruturado (SSMs), foram desenvolvidas para resolver a ineficiência computacional dos Transformers em sequências longas, mas não tiveram um desempenho tão bom quanto a atenção em modalidades importantes, como como linguagem.


Identificamos que um dos principais pontos fracos de tais modelos é a sua incapacidade de realizar raciocínio baseado em conteúdo e de fazer diversas melhorias.


Primeiro, simplesmente deixar os parâmetros SSM serem funções da entrada resolve sua fraqueza com modalidades discretas, permitindo que o modelo propague ou esqueça seletivamente informações ao longo da dimensão do comprimento da sequência, dependendo do token atual.


Em segundo lugar, mesmo que esta mudança impeça o uso de convoluções eficientes, projetamos um algoritmo paralelo com reconhecimento de hardware em modo recorrente.


Integramos esses SSMs seletivos em uma arquitetura de rede neural ponta a ponta simplificada, sem atenção ou mesmo blocos MLP (Mamba).


O Mamba desfruta de inferência rápida (rendimento 5x maior do que os Transformers) e escalonamento linear no comprimento da sequência, e seu desempenho melhora em dados reais com sequências de até um milhão de comprimentos.


Como espinha dorsal do modelo de sequência geral, o Mamba alcança desempenho de última geração em diversas modalidades, como linguagem, áudio e genômica.


Na modelagem de linguagem, nosso modelo Mamba-3B supera Transformers do mesmo tamanho e corresponde a Transformers com o dobro de seu tamanho, tanto no pré-treinamento quanto na avaliação downstream.

De repente



De repente, tínhamos um novo concorrente na cidade!


As principais vantagens do algoritmo do transformador Mamba foram:



  1. Arquitetura Híbrida :

    O Mamba combinou as camadas Transformer e Mamba, permitindo melhor desempenho e maior rendimento, mantendo um espaço de memória gerenciável.


  2. Desafios abordados :

    • Eficiência de memória e computação : o Mamba atendeu aos altos requisitos de memória e computação dos Transformers, especialmente para contextos longos.

    • Estado resumido : Ao contrário dos Transformers, o Mamba forneceu um único estado resumido, permitindo inferência mais rápida.


  3. Detalhes da arquitetura :

    • Camadas de transformador : Mamba incorporou camadas de transformador.
    • Camadas Mamba : Mamba introduz camadas de modelagem de espaço de estado (SSM), que lidam com eficiência com contextos longos.
    • Mistura de especialistas (MoE) : Mamba usa camadas MoE para aumentar a capacidade do modelo sem aumentar significativamente os requisitos de computação.


  4. Desempenho :

    O Mamba teve um desempenho comparável aos modelos existentes, como Mixtral-8x7B e Llama-2 70B, ao mesmo tempo em que suporta comprimentos de contexto de até 256 mil tokens.


  5. Eficiência : O rendimento do Mamba foi 3x maior que o do Mixtral-8x7B para contextos longos e cabia em uma única GPU mesmo em contextos grandes.


A arquitetura Mamba representa um avanço significativo em grandes modelos de linguagem, combinando os pontos fortes das abordagens Transformer e SSM.


No entanto, à medida que os testes continuaram, descobriu-se que o algoritmo Mamba não era um candidato adequado para todos os casos de uso.


Em particular, o algoritmo Mamba falhou miseravelmente quando apresentado ao conjunto de dados IMDB.


No entanto, a arquitetura ainda era de última geração e foi considerada extremamente útil em casos de uso de visão.


Você pode ver uma implementação em Python aqui:


E esta é uma excelente explicação do algoritmo Mamba com a teoria também fornecida.

E aqui está a implementação padrão do Mamba no PyPI:


O algoritmo Mamba teve seu dia e ainda é uma área de pesquisa altamente ativa. Um sucessor logo foi lançado, mas deixaremos o melhor para o final.


Passaremos para o próximo concorrente - o algoritmo xLSTM


O algoritmo xLSTM

Você pode consultar o artigo de pesquisa aqui:

xLSTM: Memória Estendida de Longo Prazo - arXiv .


Do resumo do artigo de pesquisa:

Na década de 1990, o carrossel e o gate de erros constantes foram introduzidos como as ideias centrais da Long Short-Term Memory (LSTM).


Desde então, os LSTMs resistiram ao teste do tempo e contribuíram para inúmeras histórias de sucesso de aprendizagem profunda, em particular, constituíram os primeiros Grandes Modelos de Linguagem (LLMs).


No entanto, o advento da tecnologia Transformer com autoatenção paralelizável em seu núcleo marcou o início de uma nova era, ultrapassando os LSTMs em escala.


Levantamos agora uma questão simples: até onde chegamos na modelagem de linguagem ao escalar LSTMs para bilhões de parâmetros, aproveitando as técnicas mais recentes dos LLMs modernos, mas mitigando as limitações conhecidas dos LSTMs?


Primeiramente, introduzimos portas exponenciais com técnicas apropriadas de normalização e estabilização.


Em segundo lugar, modificamos a estrutura da memória LSTM, obtendo:


(i) sLSTM com memória escalar, atualização escalar e nova mistura de memória,


(ii) mLSTM que é totalmente paralelizável com uma memória matricial e uma regra de atualização de covariância.


A integração dessas extensões LSTM em backbones de blocos residuais produz blocos xLSTM que são então empilhados residualmente em arquiteturas xLSTM.


O gate exponencial e as estruturas de memória modificadas aumentam os recursos do xLSTM para um desempenho favorável quando comparado aos transformadores e modelos de espaço de estado de última geração, tanto em desempenho quanto em escala.


xLSTM foi um novo nascer do sol para o modelo LSTM


O algoritmo Long Short-Term Memory (LSTM) foi altamente útil em sua época e teve seu quinhão de sucessos.


O xLSTM usou o mesmo modelo, mas em uma arquitetura totalmente diferente.


Esta foi a principal inovação, resumida neste diagrama do artigo de pesquisa:


As principais vantagens do xLSTM foram:


Vantagens do xLSTM quando comparado ao algoritmo Transformer:

  1. Lidando com sequências longas :

    • O xLSTM foi projetado especificamente para lidar com longas sequências com seus mecanismos de controle que controlavam o fluxo de informações. Isto tornou-o mais eficaz na captura de dependências de longo prazo em dados sequenciais em comparação com o LSTM tradicional.




  2. Eficiência Computacional :

    • O xLSTM poderia ser mais eficiente computacionalmente para determinadas tarefas, especialmente ao lidar com conjuntos de dados menores ou quando o comprimento da sequência não fosse excessivamente grande.

    • Os transformadores, por outro lado, exigiam recursos computacionais significativos devido ao seu mecanismo de autoatenção, que era escalonado quadraticamente com o comprimento da sequência.




  3. Uso de memória :

    • O xLSTM geralmente exigia menos memória que os Transformers.

    • O mecanismo de autoatenção em Transformers exigia o armazenamento de grandes matrizes de atenção, que poderiam consumir muita memória, especialmente para sequências longas.


  4. Estabilidade de treinamento :

    • O xLSTM poderia ser mais estável durante o treinamento devido à sua natureza recorrente e aos mecanismos de controle que ajudaram a mitigar o problema do gradiente de fuga.

    • Os transformadores, embora poderosos, às vezes podem ser mais difíceis de treinar e podem exigir um ajuste cuidadoso de hiperparâmetros e técnicas de regularização.


  5. Simplicidade e Interpretabilidade :

    • Os modelos xLSTM podem ser mais simples de entender e interpretar em comparação com os Transformers.

    • A natureza recorrente dos LSTMs tornou mais fácil rastrear o fluxo de informações através da rede, enquanto os mecanismos de atenção nos Transformers poderiam ser mais abstratos e mais difíceis de interpretar.


  6. Desempenho em pequenos conjuntos de dados :

    • O xLSTM poderia ter um desempenho melhor em pequenos conjuntos de dados ou quando os dados rotulados eram limitados.

    • Os transformadores normalmente exigiam grandes quantidades de dados para atingir todo o seu potencial, tornando o xLSTM uma melhor escolha em cenários com disponibilidade limitada de dados

      .

  7. Dados sequenciais :

    • Para certos tipos de dados sequenciais, como séries temporais ou certos tipos de tarefas de processamento de linguagem natural, o xLSTM pode ter fornecido melhor desempenho devido ao seu design inerente para lidar com sequências.


No entanto, era importante observar que os Transformers tinham seu próprio conjunto de vantagens, como melhores recursos de paralelização, desempenho superior em grandes conjuntos de dados e resultados de última geração em muitas tarefas de PNL.


A escolha entre xLSTM e Transformer deve ser baseada nos requisitos e restrições específicos da tarefa em questão.


Você pode ver uma implementação do xLSTM no PyTorch aqui:


Você pode ver uma explicação detalhada do xLSTM aqui:

Este é um bom resumo de seu status atual:





Mas houve um sucessor do Mamba que atingiu o Santo Graal - a complexidade de tempo ideal para um algoritmo LLM


Jamba - o sucessor do Mamba que venceu com força!


O artigo de pesquisa pode ser encontrado aqui:

Jamba: um modelo de linguagem híbrido Transformer-Mamba


Do resumo do artigo de pesquisa:


Apresentamos Jamba, um novo modelo de linguagem de base grande baseado em uma nova arquitetura híbrida Transformer-Mamba de mistura de especialistas (MoE).


Especificamente, o Jamba intercala blocos de camadas Transformer e Mamba, aproveitando os benefícios de ambas as famílias de modelos.


MoE é adicionado em algumas dessas camadas para aumentar a capacidade do modelo e, ao mesmo tempo, manter gerenciável o uso de parâmetros ativos.


Essa arquitetura flexível permite configurações específicas para recursos e objetivos.


Na configuração particular que implementamos, acabamos com um modelo poderoso que cabe em uma única GPU de 80GB.


Construído em grande escala, o Jamba oferece alto rendimento e pequeno consumo de memória em comparação com os Transformers vanilla e, ao mesmo tempo, desempenho de última geração em benchmarks de modelos de linguagem padrão e avaliações de longo contexto.


Notavelmente, o modelo apresenta resultados sólidos para comprimentos de contexto de até 256 mil tokens.


Estudamos várias decisões arquitetônicas, como combinar camadas Transformer e Mamba e como misturar especialistas, e mostramos que algumas delas são cruciais na modelagem em larga escala.


Também descrevemos várias propriedades interessantes destas arquiteturas que o treinamento e avaliação do Jamba revelaram, e planejamos liberar pontos de verificação de várias execuções de ablação, para encorajar uma exploração mais aprofundada desta nova arquitetura.


Disponibilizamos publicamente os pesos da nossa implementação do Jamba sob uma licença permissiva.



A implementação está disponível no repositório HuggingFace aqui:


Modelo: https://huggingface.co/ai21labs/Jamba-v0.1



  1. Comparação com outros modelos :


Em resumo, a arquitetura híbrida do Jamba combina os pontos fortes das camadas Transformers e Mamba, resultando em desempenho e escalabilidade impressionantes.


O diagrama principal a ser lembrado é aquele apresentado neste artigo de pesquisa acima:



A intercalação dos modelos Mamba e Transformer leva a um aumento incrível na Complexidade do Tempo, que é lindamente resumido no artigo abaixo:


Mamba e Jamba - Simplesmente Explicados

  • Autor : Nimrita Koul

  • Data : 1º de abril de 2024


  • Resumo :

    • Jamba é o primeiro modelo de linguagem grande baseado em Mamba de nível de produção introduzido pela AI21.


    • Ele combina os pontos fortes das arquiteturas Transformer e Mamba.


      • Os modelos baseados em transformadores lutam com sequências longas devido à complexidade do tempo de treinamento de O(n²) .


      • A arquitetura Mamba oferece complexidade de tempo de treinamento linear ( O(n) ) e tempo de inferência constante ( O(1) ).


      • Mamba é baseado na arquitetura State Space Model (SSM).


      • SSMs usam variáveis de estado para descrever um sistema usando equações diferenciais ou de diferença.


      • A abordagem híbrida do Mamba visa abordar as limitações dos modelos existentes.



Você pode ler o artigo completo aqui:

Mamba e Jamba — Simplesmente Explicado , por Nimrita Koul, no Medium.com.


O limite ideal foi alcançado!

O ponto principal a ser observado aqui é que, para treinamento, o algoritmo deve examinar cada token de entrada pelo menos uma vez, resultando em uma complexidade de tempo de O(n).


Além disso, a velocidade mais rápida possível que a inferência pode atingir para qualquer modelo LLM é O(1) - tempo constante, independente do comprimento dos tokens (uma conquista incrível)!


Ambos os limites foram alcançados no caso do algoritmo Jamba!


Portanto, sob melhorias em tempo constante - que ainda podem ser muito altas (esses números estão na casa das centenas de bilhões):


Jamba atingiu o limite ideal de complexidade de tempo para um algoritmo de transformador!


Sob as condições de sistema dadas, a menos que uma nova tecnologia seja introduzida (computação quântica, qualquer uma), simplesmente não podemos ter uma complexidade de tempo assintótica mais rápida!


O que é um resultado muito significativo!


Jamba é o algoritmo de transformador mais promissor até hoje!


O anúncio oficial dos laboratórios A121:

Outro bom artigo no Medium on Jamba:

Uma das melhores implementações do Jamba disponíveis no momento:


Mais uma vez, o modelo Jamba do HuggingFace Hub:

Conclusão

Assim, o Jamba atinge a complexidade de tempo máxima que pode ser alcançada por um algoritmo de transformador de corrente no sistema existente, para uma variação de nível constante. Repita; as constantes podem ser muito grandes, porque são da ordem de centenas de bilhões de termos! No entanto, esta ainda é uma conquista substancial. E não há limites para onde a pesquisa sobre isso pode ir, especialmente quando combinada com DPO (otimização de preferência direta) e quantização - veja o Epílogo para mais informações.

A partir de agora, literalmente não há limites!


Epílogo:


Há um lado disso que ninguém parece estar trabalhando abertamente.


Os modelos Mamba, xLSTM e Jamba podem ser quantizados com precisão de 1 bit?


Claro!


Mal posso esperar para ver as melhorias de desempenho do Mamba e do Jamba, uma vez quantizadas em um bit! Ou 1,58 bits {-1, 0, 1}.


Mais uma vez, consulte este artigo para obter mais detalhes:


https://hackernoon.com/why-1-bit-transformers-will-change-the-world


O futuro desta tecnologia será incrivelmente emocionante!


Que a alegria e a emoção de trabalhar nesta área permaneçam sempre com você!


Saúde!


Tempos emocionantes estão por vir!


Referências:

Além dos mencionados explicitamente no artigo acima:

  1. Transformer-XL: modelos de linguagem atentos além de um contexto de comprimento fixo
  2. Longformer: o transformador de documentos longos
  3. Reformer: O Transformador Eficiente
  4. Linformer: Autoatenção com Complexidade Linear
  5. Modelos de espaço de estados: uma estrutura geral para modelagem de dados de séries temporais
  6. S4: Modelagem de Sequência com Espaços de Estados Estruturados
  7. Sobre a eficiência computacional de grandes modelos de linguagem
    • Autores anônimos. (Ano não especificado). [Sobre a eficiência computacional de modelos de grandes linguagens](URL não fornecido).
  8. Transformadores Eficientes: Uma Pesquisa
  9. Quantização e treinamento de redes neurais para inferência eficiente apenas de aritmética inteira
  10. Q-BERT: Quantização de precisão ultrabaixa baseada em Hessian de BERT
  11. BERT: Pré-treinamento de transformadores bidirecionais profundos para compreensão da linguagem
  12. GPT-3: Modelos de linguagem são aprendizes rápidos
  13. RoBERTa: uma abordagem de pré-treinamento BERT robustamente otimizada
  14. ALBERT: Um Lite BERT para aprendizagem auto-supervisionada de representações linguísticas
  15. T5: Explorando os limites da aprendizagem por transferência com um transformador unificado de texto em texto
  16. DistilBERT, uma versão destilada do BERT: menor, mais rápido, mais barato e mais leve




E não se esqueça da Complexidade Espacial! Quase igualmente importante!


Para o Prólogo e Epílogo

Para quantização, definitivamente vale a pena ler este artigo:

  1. Artigo de pesquisa - BitNet: Dimensionando transformadores de 1 bit para modelos de linguagem grande :

    • Resumo : O tamanho crescente de grandes modelos de linguagem tem colocado desafios para implantação e levantado preocupações sobre o impacto ambiental devido ao alto consumo de energia. Neste trabalho, apresentamos BitNet , uma arquitetura Transformer de 1 bit escalável e estável projetada para grandes modelos de linguagem. Especificamente, apresentamos o BitLinear como um substituto imediato para a camada nn.Linear para treinar pesos de 1 bit do zero. Resultados experimentais em modelagem de linguagem mostram que o BitNet alcança desempenho competitivo enquanto reduz substancialmente o consumo de memória e o consumo de energia em comparação com métodos de quantização de 8 bits de última geração e linhas de base do Transformer FP16. Além disso, o BitNet exibe uma lei de escala semelhante aos Transformers de precisão total , sugerindo seu potencial para escalabilidade eficaz para modelos de linguagem ainda maiores, mantendo a eficiência e os benefícios de desempenho.

      Leia o artigo de pesquisa completo


      https://arxiv.org/abs/2310.11453



E a modelo no HuggingFace:

  1. Repositório Hugging Face - BitNet b1.58-3B Quantizado :


Uma coisa sobre o futuro: será emocionante!