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

Que funcionalidades permitem criar um limite de confiança de IA doméstico em torno de ficheiros sensíveis?
Uma fronteira de confiança para IA doméstica combina encriptação em repouso, permissões de privilégio mínimo, sandboxing em tempo de execução e recuperação com âmbito...

O que faz com que os resultados de pesquisa privada favoreçam ficheiros editados com frequência?
Os ficheiros editados frequentemente obtêm vantagens no posicionamento quando cada atualização acrescenta sinais de atualidade, fragmentos, versões ou interação, sem normalização por fonte.

O que faz com que os modelos de presença de casas inteligentes confundam visitantes com residentes?
Os visitantes podem parecer residentes quando o sistema observa padrões de atividade doméstica, mas não dispõe de um sinal de identidade estável da pessoa...

