Inteligência artificial, sem ruído.
Open Source4 min

Perplexity abre o código do Lily: motor de inferência Rust + Metal para Qwen3.6-35B-A3B no Apple Silicon

Motor que acelera o Hybrid Compute chega ao código aberto e é até 1,35x mais rápido que o MLX-LM em Macs Apple Silicon.

Perplexity abre o código do Lily: motor de inferência Rust + Metal para Qwen3.6-35B-A3B no Apple Silicon

O que o Perplexity liberou

A Perplexity disponibilizou em código aberto o Lily, o motor de inferência local que sustenta o Hybrid Compute do Perplexity Computer. É um runtime de processo único: uma camada em Rust carrega o checkpoint e conduz o loop de geração, uma API de chat-completions compatível com OpenAI faz o streaming dos tokens, e kernels Metal escritos à mão executam o modelo. Nem PyTorch nem MLX ficam no caminho da execução.

O Lily é deliberadamente estreito: roda um único modelo, o Qwen3.6-35B-A3B, em uma única família de hardware (Apple Silicon) — e é justamente essa especialização que sustenta o argumento de desempenho.

Dá para testar: uma demo standalone está pública no repositório pplx-garden. O checkpoint em 4 bits ocupa 19,4 GB, então um Mac Apple Silicon com 32 GB ou mais de memória unificada é o piso realista. O produto Hybrid Compute que a Perplexity já vende pede macOS 15+, 24 GB no mínimo e 32 GB para melhores resultados.

Por que especializar?

O stack padrão do Mac é o MLX com MLX-LM, que já tem uma implementação do Qwen com trabalho de especialistas agrupados, um kernel recorrente de Metal fundido e atenção ciente de GQA. Mas as operações dele precisam continuar reutilizáveis entre arquiteturas. O Lily abre mão disso e coloca a estrutura do modelo, os planos de execução e a seleção de kernels em um único runtime.

O modelo em três formatos de carga

O Qwen3.6-35B-A3B armazena 35 bilhões de parâmetros e ativa cerca de 3 bilhões por token. Um roteador pontua 256 especialistas e seleciona oito, além de um especialista compartilhado que vê todos os tokens. Ele também mistura 10 camadas de atenção total usando atenção de consulta agrupada (16 cabeças de consulta, duas cabeças KV) com 30 camadas Gated DeltaNet. Isso gera três padrões de carga: grupos desiguais de especialistas, atenção sobre um cache KV crescente e uma recorrência de tamanho fixo.

Prefill e decode: onde estão os ganhos

O checkpoint usa quantização afim de 4 bits por grupo — cada grupo de 64 pesos compartilha uma escala e um viés em bfloat16, comprimindo cerca de 70 GB de pesos bfloat16 para 19,4 GB. Como as operações de tensor do Metal 4 consomem bfloat16, os pesos precisam ser reconstruídos antes. O Lily faz isso um tile por vez dentro do GEMM agrupado, segurando os resultados na memória threadgroup e acumulando em FP32. Na ablação da Perplexity, essa fusão elevou o prefill ponta a ponta em 77,4% em um prompt de 512 tokens.

Manter o histograma de roteamento, o prefix scan, o scatter e o block map dentro de um único buffer de comando de GPU adicionou 89% em 512 tokens, removendo sincronizações de CPU dentro de cada camada MoE. Passar de tiles de 16 para 32 linhas com quatro simdgroups somou 13,2% em 2K; um scan Gated DeltaNet residente em registradores adicionou 5,6%. Os GEMMs de especialistas respondem por cerca de 90% do tempo de prefill.

No decode (batch 1), quase não há reuso de pesos, então a largura de banda define o teto. Uma etapa registrada disparou 795 kernels formando 555 estágios sequenciais; o Lily registra dependências reais em um pass Metal concorrente para que kernels independentes se sobreponham. As leituras coalescidas do cache elevaram a largura de banda de chave de 33,8 para 47,9 GB/s e a de valor de 42,0 para 61,8 GB/s. O empacotamento GQA melhorou o decode em 23,8% a 32K, e um layout de atenção em blocos fixos rendeu 7,7% a 32K, 27,4% a 64K e 40,2% a 128K.

Resultados medidos

Em um M5 Max de 40 núcleos e 128 GB, no batch 1, carregando os mesmos bytes de checkpoint 4-bit contra o caminho de geração direta mais rápido do MLX-LM em dez comprimentos de 256 a 128K tokens, o Lily atingiu em média 4.156 tokens/s de prefill contra 3.388 (1,23x) e 170,0 tokens/s de decode contra 126,4 (1,35x). Em um prompt de 4K com 4K de contexto, chegou a 5.749,9 e 186,6 tokens/s contra 4.737,5 e 140,9 — mais rápido em todos os pontos medidos: 1,12–1,42x no prefill e 1,31–1,37x no decode. Uma checagem teacher-forced em 192 posições colocou a perplexidade do Lily 0,04% maior, com o mesmo token top-1 em 96,35% das vezes.

Por que isso importa agora

O movimento reforça uma tendência clara de 2026: inferência local em dispositivos com aceleração proprietária está virando diferencial competitivo. Ao abrir o Lily, a Perplexity expõe o mesmo motor que roda no produto comercial Hybrid Compute, permitindo que desenvolvedores e entusiastas brasileiros rodem um modelo de 35B em um Mac — sem depender de nuvem, com latência previsível e dados locais. Para quem trabalha com agentes de IA, privacidade ou desenvolvimento em Apple Silicon, é um benchmark concreto do que dá para extrair de hardware de consumo quando o runtime é escrito sob medida.

Detalhes técnicos completos estão no repositório do Lily.


Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.