← Últimos artigos
🤖 machine learning

Efficient On-Device Diffusion LLM Inference with Mobile NPU

Este artigo apresenta o llada.cpp, o primeiro framework de inferência consciente de NPU que acelera LLMs de difusão em dispositivos ao empregar decodificação especulativa de múltiplos blocos, revisão progressiva de caminho duplo e um tempo de execução de memória otimizado para troca para superar as limitações do hardware móvel e alcançar uma redução de latência de até 42x em comparação com as bases de CPU.

Autores originais: Tuowei Wang, Yanfan Sun, Ju Ren

Publicado 2026-06-15
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Tuowei Wang, Yanfan Sun, Ju Ren

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que o seu smartphone é uma cozinha movimentada, e o chef (a IA) está tentando escrever uma história.

O Problema: O Chef Lento, Uma Palavra de Cada Vez

Tradicionalmente, os modelos de IA (como os do seu telefone) escrevem histórias uma palavra de cada vez. É como um chef que deve picar uma cebola, depois esperar o fogão aquecer, depois picar uma cenoura, e esperar novamente. Mesmo que o fogão seja potente, o chef é forçado a trabalhar devagar porque só consegue fazer uma coisa de cada vez. Isso faz com que a geração de textos longos no telefone pareça lenta e consuma a bateria.

A Nova Ideia: O Chef de "Difusão"

Um novo tipo de IA, chamado Modelo de Linguagem de Difusão (dLLM), tenta ser diferente. Em vez de escrever uma palavra de cada vez, ele começa com uma página inteira de "ruído" (gibberish aleatório) e tenta limpá-la para formar uma frase real de uma só vez. É como um chef que joga um monte de ingredientes sobre o balcão e tenta organizá-los em uma salada perfeita simultaneamente.

Isso parece ótimo porque utiliza muito melhor o "NPU" (Unidade de Processamento Neural) do telefone — um chip especializado projetado para matemática massiva e paralela. No entanto, há uma pegadinha:

  1. O Problema da "Panela Vazia": À medida que o chef se aproxima de terminar a salada, menos ingredientes precisam de ajuste. O poderoso NPU acaba ficando à espera porque não há trabalho suficiente para fazer, desperdiçando sua velocidade.
  2. O Problema do "Ops, Mudei de Ideia": Às vezes, o chef organiza uma palavra, mas depois percebe: "Espere, isso não combina com a próxima frase". A IA tem que voltar e consertar. Fazer isso no NPU rápido é bagunçado e atrasa tudo.
  3. O Problema da "Geladeira Pequena": O NPU tem uma "geladeira" (memória) muito pequena e especial onde mantém os ingredientes prontos para cozinhar. Se a receita for muito grande, o chef tem que constantemente trocar ingredientes para dentro e para fora dessa geladeira minúscula, o que leva muito tempo e desperdiça energia.

A Solução: llada.cpp

Os autores construíram um novo sistema chamado llada.cpp para resolver esses três problemas. Pense nisso como um novo conjunto de regras de cozinha que permite ao chef usar o NPU de forma eficiente.

1. Decodificação Especulativa de Múltiplos Blocos: "Espiando a Próxima Receita"

A Analogia: Imagine que o chef está terminando a salada atual (Bloco A), mas o NPU está ficando entediado porque resta apenas uma folha para picar. Em vez de esperar, o sistema diz: "Ei, vamos começar a preparar os ingredientes para a próxima salada (Bloco B) agora mesmo, por precaução".
Como funciona: Mesmo que o bloco atual não esteja 100% concluído, o sistema começa secretamente a trabalhar nas palavras futuras. Isso mantém o poderoso NPU ocupado e totalmente utilizado, para que não fique ocioso. Se as palavras futuras estiverem corretas, ótimo! Se não, o sistema apenas as descarta e segue em frente.

2. Revisão Progressiva de Caminho Duplo: "A Via Rápida vs. A Via Lenta"

A Analogia: O NPU é um carro de Fórmula 1: é incrivelmente rápido, mas não consegue fazer curvas muito bem. A CPU é um SUV confiável e lento: é ótimo para fazer pequenos ajustes complicados.
Como funciona: Quando a IA está confiante sobre uma palavra, o NPU a mantém. Mas se a IA estiver incerta e precisar "mudar de ideia" sobre uma palavra, o llada.cpp não interrompe o carro de corrida rápido do NPU. Em vez disso, ele envia silenciosamente o trabalho de "conserto" para o SUV mais flexível da CPU em segundo plano. O NPU continua correndo para frente com as novas palavras enquanto a CPU corrige silenciosamente as antigas.

3. Tempo de Execução de Memória Otimizado para Troca: "A Despensa Organizada"

A Analogia: A geladeira minúscula do NPU é tão pequena que, se você apenas jogar os ingredientes lá dentro aleatoriamente, passará todo o tempo abrindo e fechando a porta para trocar as coisas.
Como funciona: O llada.cpp atua como um gerente de despensa super organizado. Ele olha para toda a receita com antecedência e descobre exatamente quais ingredientes precisam estar na geladeira agora e quais podem esperar. Ele também prepara o próximo lote de ingredientes enquanto o chef está cozinhando, para que a porta nunca fique fechada por muito tempo. Isso elimina o "tempo de espera" causado pela movimentação de dados.

Os Resultados

Os autores testaram isso em smartphones reais (como o OnePlus Ace5 Pro).

  • Velocidade: Eles descobriram que o llada.cpp tornou a IA de 17 a 42 vezes mais rápida do que a forma antiga de fazer as coisas em um telefone.
  • Qualidade: As histórias escritas eram tão boas quanto antes; a velocidade não veio às custas da precisão.
  • Bateria: Como o NPU terminou o trabalho rapidamente e não teve que ficar ocioso, o telefone usou menos energia no total.

Em resumo, o llada.cpp é um gerente inteligente que ensina o telefone a usar seu cérebro super-rápido (o NPU) sem ficar preso no trânsito, fazendo com que a IA móvel pareça instantânea e responsiva.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →