Perplexity disponibiliza Lily, motor de inferência local para chips da Apple

A Perplexity abriu o código-fonte do Lily, o motor de inferência local responsável pelo recurso Hybrid Compute dentro do Perplexity Computer. Trata-se de um mecanismo construído especificamente para executar o modelo Qwen3.6-35B-A3B em硬件 da família Apple Silicon, com a proposta de priorizar desempenho por meio de uma abordagem altamente especializada.

Lily: o motor open-source da Perplexity que acelera a IA local no Mac e supera o MLX-LM nos benchmarks da Apple Silicon - Imagem complementar

O Lily funciona como um runtime de processo único. Uma camada escrita em Rust é responsável por carregar o checkpoint e conduzir o ciclo de geração, enquanto uma API de chat-completions compatível com o padrão da OpenAI transmite os tokens gerados. A execução do modelo em si fica a cargo de kernels Metal escritos manualmente. Diferentemente de outras soluções comuns no ecossistema, o Lily não utiliza PyTorch nem MLX em seu caminho de execução.

PUBLICIDADE

A escolha por uma arquitetura tão restrita é justamente o argumento central de desempenho. O motor foi projetado para rodar exclusivamente o modelo Qwen3.6-35B-A3B e somente em chips Apple Silicon. O checkpoint compactado em 4 bits ocupa 19,4 GB, o que torna viável sua execução em Macs com chip da Apple que possuam 32 GB ou mais de memória unificada. O produto Hybrid Compute comercializado pela Perplexity indica como requisito mínimo o macOS 15 com 24 GB de memória, embora recomende 32 GB para obter os melhores resultados.

O modelo Qwen3.6-35B-A3B apresenta características que justificam otimizações específicas. Embora armazene 35 bilhões de parâmetros, apenas cerca de 3 bilhões são ativados por token. Um componente interno, chamado router, avalia 256 especialistas e seleciona oito para cada token, além de contar com um especialista compartilhado que processa todos os tokens. A arquitetura combina 10 camadas de atenção completa, que utilizam atenção por consulta agrupada com 16 cabeças de consulta e duas cabeças de chave-valor, com 30 camadas do tipo Gated DeltaNet.

A equipe responsável pelo Lily implementou uma série de otimizações voltadas para duas etapas principais: o prefill, momento em que o modelo processa o prompt inicial, e o decode, fase de geração token a token. Na etapa de prefill, os pesos são reconstruídos em blocos dentro de uma operação de multiplicação de matrizes agrupadas, e o resultado permanece em memória de threadgroup com acúmulo em FP32, evitando que os dados expandidos ocupem a memória unificada. Essa fusão entre desquantização e a operação de matrizes trouxe um ganho de 77,4% no prefill com prompts de 512 tokens, segundo dados da empresa. Manter o roteamento de especialistas inteiramente na GPU, eliminando sincronizações com a CPU, adicionou 89% de ganho na mesma faixa de tamanho de prompt.

Já na etapa de decode, em que há pouco reaproveitamento de pesos, o gargalo principal é a largura de banda de memória. O Lily reorganizou a leitura dos dados de cache de forma a coalescer acessos e elevar a taxa de leitura de chaves de 33,8 para 47,9 GB/s, e a de valores de 42,0 para 61,8 GB/s. A técnica de empacotamento de cabeças, em que quatro cabeças de consulta compartilham um mesmo threadgroup, trouxe ganho de 23,8% no decode em contextos de 32 mil tokens. Em contextos ainda maiores, um layout de atenção em blocos fixos elevou o desempenho em 7,7% nos 32 mil tokens, 27,4% nos 64 mil tokens e 40,2% nos 128 mil tokens.

Os benchmarks divulgados pela Perplexity comparam o Lily ao MLX-LM, considerada a pilha padrão para execução local em Macs. Em um M5 Max com 40 núcleos e 128 GB de memória, no cenário de lote unitário e em dez comprimentos de contexto entre 256 e 128 mil tokens, o Lily alcançou em média 4.156 tokens por segundo no prefill contra 3.388 do MLX-LM, uma vantagem de 1,23 vez. No decode, a média foi de 170,0 tokens por segundo contra 126,4, equivalente a 1,35 vez. Em um cenário específico de prompt de 4 mil tokens e contexto de 4 mil tokens, o Lily atingiu 5.749,9 tokens por segundo no prefill e 186,6 no decode, contra 4.737,5 e 140,9 do MLX-LM, respectivamente. Uma verificação de qualidade em 192 posições mostrou que a perplexidade do Lily ficou 0,04% acima da referência, com o mesmo token mais bem classificado em 96,35% das posições.

O Lily está disponível em código aberto no repositório pplx-garden, com um demo standalone que oferece geração de texto por meio de uma API HTTP minimalista compatível com o padrão da OpenAI. A estratégia da Perplexity evidencia como a especialização extrema em um único modelo e em uma única família de hardware pode entregar ganhos concretos de desempenho em inferência local, mesmo quando comparada a soluções generalistas já consolidadas no ecossistema Apple.