Arquitectura i avaluació d'una API de cerca orientada a la IA
Creació d'una API de cerca escalable que gestiona 200 milions de consultes diàries utilitzant la recuperació híbrida i la curació de context intel·ligent per a models d'IA
La creació d'una API de cerca escalable i orientada a la IA planteja reptes de recerca únics en la intersecció entre la recuperació d'informació, la IA i el disseny de sistemes. A diferència dels serveis tradicionals que operen amb dades delimitades, una API de cerca ha d'indexar contínuament milers de milions de documents, entendre la intenció de les consultes en diversos idiomes i dominis, i mostrar resultats rellevants en qüestió de mil·lisegons. En un món d'agents d'IA, una API de cerca també ha de comissar acuradament el context proporcionat als models dels desenvolupadors per garantir que aquests models funcionin de manera òptima i incorporin informació el màxim de precisa possible. Una enginyeria de context eficaç exigeix que l'API no només capti la rellevància a nivell de document, sinó que tracti les seccions i trams individuals dels documents com a unitats de primer ordre per dret propi.
En aquest article, presentem el disseny i l'avaluació de la Perplexity Search API. Primer explorem l'arquitectura i les decisions tècniques clau darrere de la nostra infraestructura de cerca de producció que processa 200 milions de consultes diàries. La nostra arquitectura combina mecanismes de recuperació híbrida, canonades de classificació de múltiples etapes, indexació distribuïda i anàlisi dinàmica a través d'un mòdul d'entesa de contingut d'autoaprenentatge.
A continuació, descrivim el nostre enfocament per avaluar empíricament el rendiment de l'API de cerca mitjançant un marc d'avaluació de codi obert recentment publicat. Mitjançant una avaluació comparativa exhaustiva al costat de les API comercials existents, demostrem un rendiment capdavanter tant en qualitat com en latència. La Perplexity Search API està disponible per a desenvolupadors de tot el món a partir d'avui.
[Trobar search_evals a GitHub]
Creació d'un sistema de cerca optimitzat per a models d'IA
Des dels nostres inicis, vam entendre que unes capacitats de cerca sòlides serien fonamentals per permetre els productes d'IA determinants de categoria que volíem llançar. Originalment, esperàvem que aquestes capacitats ja existissin de manera disponible públicament. Vam experimentar amb la cartera d'API de cerca disponibles a finals de 2022, i la primera versió del motor de respostes de Perplexity en realitat incorporava algunes d'aquestes ofertes. Concretament, analitzàvem les consultes dels usuaris, formulàvem i enviàvem sol·licituds a aquestes API, i recopilàvem els resultats com a context per a la nostra canonada de generació posterior.
No obstant això, a mesura que els usuaris van acudir en massa a Perplexity, de seguida ens vam adonar que aquestes API no escalarien amb el nostre creixement. Els preus que vam trobar eren exorbitants, amb un proveïdor d'API líder que cobrava 200 dòlars per mil consultes. Però de manera més fatal, aquestes API heretades simplement no van ser dissenyades per als nous paradigmes de recuperació introduïts pels sistemes d'IA de frontera.
Per començar, els formats de sol·licitud i resposta d'aquestes API heretades es van dissenyar per a un món en el qual els humans serien els consumidors exclusius dels resultats de cerca. Com a resultat, aquestes API van prioritzar els resultats a nivell de document, excloent informació més detallada revelada per unitats subdocumentals. L'èxit d'un model d'IA depèn de la qualitat i la compacitat del context proporcionat, i vam veure de primera mà com una recuperació massa àmplia podia fer descarrilar els models d'IA, independentment de fins a quin punt els documents recuperats en conjunt poguessin semblar rellevants. Els nostres intents d'imposar precisió a resultats imprecisos van tenir un èxit limitat.
També vam observar que les API heretades eren massa antiquades o massa lentes. Les API de cerca desenvolupades de manera independent depenien d'índexs incomplets i actualitzats amb massa poca freqüència. Les API basades en rascat, com les diverses API no oficials de SERP per a la Cerca de Google, es beneficien d'un índex més exhaustiu, però oferien una latència inacceptablement alta a causa de la ineficiència inherent de consultar un motor de cerca de tercers. La latència alta feia que les API no fossin aptes per a aplicacions adreçades a l'usuari, mentre que la manca d'actualització feia que els conjunts de resultats fossin inutilitzables per a qualsevol sistema d'IA que esperés ser precís i fiable.
Finalment, vam observar que l'ecosistema d'IA es bifurcava entre la cerca lèxica i la cerca semàntica, amb l'aparició de sistemes excessivament optimitzats per a una modalitat en detriment de l'altra. Vam veure l'auge de les bases de dades vectorials que no podien admetre adequadament ni tan sols filtres booleans senzills. Els backends de cerca tradicionals tampoc no van sortir gaire millor parats, amb un suport primitiu per a la classificació semàntica i les oportunitats de recuperació desbloquejades per la IA.
A mesura que ens vam adonar que fer que Perplexity fos encara millor requeriria construir la nostra pròpia infraestructura de cerca dedicada, vam destil·lar les nostres observacions en tres criteris clau:
Inclusivitat, actualització i velocitat: l'índex de cerca ha de ser exhaustiu, constantment actualitzat i dissenyat per a una latència en temps real.
Entesa de contingut detallada: la fragilitat del model d'IA i les finestres de context limitades requereixen que els resultats de cerca es presentin i es classifiquin al nivell més granular possible.
Recuperació i classificació híbrides: tant les canonades de recuperació com de classificació han d'incorporar senyals lèxics i semàntics perquè els resultats siguin útils per a la IA.
Infraestructura de rastreig i indexació
Operar a escala de Perplexity requereix una infraestructura capaç de mapejar de manera exhaustiva el web i respondre a la seva constant evolució. El nostre índex de cerca fa un seguiment de més de 200 milions d'URL úniques, amb capacitat per fer el seguiment de molts centenars de milions més.
Garantir que el nostre índex cobreixi una part prou exhaustiva d'Internet i que cada document reflecteixi l'estat més recent és una fita difícil. Hi ha una tensió inherent entre la exhaustivitat i la frescor: per a un pressupost d'indexació fix, les operacions d'actualització de les pàgines existents han de competir amb les operacions d'indexació de noves pàgines no visitades. Equilibrem aquesta tensió mitjançant una combinació d'escalat (que relaxa la restricció d'optimització augmentant el pressupost d'indexació) i priorització impulsada per ML (que garanteix que cada operació d'indexació sigui el màxim de valuosa possible per a l'índex en el seu conjunt).
Hem construït un índex a escala d'exabits i un aparell de rastreig que s'escala horitzontalment tant amb la mida com amb el volum de consultes. Les flotes de rastreig i indexació de Perplexity comprenen conjuntament desenes de milers de CPU i centenars de terabytes de memòria RAM, amb un marge considerable per a un escalat posterior. Combinem aquesta infraestructura de càlcul amb un equilibri d'emmagatzematge fred i calent. Utilitzem tant models apresos com heurístiques ajustades per determinar quins documents s'han de mantenir calents, prioritzant els documents de dominis autoritzats, els documents sobre temes poc coberts i altres categories amb un potencial desproporcionat per enriquir el nostre índex.
Aquesta infraestructura permet a Perplexity processar desenes de milers d'operacions d'indexació per segon. Però fins i tot amb aquest pressupost relativament generós, l'escala d'Internet és massa vasta per indexar cada URL de manera freqüent i recurrent. Aquí és on entra el ML. Entrenem un model de ML per predir si cal indexar qualsevol URL candidata donada. L'objectiu d'entrenament s'elabora per garantir que calibrem la nostra decisió d'indexació tant a la importància com a la freqüència d'actualització probable de la URL específica. També confiem en el ML perquè ens indiqui amb precisió quan s'ha de programar l'operació d'indexació. Per als llocs amb cadències de publicació i actualització rutinaris, això ens permet ajornar les operacions fins al moment en què sigui més probable que siguin útils. Mitjançant el refinament continu d'aquests models de ML, podem mantenir un índex que compleixi els requisits tant de exhaustivitat com de frescor.
Tot i que la nostra infraestructura de rastreig s'escala fàcilment de manera horitzontal, som conscients que els operadors de llocs web s'enfronten a limitacions tècniques diferents. Som acurats a l'hora de mantenir una taxa de sol·licituds predictible i gestionable per a qualsevol domini determinat. PerplexityBot, el nostre rastrejador de cerca, compleix els límits explícits establerts als fitxers robots.txt o, en absència de límits especificats pel domini, les normes estàndard de la indústria relatives a les taxes de sol·licitud. També ajustem el nostre comportament de rastreig quan detectem la manca de disponibilitat d'un lloc. El nostre sistema distribuït està arquitecturat per fer complir aquests límits fins i tot en desenes de milers d'operacions concurrents.
Entesa de contingut d'autoaprenentatge a escala d'Internet
Fins i tot amb un dels índexs de cerca més grans i frescos del planeta, la qualitat dels resultats de cada consulta depèn de la comprensió que el nostre sistema tingui del contingut de cada document. Aquí ens enfrontem a un repte fonamental: el web és un lloc caòtic. Cap conjunt fix de regles d'anàlisi sintàctica pot gestionar la infinita varietat de dissenys, estructures i estils que es troben a tot Internet.
Hem resolt aquest repte desenvolupant un mòdul d'entesa de contingut que analitza llocs web i n'extreu contingut significatiu des del punt de vista semàntic mitjançant conjunts de regles dinàmiques. Un lloc web amb moltes dades ben estructurades en format de llista o taula es pot beneficiar de regles d'extracció i anàlisi més formals, mentre que un altre lloc web que presenti principalment contingut generat per l'usuari de forma lliure pot requerir un conjunt de regles més flexible. Com que el web és principalment estàtic en marcs temporals curts, trobem que la vida útil d'una regla determinada és relativament llarga. Però a mesura que els llocs evolucioni amb el temps i a mesura que anem aprenent sobre les millors maneres d'extreure informació, els nostres conjunts de regles també requereixen un manteniment continu.
Per facilitar aquesta adaptació dinàmica, recorrem (com no podia ser d'altra manera) a la IA. A l'escala de Perplexity, observem una secció transversal increïblement rica del web durant la gestió de milions de consultes d'usuaris per hora. Això forma la base d'un bucle d'auto millora iteratiu. Observem el comportament d'anàlisi i les sortides extretes dels nostres conjunts de regles actuals a tot el nostre univers de consultes. A continuació, utilitzem LLM de frontera per avaluar el rendiment en dues dimensions principals:
Inclusivitat: el nostre índex ha de rebre tant contingut significatiu des del punt de vista semàntic com sigui possible, evitant alhora l'extracció espúria de matèria poc informativa o absurditat.
Qualitat: el nostre índex es basa en contingut d'alta qualitat tant en substància com en forma. La informació s'ha de capturar d'una manera que preservi l'estructura i el disseny del contingut original.
Cal tenir en compte que la exhaustivitat i la qualitat presenten una altra tensió inherent: optimitzar manualment per a la qualitat és possible, però les regles d'anàlisi resultants poden no capturar contingut crític. De la mateixa manera, podríem codificar manualment regles permissives que apliquin un filtratge mínim al contingut brut, la qual cosa podria millorar la exhaustivitat però a costa de la qualitat. Per això recorrem a l'auto millora impulsada per IA per fer evolucionar el nostre conjunt de regles d'una manera que pugui optimitzar-les totes dues alhora d'una manera adaptativa al domini.
Concretament, després de cada avaluació del rendiment d'anàlisi impulsada per LLM, el nostre sistema formula un conjunt de canvis proposats al conjunt de regles per abordar les classes d'errors més importants. Aquests conjunts de regles se sotmeten a una validació addicional, després de la qual despleguem la nova versió al nostre indexador. Tenint en compte que les millores en la lògica d'anàlisi i extracció només poden beneficiar les operacions d'indexació futures, les nostres inversions en reindexació optimitzada per ML són especialment importants: actualitzar contínuament els documents amb molt de trànsit utilitzant la versió més recent d'aquesta lògica garanteix un bucle d'auto millora estret.
Aquestes regles importen no només per al rendiment d'anàlisi bàsic, sinó també per a la segmentació en unitats subdocumentals. Pel que fa als LLM de frontera, cada token de context és preciós. Una gran quantitat de treballs previs ha documentat com el rendiment dels LLM es degrada amb els augments de la mida del context i la contaminació del context amb informació irrellevant. Tenir una anàlisi ben estructurada i exhaustiva ens permet descompondre els documents en trams autònoms, cadascun dels quals es pot recuperar i classificar individualment en el moment de la consulta.
Canonada de recuperació i classificació
La cerca moderna requereix garantir tant la exhaustivitat com la rellevància sota un pressupost de latència ajustat. La canonada de recuperació i classificació de Perplexity aconsegueix això mitjançant una arquitectura de múltiples etapes que refina progressivament els resultats amb una sèrie de mòduls cada cop més sofisticats. Resolem els colls d'ampolla potencials escalant horitzontalment qualsevol punt conflictiu potencial al màxim grau possible.
La canonada comença amb la recuperació del nostre índex. No imposem una tria entre la recuperació lèxica i la semàntica. Més aviat, fem consultes a l'índex de cerca mitjançant ambdues modalitats i fusionem els resultats en un conjunt de candidats híbrid. En aquesta etapa, la prioritat és la exhaustivitat per davant de la precisió; les etapes posteriors de la canonada optimitzaran per a la precisió.
La canonada continua amb etapes de prefiltratge, en les quals apliquem heurístiques bàsiques i filtres preliminars per eliminar del conjunt de candidats el contingut clarament no receptiu o antiquat.
A continuació, fem servir múltiples etapes de classificació progressivament avançades. Les primeres etapes es basen en puntuadors basats en lèxic i encastaments optimitzats per a la velocitat. A mesura que el conjunt de candidats es va reduint gradualment, utilitzem models de re-classificació de codificadors creuats més potents per dur a terme l'esculpit final del conjunt de resultats. Gràcies a les nostres nombroses inversions en el rendiment de la inferència, podem aprofitar arquitectures de models d'última generació per a aquestes etapes posteriors tot mantenint baixa la latència general de classificació.
Al llarg d'aquesta canonada, recuperem i puntuació els resultats tant a nivell de document com de subdocument. Tal com s'ha comentat anteriorment, la IA requereix una enginyeria de context acurada. La nostra canonada està dissenyada per mostrar al model les unitats més atòmiques possibles, de manera que els consumidors posteriors puguin incorporar aquestes unitats precises sense arrossegar context irrellevant d'altres llocs dels documents font.
Garantir una alta qualitat a cada etapa d'aquesta canonada només és possible mitjançant el disseny conjunt amb la cartera de productes de Perplexity. Cada detall de la pila de classificació està dissenyat per aprofitar el ric senyal produït pels milions de sol·licituds d'usuaris que servim cada hora del dia. La gran majoria d'aquest senyal està automatitzada, i cada resposta de Perplexity generada proporciona una dada empírica sobre la qualitat de cerca tal com s'utilitza en un flux de treball agèntic en viu. Combinem avaluacions impulsades per IA amb comentaris humans en directe per enriquir les dades d'entrenament per als nostres models d'incrustació i classificació molt més enllà del que qualsevol conjunt de dades construït manualment pot oferir.
Aquesta sinergia entre la cerca i el producte és única de Perplexity. Els motors de cerca heretats es limiten al senyal groller proporcionat per la telemetria d'enllaços blaus. Les noves ofertes de cerca han intentat implementar alguns d'aquests conceptes orientats a la IA, però els falten entorns del món real que puguin validar la qualitat de cerca i proporcionar la riquesa de senyal necessària per als bucles de millora ràpida. Tenim la sort de tenir l'ingredient que faltava: un camp de proves en directe per a la qualitat de cerca, impulsat per LLM de frontera i provat contínuament en combat per milions d'usuaris curiosos de tot el món.
Establiment d'una nova frontera per a la qualitat i el rendiment
Després de construir la Perplexity Search API i el SDK per posar la nostra infraestructura de cerca a disposició dels desenvolupadors de tot el món, volíem entendre com es comportaven les diverses ofertes d'API comercials en casos d'ús d'IA del món real. S'ha tornat habitual avaluar els models d'IA per se, però necessitàvem un gir en aquest patró: avaluar la qualitat de les API de cerca quan són invocades per models d'IA.
Primer vam mirar l'ecosistema de codi obert per entendre l'estat de la tècnica anterior. Vam trobar molts dels ingredients clau per a una avaluació rigorosa, però cap marc que integrés aquests ingredients en una solució d'avaluació comparativa plug-and-play. Per tant, ens vam proposar desenvolupar un marc d'avaluació que pogués ser utilitzat no només per Perplexity, sinó per qualsevol investigador o desenvolupador que busqués comparar API de cerca.
Utilitzant aquest marc d'avaluació, vam avaluar rigorosament la Perplexity Search API al costat d'altres ofertes. Optimitzar el rendiment de la cerca és complex, amb molts compromisos nuants entre la qualitat i la velocitat. En una victòria per als desenvolupadors, vam descobrir que la Perplexity Search API estableix un nou estàndard de referència tant per a la qualitat com per a la latència. Els desenvolupadors ja no necessiten triar entre construir aplicacions extremadament ràpides i garantir resultats d'alta qualitat: amb Perplexity, poden tenir ambdues coses.
Disseny d'avaluacions fiables per a fluxos de treball de cerca agèntica
Vam començar definint tres principis rectors per al nostre marc d'avaluació:
Espectre de complexitat: el marc d'avaluació ha de mesurar el rendiment tant en casos d'ús d'IA agèntica senzills com complexos.
Neutralitat: el marc d'avaluació ha d'avaluar totes les API en igualtat de condicions.
Simplicitat: tot i que determinats casos d'ús poden ser complexos, el marc en si ha de ser el més simple possible perquè d'altres puguin entendre'l, reproduir els resultats i ampliar el marc amb un mínim de tedium.
El nostre marc d'avaluació lleuger, search_evals, aconsegueix aquests objectius mitjançant un disseny modular simple. Vam desenvolupar dos arnesos d'agents d'IA per capturar tant els casos d'ús de cerca clàssica d'una sola tirada com els fluxos de treball agèntics avançats (exemplificats per diversos productes d'
Per impulsar les nostres avaluacions, vam adoptar quatre referències: SimpleQA i FRAMES per a la cerca d'un sol pas, juntament amb BrowseComp i HLE per a la investigació profunda. Col·lectivament, aquests punts de referència proporcionen mesures ben acceptades per als agents de coneixement. Seguint la convenció establerta, qualifiquem totes les referències utilitzant la mateixa metodologia de classificador amb indicis utilitzada en el treball original. Les implementacions de referència precises (inclosa la lògica del classificador) es poden revisar al nostre repositori de GitHub.
Vam dissenyar el marc tenint en compte la reproductibilitat i l'extensibilitat. Tant les puntuacions a nivell de tasca com les sortides d'agents subjacents s'emmagatzemen amb cada execució. Es poden integrar fàcilment arnesos, referències i ofertes d'API de cerca addicionals. Els investigadors i desenvolupadors poden llegir la documentació de GitHub per obtenir més informació sobre com ampliar el marc per satisfer les vostres necessitats exactes.
Resultats de l'avaluació
Armats amb aquest marc d'avaluació, ens vam proposar avaluar la nostra API de cerca en comparació amb altres ofertes d'API. A totes les referències provades, Perplexity es posiciona com l'API més ràpida i de més alta qualitat del mercat.
Hem trobat que les nostres inversions descrites anteriorment en l'índex, la recuperació i l'eficiència de la classificació van valdre la pena amb escreix. La latència mediana de Perplexity es situa en 358 ms, més de 150 ms per davant del segon proveïdor més ràpid. La latència del percentil 95 es manté còmodament per sota dels 800 ms. Amb les mètriques llargues de TTFT (temps fins al primer token) dels models de frontera actuals, cada mil·lisegon importa a l'hora de crear experiències d'usuari delicioses. Hem passat els darrers dos anys optimitzant la latència per als nostres propis usuaris, i ens complau que aquestes mateixes inversions beneficiïn ara també la comunitat de desenvolupadors.
Latència de l'API de cerca
(sol·licituds iniciades des d'AWS us-east-1)
p50 | p75 | p90 | p95 | |
Perplexity | 358 ms | 443 ms | 604 ms | 763 ms |
Exa | 1375 ms | 1499 ms | 1798 ms | 2188 ms |
Brave | 513 ms | 637 ms | 728 ms | 808 ms |
Basat en SERP* | 1342 ms | 1586 ms | 1743 ms | 1790 ms |
Percentils de latència de l’API de cerca per a les sol·licituds iniciades des de AWS us-east-1.
* Molts proveïdors d'API de cerca utilitzen el raspat de SERP com a base per als seus resultats. Per capturar el rendiment d'aquests enfocaments, utilitzem una API representativa basada en SERP de Google oferia per Tavily.
Aquest avantatge de velocitat no es produeix a costa de la qualitat. La Perplexity Search API proporciona un rendiment d'última generació tant en entorns de cerca d'un sol pas com d'investigació profunda. A cada referència provada, Perplexity lidera el grup a l'hora de proporcionar resultats d'alta qualitat que poden alimentar fluxos de treball d'IA de complexitat variable. El marge entre Perplexity i la millor alternativa és especialment pronunciat a SimpleQA i HLE, la qual cosa indica que aquests resultats són sòlids a tot l'espectre de complexitat de les tasques.
Igual que amb la latència, el nostre lideratge en qualitat de cerca flueix descendentment del nostre lideratge en la construcció de productes d'IA agradables i amb molt de trànsit. Els nostres milions d'usuaris utilitzen Perplexity per satisfer la seva curiositat sobre qualsevol tema imaginable, i els senyals de qualitat i rellevància resultants permeten que els nostres models de cerca millorin a cada hora que passa.
Punts de referència de qualitat de l'API de cerca
Cerca d'un sol pas | Investigació profunda | |||
SimpleQA | FRAMES | BrowseComp | HLE | |
Perplexity | .930 | .453 | .371 | .288 |
Exa | .781 | .399 | .265 | .242 |
Brave | .822 | .320 | .221 | .191 |
Basat en SERP* | .890 | .437 | .348 | .248 |
Puntuacions de qualitat de l’API de cerca a SimpleQA, FRAMES, BrowseComp i HLE.
Encara ens trobem en les primeres etapes dels motors de cerca nadius d'IA, i l'art i la ciència del mesurament sens dubte evolucionaran. Videm la comunitat a contribuir desenvolupant mètodes rigorosos i creatius per avaluar els motors de cerca en l'era dels agents d'IA.
El bloc de construcció per al proper capítol de la IA
El futur dels sistemes agèntics i dels assistents intel·ligents dependrà de la disponibilitat d'interfícies programàtiques riques en el coneixement col·lectiu del món. Els motors de cerca heretats d'avui dia s'han saturat en l'ús a aproximadament 10¹⁰ consultes diàries, una xifra que probablement ha arribat al seu punt màxim. La propera generació de sistemes de cerca i recuperació servirà ordres de magnitud més sol·licituds, a mesura que un univers en constant creixement d'agents d'IA confia en ells per obtenir informació precisa en temps real.
Els nostres esforços fins a la data ens han posicionat com el motor de cerca més ràpid i amb millor rendiment accessible mitjançant API. Però caldrà una innovació encara més ambiciosa perquè puguem impulsar el proper capítol de la IA. Com escalem eficientment aquests sistemes davant d'una demanda cada cop més gran? Com es poden optimitzar aquests sistemes de cerca a la llum d'enfocaments nous de l'enginyeria de context i el postentrenament? I com naveguem per la tensió sempre present entre la exhaustivitat, la recència i la latència? Aquestes són qüestions obertes que Perplexity, amb la nostra combinació d'empremta de producte, escala i talent tècnic, està en una posició única per abordar.
Citació
@online{perplexity2025ArchitectingAndEvaluatingAnAiFirstSearchApi,
author = {{Perplexity} and Aleksandr Bogutskii and Aleksandr Nikolenko and Aleksei Bykov and Alexander Pecheny and Alexandr Yarats and Arsenii Shevchenko and Denis Bykov and Dmitry Pervukhin and Ismail Gadzhiev and James Liounis and Kevin Hu and Kirill Priemko and Maksim Gaiduk and Maksim Morozov and Marko Kevac and Michael Liang and Mikhail Galanin and Nandor Licker and Nataliya Pevgova and Nikita Kireev and Nikolai Tretiak and Paul Schofield and Saif Ali Raja and Saleh Alghusson and Sebastian Sepulveda and Sergei Miller and Svyatoslav Feldsherov and Vitalii Polshkov and Vladimir Zaytsev and Denis Yarats},
title = {{Architecting and evaluating an AI-first Search API}},
date = {2025-09-25},
url = {https://www.perplexity.ai/hub/blog/architecting-and-evaluating-an-ai-first-search-api}
}