Perplexity wymienia silnik wyszukiwania. Własny Photon obniżył opóźnienia etapów pobierania do 65 ms
Perplexity wdrożyło autorski silnik Photon, który przejął etapy pobierania i rangowania dokumentów dla całego ruchu produkcyjnego wyszukiwarki. Nowy system, napisany w Rust, zastąpił wcześniej rozwijaną wersję silnika open source. Zmiany architektoniczne pozwoliły skrócić opóźnienie p99 samych etapów pobierania i rangowania z około 800 do 65 milisekund.
Przedstawiony wynik 65 ms dotyczy wyłącznie wewnętrznych etapów pobierania i wstępnej oceny dokumentów, a nie czasu wygenerowania pełnej odpowiedzi przez Perplexity. Na bazie nowego silnika firma uruchomiła także tryb Fast Search w swoim API, dla którego deklaruje opóźnienia pojedynczego wywołania na poziomie 160 ms (p50) oraz 230 ms (p95). Wszystkie te dane pochodzą z wewnętrznych pomiarów firmy.
Koniec z blokującymi odczytami z dysku
Poprzednia infrastruktura Perplexity opierała się na zmodyfikowanym silniku open source, który przestał radzić sobie ze wzrostem bazy dokumentów. Kiedy rozmiar indeksu przekroczył pojemność pamięci RAM, niemożliwe stało się utrzymanie go w całości w pamięci podręcznej. Zimne odczyty z dysku wywoływały błędy stron, które gwałtownie wydłużały czas obsługi zapytań.
Największe skoki opóźnień występowały podczas procedury scalania indeksów na dysku — opóźnienie p99 wzrastało wówczas do około 1,2 sekundy i utrzymywało się przez kilkanaście minut. Poważnym problemem była też obsługa awarii i skalowanie klastra: synchronizacja nowej kopii danych potrafiła zająć ponad tydzień, w trakcie którego rosła liczba niekompletnych odpowiedzi. Utrzymanie starego kodu stało się na tyle kosztowne, że firma zdecydowała o napisaniu nowego systemu od podstaw.
Kluczowa zmiana w Photonie dotyczy sposobu zarządzania dostępem do dysku. Zamiast czekać na kolejne błędy stron przy odczycie rozproszonych danych o dokumentach, silnik z wyprzedzeniem ustala ich położenie, sprawdza zasoby w pamięci podręcznej, a brakujące pozycje odczytuje wspólnie, zlecając asynchroniczne odczyty seryjne przez interfejs io_uring.
Photon rozdzielił też proces budowy indeksu od obsługi ruchu. Indeksy powstają na dedykowanych maszynach, a gotowe shardy są przełączane pod obciążeniem po uprzednim rozgrzaniu pamięci podręcznej zapytaniami z logów. Dzięki temu wdrożenie nowej kopii danych skrócono do około 30 minut, a pełna budowa indeksu zajmuje kilka godzin.
Według danych Perplexity nowy silnik obsługuje ten sam ruch przy użyciu około 20 proc. mniejszej liczby serwerów, przechowując jednocześnie około 2,5 raza więcej informacji na dokument.
Fast Search w API: niższy koszt kosztem precyzji
Na bazie Photona powstał tryb Fast Search w płatnym API wyszukiwarki, wyceniony na 1 dolara za 1000 zapytań (wobec 5 dolarów w trybie standardowym). Zastosowano w nim lżejszy model oceniania dokumentów, projektowany z myślą o powtarzalnych zapytaniach generowanych przez agentów AI.
W teście złożonym z 3554 zadań w sześciu benchmarkach Fast Search uzyskał wynik 64,3 proc. przy łącznym szacowanym koszcie 59,73 dolara, podczas gdy tryb domyślny osiągnął 64,0 proc. przy koszcie 187,60 dolara, co oznacza redukcję wydatków o około 68 procent.
Wewnętrzne testy jakościowe Perplexity pokazują jednak wyraźne ograniczenia tego wariantu. W przypadku trudnych zapytań wskaźnik trafności DCG spadł z 2,45 w trybie domyślnym do 2,21 w trybie Fast Search, a dostępność prawidłowej odpowiedzi zmniejszyła się o 2,9 punktu procentowego (z 0,596 do 0,567). Z tego względu firma rekomenduje tańszy tryb do prostych zapytań agentowych, wskazując tryb domyślny jako właściwy dla pytań złożonych i niejednoznacznych.
