Perplexity AI выпустила Photon — высокопроизводительный движок ретривала и ранжирования, написанный на Rust. Он заменил форкнутый open-source проект и теперь обрабатывает 100% продакшен-трафика. Главная метрика: падение p99 задержки с ~800 мс до 65 мс. Это позволяет использовать поиск в агентных воркфлоу без критических задержек.
01Почему старый стек не справился
Предыдущее решение достигло предела масштабируемости при росте индекса. Основные проблемы:
- Хвостовая задержка (Tail Latency): p99 достигал 800 мс. Из-за объема данных, превышающего RAM, использование
mlockбыло невозможно, что вызывало page faults при холодных чтениях. - Сpike при слиянии (Merge Spikes): Во время слияния индексов на диске задержка росла до 1.2 с на 10–15 минут.
- Медленное восстановление: Синхронизация нового кластера занимала более недели, увеличивая долю частичных ответов.
02Архитектура Photon: как это работает
Система построена на принципах асинхронности и минимизации блокировок. Запрос маршрутизируется через балансировщик к брокеру, который рассылает задачи на шарды.
Ключевые оптимизации
- Адаптивные постинг-листы: Короткие списки хранятся inline. Длинные делятся на блоки: sparse-блоки используют галопирующий поиск по отсортированным смещениям, dense-блоки — битовые карты для проверки членства за O(1).
- Бюджетированный обход (Budgeted Traversal): Алгоритм типа WAND разделяет списки на «ведущие» и «зондирующие». Точные частоты терминов считываются только если кандидат может превысить порог.
- Docblob записи: Используется кодировка Элиаса-Фано. Ранжирование требует всего одной lookup-операции на документ.
- Пакетные асинхронные чтения: Чтения через
io_uringбез блокировок. Eviction policy — CLOCK, а не shared LRU.
03Fast Search: скорость для AI-агентов
На базе Photon запущен режим Fast Search, оптимизированный для агентов. Он жертвует частью релевантности ради скорости и цены.
Бенчмарки и стоимость
На 3,554 задачах (WideSearch, BrowseComp, DSQA и др.) Fast Search показал:
- Стоимость: $59.73 за выполнение набора задач (включая модель и поиск).
- Сравнение: Дефолтный режим стоил $187.60. Экономия — ~68%.
- Качество: DCG упал с 2.45 до 2.21. Доступность ответов снизилась на 2.9 п.п. (с 0.596 до 0.567).
Рекомендация Perplexity: использовать Fast Search для повседневных циклов агентов, а дефолтный режим — для сложных, неоднозначных запросов.
04Сравнение с конкурентами
Ниже приведено сравнение параметров Fast Search с ближайшими аналогами на рынке.
| Параметр | Perplexity Fast Search | Exa Instant | Tavily Ultra-fast |
|---|---|---|---|
| Параметр запроса | search_type: "fast" |
type: "instant" |
search_depth: "ultra-fast" |
| Задержка (Vendor) | 160 мс (p50), 230 мс (p95) | ~250 мс (typical) | Нет данных (низкая задержка) |
| Цена за 1K запросов | $1 | $4 (до 10 результатов) | $8 (pay-as-you-go) |
| Ограничения | Ниже релевантность | Доп. результаты платно | Только EN/JP |
Примечание: Задержки указаны по данным вендоров и могут отличаться в реальных условиях.
05Как интегрировать Fast Search
Для использования быстрого режима в API Perplexity необходимо передать параметр search_type: "fast".
cURL запрос:
curl -X POST 'https://api.perplexity.ai/search' \
-H 'Authorization: Bearer $PERPLEXITY_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"query": "latest stable Rust release", "search_type": "fast", "max_results": 5}'Python SDK (v0.43.4+):
client = Perplexity(api_key="your_api_key")
response = client.search.create(
model="sonar",
query="latest stable Rust release",
max_results=5,
extra_body={"search_type": "fast"}
)06Кому подойдёт / что запустится
- AI-агенты: Идеально для RAG-систем, где критична скорость ответа (latency-sensitive loops). Экономия 68% на поиске существенна при массовых запросах.
- High-load сервисы: Если ваш бот или API делает много запросов к поиску, тариф $1/1k запросов при задержке ~230 мс (p95) выглядит конкурентным по сравнению с Tavily ($8) или Exa ($4).
- Локальный деплой: Не применимо. Photon закрыт. Для локального решения с аналогичной производительностью (Rust, io_uring) потребуется самостоятельная разработка на базе Qdrant/Weaviate с кастомной оптимизацией, что сложно и дорого.
Источник: MarkTechPost ↗
