Velocidade do token de previsão dobrou!Novo algoritmo de decodificação do Transformer está pegando fogo, da equipe Little Llama|O código foi de código aberto
A nova pesquisa da equipe Little Llama está pegando fogo.
Eles desenvolveram um novo algoritmo de decodificação que pode acelerar a inferência LLM, fazendo com que o modelo preveja o número de 100 tokens 1,5-2,3 vezes mais rápido.
Por exemplo, esta é a velocidade com que o mesmo modelo (LLaMa-2-Chat 7B) responde à mesma pergunta do utilizador (que métodos Sócrates usou para desafiar as ideias dominantes do seu tempo?):
À esquerda está o algoritmo original, que leva 18,12s e é de cerca de 35 tokens por segundo.
O algoritmo à direita leva 10,4s e cerca de 60 tokens por segundo, o que é significativamente mais rápido. **
Em termos simples, este é um algoritmo de decodificação paralelo chamado “Lookahead Decoding”.
Ele usa principalmente o método iterativo de Jacobi para quebrar a dependência de ordem na decodificação autorregressiva pela primeira vez (como todos sabemos, modelos grandes são basicamente baseados em Transformers autorregressivos).
Isso elimina a necessidade de um modelo de rascunho ou armazenamento de dados, reduzindo o número de etapas de decodificação e acelerando a inferência LLM.
Atualmente, o autor forneceu uma implementação compatível com huggingface/transformers, que pode facilmente melhorar o desempenho da geração nativa de HF com apenas algumas linhas de código.
Alguns internautas disseram:
É uma abordagem muito interessante, eu não esperava que funcionasse tão bem em uma configuração discreta.
Outros dizem que isso nos aproxima um pouco mais do “modelo instantâneo grande”.
Como?
Importância da Decodificação Autoregressiva Acelerada
Seja GPT-4 ou LLaMA, os grandes modelos atuais são baseados em decodificação autorregressiva, e a velocidade de inferência sob este método é realmente muito lenta.
Porque cada etapa de decodificação autorregressiva gera apenas um token de cada vez.
Desta forma, o quão alto o atraso da saída do modelo depende do comprimento da resposta.
Para piorar a situação, essa maneira de fazer isso também desperdiça o poder de processamento paralelo das GPUs modernas: a utilização da GPU é baixa.
Para os chatbots, é claro, quanto menor a latência, mais rápida a resposta é melhor (especialmente quando se lida com longas sequências de respostas).
Anteriormente, alguém propôs um algoritmo de decodificação autorregressiva acelerada chamado decodificação especulativa, e a ideia geral é adotar uma estratégia de adivinhação e verificação, ou seja, deixar o modelo de rascunho prever vários tokens futuros potenciais primeiro, e então o LLM original será verificado em paralelo.
Este método pode reduzir o número de etapas de decodificação “por boa sorte” e, assim, reduzir a latência.
No entanto, também há muitos problemas, como o efeito é limitado pela taxa de aceitação do token, e é complicado criar um modelo de rascunho preciso, que muitas vezes requer treinamento adicional e ajuste cuidadoso.
Aqui, a equipa da Llama propõe um novo algoritmo de descodificação paralela preciso, a descodificação avançada, para superar estes desafios.
A descodificação avançada quebra a dependência da ordem
A decodificação direta funciona porque os autores observam:
Embora não seja viável decodificar vários novos tokens em uma etapa, os LLMs geram vários n-gramas disjuntos em paralelo – o que pode ser adequado para gerar partes futuras da sequência.
Isto pode ser conseguido tratando a decodificação autorregressiva como resolvendo equações não lineares e decodificando-as em paralelo usando o método iterativo Jacobi clássico.
No processo, capturamos os n-gramas gerados, validamo-los e integramo-los na sequência, se apropriado, permitindo assim a geração de n tokens em menos de n passos.
De acordo com o autor, a razão pela qual a decodificação avançada pode “se destacar” é principalmente porque:
É executado sem a necessidade de um modelo de rascunho, simplificando a implantação.
O segundo é reduzir linearmente o número de etapas de decodificação em relação a cada log de etapas (FLOPs) e, finalmente, alcançar uma previsão de número de token 1,5-2,3 vezes mais rápida em uma única GPU e conjuntos de dados diferentes.
Além disso, ele permite que mais FLOP (maior que 1 GPU) seja alocado para obter maior degradação de latência em aplicativos sensíveis à latência, embora com retornos decrescentes.
Veja como começar:
Motivação para decodificação avançada Jacobi usa um método iterativo de ponto fixo para decodificar todos os tokens futuros de uma só vez ao resolver sistemas não lineares.
A aceleração do relógio é pouco visível neste processo.
, duração 00:57
A decodificação direta tira proveito das capacidades de decodificação de Jacobi, coletando e armazenando em cache os n-gramas gerados pelas trajetórias iterativas de Jacobi.
A figura abaixo mostra o processo de coleta de 2 gramas por decodificação Jacobi e, em seguida, verificar e acelerar a decodificação.
, duração 02:20
Cada etapa de descodificação tem 2 ramificações:
O ramo avançado mantém uma janela 2D de tamanho fixo para gerar n-gramas com base nas trajetórias de Jacobi;
Os autores implementaram uma máscara atten 2 em 1 para alavancar ainda mais o poder de computação paralela das GPUs.
4. A descodificação direta pode gerar e verificar um número muito grande de n-gramas de uma só vez, sem a necessidade de uma fonte externa. Embora isso aumente o custo da etapa, também aumenta a probabilidade de aceitar n-gramas mais longos.
Em outras palavras, a decodificação direta permite mais gatilhos para reduzir a latência.
O autor examina o comportamento de escala entre flops vs redução de latência e encontra a regra de escala:
Quando os n-gramas são grandes o suficiente (por exemplo, 11 gramas), aumentar as suposições futuras do token (ou seja, o tamanho da janela) de forma exponencial pode reduzir linearmente o número de etapas de decodificação.
Introdução ao autor
Há um total de 4 autores deste método, todos da equipa Llama.
Entre eles estão dois chineses:
Yichao Fu e Hao Zhang, que se formaram na CMU com um Ph.D. e um mestrado na Shanghai Jiao Tong University, são agora professores assistentes na Universidade da Califórnia, San Diego.
Links de referência:
[1]
[2]
[3]
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
Velocidade do token de previsão dobrou!Novo algoritmo de decodificação do Transformer está pegando fogo, da equipe Little Llama|O código foi de código aberto
Fonte original: Quantum Dimension
A nova pesquisa da equipe Little Llama está pegando fogo.
Eles desenvolveram um novo algoritmo de decodificação que pode acelerar a inferência LLM, fazendo com que o modelo preveja o número de 100 tokens 1,5-2,3 vezes mais rápido.
À esquerda está o algoritmo original, que leva 18,12s e é de cerca de 35 tokens por segundo.
O algoritmo à direita leva 10,4s e cerca de 60 tokens por segundo, o que é significativamente mais rápido. **
Ele usa principalmente o método iterativo de Jacobi para quebrar a dependência de ordem na decodificação autorregressiva pela primeira vez (como todos sabemos, modelos grandes são basicamente baseados em Transformers autorregressivos).
Isso elimina a necessidade de um modelo de rascunho ou armazenamento de dados, reduzindo o número de etapas de decodificação e acelerando a inferência LLM.
Atualmente, o autor forneceu uma implementação compatível com huggingface/transformers, que pode facilmente melhorar o desempenho da geração nativa de HF com apenas algumas linhas de código.
Importância da Decodificação Autoregressiva Acelerada
Seja GPT-4 ou LLaMA, os grandes modelos atuais são baseados em decodificação autorregressiva, e a velocidade de inferência sob este método é realmente muito lenta.
Porque cada etapa de decodificação autorregressiva gera apenas um token de cada vez.
Desta forma, o quão alto o atraso da saída do modelo depende do comprimento da resposta.
Para piorar a situação, essa maneira de fazer isso também desperdiça o poder de processamento paralelo das GPUs modernas: a utilização da GPU é baixa.
Para os chatbots, é claro, quanto menor a latência, mais rápida a resposta é melhor (especialmente quando se lida com longas sequências de respostas).
Anteriormente, alguém propôs um algoritmo de decodificação autorregressiva acelerada chamado decodificação especulativa, e a ideia geral é adotar uma estratégia de adivinhação e verificação, ou seja, deixar o modelo de rascunho prever vários tokens futuros potenciais primeiro, e então o LLM original será verificado em paralelo.
Este método pode reduzir o número de etapas de decodificação “por boa sorte” e, assim, reduzir a latência.
No entanto, também há muitos problemas, como o efeito é limitado pela taxa de aceitação do token, e é complicado criar um modelo de rascunho preciso, que muitas vezes requer treinamento adicional e ajuste cuidadoso.
Aqui, a equipa da Llama propõe um novo algoritmo de descodificação paralela preciso, a descodificação avançada, para superar estes desafios.
A descodificação avançada quebra a dependência da ordem
A decodificação direta funciona porque os autores observam:
Embora não seja viável decodificar vários novos tokens em uma etapa, os LLMs geram vários n-gramas disjuntos em paralelo – o que pode ser adequado para gerar partes futuras da sequência.
Isto pode ser conseguido tratando a decodificação autorregressiva como resolvendo equações não lineares e decodificando-as em paralelo usando o método iterativo Jacobi clássico.
No processo, capturamos os n-gramas gerados, validamo-los e integramo-los na sequência, se apropriado, permitindo assim a geração de n tokens em menos de n passos.
De acordo com o autor, a razão pela qual a decodificação avançada pode “se destacar” é principalmente porque:
É executado sem a necessidade de um modelo de rascunho, simplificando a implantação.
O segundo é reduzir linearmente o número de etapas de decodificação em relação a cada log de etapas (FLOPs) e, finalmente, alcançar uma previsão de número de token 1,5-2,3 vezes mais rápida em uma única GPU e conjuntos de dados diferentes.
Veja como começar:
A aceleração do relógio é pouco visível neste processo.
, duração 00:57
A figura abaixo mostra o processo de coleta de 2 gramas por decodificação Jacobi e, em seguida, verificar e acelerar a decodificação.
, duração 02:20
O ramo avançado mantém uma janela 2D de tamanho fixo para gerar n-gramas com base nas trajetórias de Jacobi;
Os autores implementaram uma máscara atten 2 em 1 para alavancar ainda mais o poder de computação paralela das GPUs.
Em outras palavras, a decodificação direta permite mais gatilhos para reduzir a latência.
Quando os n-gramas são grandes o suficiente (por exemplo, 11 gramas), aumentar as suposições futuras do token (ou seja, o tamanho da janela) de forma exponencial pode reduzir linearmente o número de etapas de decodificação.
Introdução ao autor
Há um total de 4 autores deste método, todos da equipa Llama.
Yichao Fu e Hao Zhang, que se formaram na CMU com um Ph.D. e um mestrado na Shanghai Jiao Tong University, são agora professores assistentes na Universidade da Califórnia, San Diego.
Links de referência:
[1]
[2]
[3]