A descodificação especulativa acelera um servidor de IA doméstico ao permitir que um mecanismo rápido de rascunho proponha vários tokens, que o modelo-alvo verifica em conjunto.
A geração autorregressiva comum pede ao modelo completo que produza um token, o acrescente e volte a executar antes de ser possível conhecer o token seguinte. Essa dependência sequencial deixa pouco trabalho paralelo durante a descodificação, mesmo num acelerador competente. A descodificação especulativa utiliza computação mais barata para gerar tokens candidatos e, em seguida, usa uma passagem do modelo-alvo para verificar várias posições. O ganho depende da rapidez com que o rascunho é gerado, da quantidade de candidatos aceites e de a memória adicional ou a sobrecarga de verificação caberem no hardware local.
A descodificação padrão avança um passo do modelo-alvo de cada vez
Um modelo autorregressivo condiciona cada novo token ao prompt e a todos os tokens anteriores aceites. O passo seguinte não pode ser finalizado até o token atual ser amostrado.
O trabalho original sobre descodificação especulativa descreve as passagens sequenciais do modelo-alvo como o estrangulamento de latência que procura reduzir.
O processamento em lote ajuda várias solicitações a partilharem uma iteração, mas uma sequência individual continua normalmente a obter apenas um token aceite por cada passagem do modelo-alvo.
Um mecanismo de rascunho mais rápido prevê vários tokens futuros
O componente de rascunho pode ser um modelo mais pequeno, uma versão reduzida do modelo-alvo, uma cabeça de previsão auxiliar ou outro mecanismo mais barato do que executar repetidamente o modelo completo.
A descodificação especulativa realiza um rascunho de candidatos, disponibilizando várias continuações prováveis antes de o modelo-alvo as avaliar.
O rascunho não substitui a autoridade do modelo-alvo. O seu objetivo é adivinhar tokens futuros fáceis a baixo custo e criar um bloco que o modelo-alvo possa inspecionar em paralelo.
Um modelo de rascunho demasiado grande pode prever bem, mas consumir a maior parte da latência e da memória que a otimização pretendia poupar.
O modelo-alvo verifica os candidatos numa única passagem paralela
O modelo-alvo avalia a sequência gerada no rascunho e determina quais dos tokens propostos são compatíveis com a sua própria distribuição de probabilidades. Os tokens aceites fazem avançar a sequência em conjunto; a primeira posição rejeitada é corrigida através do procedimento exato de amostragem.
O algoritmo utiliza verificação paralela e amostragem por rejeição, para que a descodificação especulativa exata preserve a distribuição de saída do modelo-alvo.
Esta distinção é importante para as afirmações sobre qualidade. A verificação correta é sem perdas relativamente à distribuição de descodificação do modelo-alvo selecionada, enquanto os métodos heurísticos de antecipação podem fazer compromissos diferentes.
O comprimento de aceitação determina quantos passos sequenciais desaparecem
Se o modelo-alvo aceitar a maioria dos tokens gerados no rascunho, uma passagem de verificação substitui várias passagens de descodificação normais. Se rejeitar repetidamente o primeiro candidato, o servidor executa o trabalho de rascunho sem avançar muito mais depressa.
Um estudo experimental de grande dimensão concluiu que o desempenho especulativo depende fortemente da eficiência do rascunho, e não simplesmente da escolha do modelo de linguagem mais competente entre os modelos mais pequenos.
A aceitação varia consoante o domínio do prompt, a temperatura de amostragem, a compatibilidade dos tokenizadores, o modelo-alvo, o comprimento do rascunho e o grau de proximidade entre a previsão do rascunho e a distribuição do próximo token do modelo-alvo.
Blocos de rascunho mais longos oferecem mais progresso potencial, mas desperdiçam mais trabalho após uma divergência inicial. A profundidade ideal depende, portanto, da carga de trabalho.
A sobrecarga e a memória do rascunho podem eliminar o ganho de velocidade em casa
Um servidor de IA doméstico tem de executar o mecanismo de rascunho, manter o seu estado e realizar a verificação enquanto o modelo-alvo e a cache KV já ocupam memória. Um segundo modelo pode obrigar à transferência de dados para a CPU ou reduzir o contexto disponível.
Estudos de hardware identificam a latência do modelo de rascunho como um limite fundamental do ganho de velocidade. Um rascunho lento numa CPU para um modelo-alvo rápido numa GPU, ou um rascunho que concorra pela mesma largura de banda da memória, pode proporcionar poucos benefícios.
Os métodos de auto-eficiência especulativa evitam um modelo de rascunho completo separado ao reutilizarem partes do modelo-alvo, mas introduzem as suas próprias limitações de execução e compatibilidade.
A margem de memória é tão importante como a capacidade de computação. A otimização não é útil se o rascunho provocar a expulsão do modelo da memória, um limite de contexto mais reduzido ou instabilidade noutras aplicações do servidor doméstico.
Meça a latência de ponta a ponta, não apenas os tokens aceites
Compare a descodificação normal e a especulativa com o mesmo modelo-alvo, conjunto de prompts, parâmetros de amostragem, comprimentos de saída e condições de estado aquecido. Registe o tempo até ao primeiro token, os tokens de saída por segundo, o comprimento de aceitação, o tempo do rascunho, o tempo de verificação e o pico de memória.
A análise da ZimaSpace sobre a permanência dos modelos na memória é relevante porque adicionar um rascunho pode alterar o estado do modelo que permanece aquecido. Não se deve atribuir o mérito a uma otimização de descodificação num teste que compare condições diferentes de arranque a frio.
A descodificação especulativa tende a ser mais útil quando o modelo-alvo é lento, o rascunho é muito mais barato, a aceitação é elevada e o acelerador consegue verificar vários candidatos de forma eficiente.
É menos útil quando as saídas são curtas, o modelo-alvo já descodifica rapidamente, o rascunho discorda com frequência ou a memória e a largura de banda locais são os verdadeiros estrangulamentos.
Perguntas frequentes
A descodificação especulativa utiliza um modelo de menor qualidade para a resposta final?
O rascunho propõe candidatos, mas a verificação exata mantém o modelo-alvo responsável pela distribuição de saída aceite.
A descodificação especulativa melhora o processamento do prompt?
O seu principal objetivo é a geração autorregressiva de saída. A latência de pré-preenchimento do prompt pode permanecer semelhante, a menos que a implementação a combine com otimizações separadas de prefixo ou de pré-preenchimento.
A descodificação especulativa pode ser executada num servidor doméstico apenas com CPU?
Pode ser executada em ambientes de execução compatíveis, mas o ganho de velocidade depende de o rascunho e a verificação serem mais baratos do que a descodificação normal nessa CPU e nesse sistema de memória específicos.
Centro de Tecnologia e IA
Mais para Ler

Como afeta a redução da frequência de amostragem de séries temporais a deteção de anomalias em casas inteligentes?
Veja como a largura dos intervalos, a agregação, o anti-aliasing, os dados em falta, a duração dos eventos e a retenção multiescala alteram a...

Como é que uma grelha de ocupação combina sinais fracos de uma casa inteligente?
Saiba como células espaciais, modelos de sensores, atualizações de log-odds, decaimento, evidências correlacionadas e limiares transformam sinais domésticos fracos em estimativas de ocupação.

Como é que a normalização fotométrica afeta o agrupamento privado de rostos?
Veja como a correção da iluminação altera recortes faciais, embeddings, distâncias entre clusters, limiares, sobre-normalização e a avaliação da pesquisa privada de fotografias.

