Главная/Блог/Обзор/Perplexity Photon: Rust-движок для…
Обзор3 мин чтения · 30 сентября 2026 г.

Perplexity Photon: Rust-движок для поиска с задержкой 65 мс

Perplexity представила Photon — собственный движок поиска на Rust, сокративший p99 задержку с 800 до 65 мс. Разбираем архитектуру, стоимость Fast Search и сравнение с конкурентами.

Perplexity Photon: Rust-движок для поиска с задержкой 65 мс

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 минут.
  • Медленное восстановление: Синхронизация нового кластера занимала более недели, увеличивая долю частичных ответов.
💡
Экономия ресурсов. Photon использует на 20% меньше серверов для обслуживания, чем старый стек, и хранит в 2.5 раза больше данных на документ, улучшая качество ранжирования без роста инфраструктуры.

02Архитектура Photon: как это работает

Система построена на принципах асинхронности и минимизации блокировок. Запрос маршрутизируется через балансировщик к брокеру, который рассылает задачи на шарды.

Ключевые оптимизации

  • Адаптивные постинг-листы: Короткие списки хранятся inline. Длинные делятся на блоки: sparse-блоки используют галопирующий поиск по отсортированным смещениям, dense-блоки — битовые карты для проверки членства за O(1).
  • Бюджетированный обход (Budgeted Traversal): Алгоритм типа WAND разделяет списки на «ведущие» и «зондирующие». Точные частоты терминов считываются только если кандидат может превысить порог.
  • Docblob записи: Используется кодировка Элиаса-Фано. Ранжирование требует всего одной lookup-операции на документ.
  • Пакетные асинхронные чтения: Чтения через io_uring без блокировок. Eviction policy — CLOCK, а не shared LRU.
⚠️
Важно для практиков. Photon не является open-source. Самостоятельно развернуть движок на своем железе нельзя. Доступен только через hosted API Perplexity.

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 запрос:

terminalbash
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+):

terminalpython
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 ↗

Perplexity Photon: Rust-движок поиска с задержкой 65 мс | AIKraft