A Perplexity apresentou o Photon, um motor interno de recuperação e classificação de informações desenvolvido em Rust, linguagem de programação conhecida por oferecer alto desempenho e baixo consumo de memória. O novo componente substitui um motor de código aberto que a empresa havia adaptado para sua pilha de busca voltada a aplicações de inteligência artificial. O Photon já é responsável por toda a etapa de recuperação e ranqueamento do tráfego de produção da Perplexity e também dá suporte a um novo modo chamado Fast Search, disponível na API de busca da empresa.

Segundo a companhia, o Photon entrega latência mediana de 160 milissegundos e latência no percentil 95 de 230 milissegundos por chamada. O motor não é distribuído como software de código aberto, mas pode ser utilizado por meio da API hospedada da Perplexity, com custo de um dólar a cada mil requisições quando o modo Fast Search é acionado.

A substituição do motor anterior foi motivada por três gargalos técnicos que se agravaram conforme o índice de pesquisa crescia. O primeiro deles foi a latência de cauda, ou seja, o tempo de resposta dos piores casos: o percentil 99 de produção ficava próximo de 800 milissegundos. O conjunto de dados ultrapassava a memória disponível nos servidores, o que impedia o uso de técnicas para mantê-lo fixo na memória RAM. Com isso, leituras frias provocavam falhas de página que travavam consultas inteiras. O segundo problema aparecia durante a fusão periódica de índices em disco, quando o percentil 99 subia para cerca de 1,2 segundo por períodos de 10 a 15 minutos. Por fim, a recuperação de falhas era lenta: provisionar um novo cluster ou sincronizar dados adicionais podia levar mais de uma semana, aumentando a proporção de respostas parciais. Diante desse cenário, a equipe concluiu que reconstruir o motor do zero seria mais simples e barato do que manter a versão adaptada.

Escrito em Rust: conheça o Photon, o motor que deixou as buscas da Perplexity dez vezes mais rápidas - Imagem complementar

O funcionamento do Photon é organizado em camadas que separam busca, classificação e armazenamento. Cada requisição chega a um balanceador de carga, que a direciona a um broker responsável por distribuir o trabalho entre grupos de fragmentos e monitorar timeouts. Cada fragmento executa três etapas: recuperação inicial, primeiro ranqueamento e ranqueamento mais apurado. O broker combina os candidatos retornados e busca apenas os campos essenciais dos documentos selecionados.

Entre os mecanismos internos estão listas de postings adaptativas, que ajustam o formato conforme o tamanho da lista, blocos esparsos que armazenam deslocamentos ordenados para buscas rápidas e blocos densos representados por bitmaps, técnica que permite verificar a presença de um documento com a leitura de um único bit. O motor ainda adota um algoritmo de percorrimento orçado, semelhante ao WAND, que separa as listas em listas condutoras e listas de sondagem, lendo frequências exatas apenas quando há chance real de o candidato atingir a pontuação necessária. Os registros de documentos, chamados internamente de docblobs, armazenam frequências, máscaras de campos e posições usando a codificação Elias-Fano, de forma que o ranqueamento decodifica somente os termos realmente compatíveis. As leituras em disco são agrupadas em lotes assíncronos por meio da interface io_uring, com cache verificado antes de cada operação e algoritmo de eviction baseado no método CLOCK, que evita contenções comuns em listas LRU compartilhadas. A construção do índice é separada da etapa de atendimento: indexadores dedicados geram versões a partir de tabelas no YTsaurus, e um controlador rotaciona os grupos de serviço gradualmente, aquecendo caches com consultas reais reproduzidas.

PUBLICIDADE

Os resultados apresentados pela Perplexity indicam que o percentil 99 de latência caiu de aproximadamente 800 milissegundos para cerca de 65 milissegundos nas etapas internas do Photon. O novo motor roda em cerca de 20% menos máquinas de serviço do que a arquitetura anterior, ao mesmo tempo em que armazena 2,5 vezes mais dados por documento, o que foi aproveitado para melhorar a qualidade do ranqueamento. Trocas de versão do índice deixaram de provocar picos de latência.

O modo Fast Search combina o Photon com um ranqueamento mais leve, voltado para fluxos de agentes de inteligência artificial. Em testes da própria empresa sobre seis benchmarks — WideSearch, BrowseComp, DSQA, FRAMES, SEAL-0 e SEAL-Hard —, totalizando 3.554 tarefas, o Fast Search obteve 64,3% de acerto com custo estimado de 59,73 dólares por tarefa, enquanto o preset padrão marcou 64,0% ao custo de 187,60 dólares, o que representa redução de cerca de 68%. Em benchmarks internos de consultas longas e abrangentes, a relevância medida pelo indicador DCG caiu de 2,45 para 2,21, e a disponibilidade de respostas recuou de 0,596 para 0,567. A recomendação da Perplexity é utilizar o Fast Search em tarefas cotidianas de agentes e manter o preset padrão em consultas mais difíceis e ambíguas.

Em comparação com APIs concorrentes, o Fast Search da Perplexity apresenta latência mediana de 160 milissegundos e de 230 milissegundos no percentil 95, com preço de um dólar por mil requisições e retorno de um a 20 resultados. O Instant, da Exa, cobra quatro dólares para até dez resultados e aceita consultas apenas em inglês e japonês. O Turbo, da Parallel, é precificado em um dólar por mil requisições e tem latência próxima de 200 milissegundos segundo a documentação. O modo ultra-fast da Tavily não divulga latência e adota sistema de créditos que varia conforme o plano contratado. Os números de latência são declarados por cada fornecedor em condições distintas e, portanto, não são diretamente comparáveis.

Com o Photon, a Perplexity consolida uma infraestrutura própria escrita em Rust para suas buscas e reforça a aposta em desempenho como diferencial em um mercado de APIs cada vez mais voltado a agentes autônomos.