Perplexity 如何構建 AI 版 Google
很多時候,AI 代理編寫的代碼幾乎可以工作,但卻讓開發人員陷入調試而不是發佈。Warp 改變了這一點。
使用 Warp,我們可以獲得:
- 排名第一的編碼代理:在基準測試中名列前茅,開箱即用地提供更準確的代碼。
- 緊密的反饋循環:內置的代碼審查和編輯功能讓開發人員快速發現問題、手動編輯或重新提示。
- 使用 Warp 每天節省 1-2 小時:這一切都歸功於 Warp 97% 的差異接受率。
免責聲明:本文中的詳細信息來源於 Perplexity 工程團隊、Vespa 工程團隊、AWS 和 NVIDIA 在線分享的內容。所有技術細節的功勞歸於 Perplexity 工程團隊、Vespa 工程團隊、NVIDIA 和 AWS。原始文章和來源的鏈接位於文章末尾的參考部分。
從本質上講,Perplexity AI 建立在一個簡單但強大的理念之上:將在線搜索從幾個藍色鏈接的列表轉變為直接的"答案引擎"。
目標是創建一個工具,可以為我們閲讀網頁,提取最重要的信息,並給我們一個單一、清晰的答案。
可以把它想象成傳統搜索引擎和智能 AI 聊天機器人的結合
當我們提出問題時,Perplexity 首先搜索實時互聯網以獲取最新和最相關的信息。然後,它使用強大的 AI 來閲讀和綜合它找到的內容,形成一個直接的摘要。這種方法與僅依賴訓練數據的 AI 模型非常不同,因為那些數據可能已經過時幾個月甚至幾年。
這種設計直接解決了 AI 聊天機器人面臨的兩個最大挑戰:
- 無法訪問當前事件。
- 傾向於"幻覺"或編造事實。
通過將每個答案建立在真實、可驗證的網頁基礎上,併為其來源提供引用,Perplexity 旨在成為更值得信賴和可靠的信息來源。
有趣的是,該公司並不是從這個宏大的願景開始的。他們最初的項目是一個更技術性的工具,用於將普通英語翻譯成數據庫查詢。
然而,2022 年底 ChatGPT 的推出是一個轉折點。團隊注意到 ChatGPT 的主要批評之一是缺乏來源。他們意識到自己的內部原型已經解決了這個問題。在一個果斷的舉動中,他們放棄了在原始項目上進行的四個月工作,全力專注於為網絡構建真正的答案引擎的挑戰。這一決定塑造了公司的整個技術方向。
Perplexity 的 RAG 管道
Perplexity 服務的支柱是精心實施的檢索增強生成(RAG)管道。以下是 RAG 的高層次概覽
在 Perplexity 的 RAG 背後是一個多步驟過程,幾乎每個查詢都會執行該過程,以確保生成的答案既相關又基於當前信息的事實。
該管道可以分解為五個不同的階段:
- 查詢意圖解析:當用户提交查詢時,過程就開始了。系統首先使用 LLM(可能是 Perplexity 自己的微調模型之一,或者是 GPT-4 等第三方模型)來解析用户的意圖,而不是依賴簡單的關鍵詞匹配。這個初始步驟超越了詞彙層面,實現了對用户真正詢問內容的更深層次的語義理解,解釋上下文、細微差別和查詢的潛在目標。
- 實時網絡檢索:一旦理解了用户的意圖,解析後的查詢就會被髮送到一個強大的實時搜索索引。這個檢索系統會搜索網絡,尋找一組可能包含答案的相關頁面和文檔。這種實時檢索是過程中不可妥協的步驟,確保用於答案生成的信息始終儘可能新鮮和最新。
- 片段提取和上下文化:系統不會將檢索到的網頁的完整文本傳遞給生成模型。相反,它利用算法從這些來源中提取最相關的片段、段落或文本塊。這些簡潔的片段直接與用户的查詢相關,然後被聚合以形成將提供給 LLM 的"上下文"。
- 帶引用的綜合答案生成:然後,精選的上下文被傳遞給選定的生成式 LLM。模型的任務是僅基於提供的上下文中包含的信息生成自然語言、對話式響應。這是架構的嚴格和定義性原則:“我們不應該説任何我們沒有檢索到的內容”。為了執行這一原則並提供透明度,一個關鍵功能是在生成的文本中附加內聯引用。這些引用鏈接回源文檔,允許用户驗證每條信息,並在選擇時深入研究源材料。
- 對話式優化:Perplexity 系統是為對話而設計的,而不是單次查詢。它維護正在進行的對話的上下文,允許用户提出後續問題。當提出後續問題時,系統通過結合現有的對話上下文和新的迭代網絡搜索來優化其答案。
下圖顯示了 RAG 原理上的一般工作方式:
編排層
Perplexity 的核心技術能力不是開發單一、優越的 LLM,而是將各種 LLM 與高性能搜索系統相結合的編排,以提供快速、準確和成本效益高的答案
這是一個複雜的挑戰,需要平衡 LLM 的高計算成本與實時搜索產品的低延遲需求。
為了解決這個問題,該架構被明確設計為模型無關的。
它利用異構模型組合,包括來自"Sonar"系列的內部微調模型和來自 OpenAI(GPT 系列)和 Anthropic(Claude 系列)等領先實驗室的第三方前沿模型。
這種靈活性由智能路由系統管理。該系統使用小型、高效的分類器模型首先確定用户的意圖和查詢的複雜性。基於此分類,請求然後被路由到最適合和最具成本效益的模型來完成特定任務。例如,對定義的簡單請求可能由小型、快速的內部模型處理,而需要多步推理或代理行為的複雜查詢將被路由到更強大和更昂貴的模型,如 GPT-5 或 Claude Opus。
這種動態決策過程,遵循"使用能夠提供最佳用户體驗的最小模型"的原則,是大規模管理性能和成本的關鍵架構策略。
這種模型無關的設計不僅僅是技術優化,還是一個關鍵的戰略防禦。在一個底層大型語言模型快速發展並面臨商品化風險的行業中,完全建立在單一第三方 API 上的簡單架構會產生重大業務風險,包括供應商鎖定、不可預測的價格變化以及對另一家公司路線圖的依賴。
Perplexity 架構有意緩解這些風險。目標是創建一個可以利用不同模型(如開源和閉源)並讓它們共生工作的系統,以至於最終用户不需要知道或關心正在使用哪個特定模型。
這種架構選擇表明了一個明確的信念:公司的"護城河"不是任何單一的 LLM,而是管理與這些模型交互以為最終用户提供最佳結果的專有編排系統。
檢索引擎
Perplexity 的 RAG 管道的"檢索"組件是整個系統準確性和相關性的基礎。檢索信息的質量直接決定了最終生成答案的質量。
Perplexity 使用 Vespa AI 來支持其龐大且可擴展的 RAG 架構。選擇 Vespa 是因為需要一個能夠提供實時、大規模 RAG 的平台,具有面向消費者的應用程序所需的高性能、低延遲和可靠性,該應用程序為數百萬用户提供服務。
以下是 Perplexity 能夠實現的查詢延遲的比較圖表:
來源:Perplexity 研究博客
Vespa 的一個關鍵優勢是其統一性。它將多種關鍵搜索技術集成到一個單一、連貫的引擎中,包括用於語義理解的向量搜索、用於精確性的詞彙搜索、結構化過濾和機器學習排名。這種集成方法消除了嘗試將多個不同系統(如獨立的向量數據庫與單獨的關鍵詞搜索引擎如 Elasticsearch)拼接在一起所產生的大量工程開銷和複雜性。
選擇在 Vespa 上構建的決定也是由於需要專注於有限的工程資源。從頭開始構建網絡規模的實時搜索引擎是一項極其困難和資本密集的工作,這是 Google 和 Yahoo(Vespa 的起源地)等公司已經投入數十年和數十億美元來解決的問題。
Perplexity 的核心使命不是重新發明搜索索引,而是在搜索基礎之上構建新穎的答案引擎。通過戰略性地將分佈式、實時搜索這一成熟且基本"已解決"的問題外包給像 Vespa 這樣的專業平台,Perplexity 相對較小的約 38 人的工程團隊能夠將其精力集中在其技術堆棧的獨特和差異化部分,包括以下內容:
- RAG 編排邏輯。
- 其專有 Sonar 模型的微調。
- 其內部 ROSE 推理引擎的超優化。
這是在最高架構級別執行的經典"構建與購買"決策。
索引和檢索基礎設施
建立在 Vespa 上的基礎設施旨在處理 AI 驅動的答案引擎的獨特需求,優先考慮規模、新鮮度和對內容的深入理解。
以下是其關鍵方面:
1 - 網絡規模索引
該系統在一個涵蓋數千億網頁的龐大索引上運行。
Perplexity 的爬取和索引基礎設施跟蹤超過 2000 億個唯一 URL,由數萬個 CPU 和一個多層存儲系統支持,僅熱存儲就超過 400 PB。
Vespa 的分佈式架構是管理這種規模的基礎。它自動、透明和動態地在許多節點的集羣中分區和分發內容。至關重要的是,它將給定數據的所有信息、索引和計算邏輯共同定位在同一節點上,這有效地分配了查詢負載,並避免了可能使大規模系統癱瘓的網絡帶寬瓶頸。
2 - 實時新鮮度
對於答案引擎來説,信息陳舊是一個關鍵的失敗模式。系統必須反映世界的現狀,就在此刻。
Perplexity 的基礎設施專為此而設計,每秒處理數萬個索引更新請求,以確保索引提供最新鮮的可用結果。
這是由 Vespa 獨特的索引技術實現的,該技術能夠在實時廉價且高效地改變索引結構,即使在它們被主動讀取以服務查詢時也是如此。它允許持續的更新流而不會降低查詢性能。
為了管理這個過程,訓練了一個 ML 模型來預測候選 URL 是否需要被索引,並在最有用的時間安排索引操作,根據 URL 的重要性和可能的更新頻率進行校準。
3 - 細粒度內容理解
系統對內容的理解遠遠超出文檔級別。
Perplexity 的索引基礎設施將文檔劃分為"細粒度單元"或"塊"。Vespa 的分層排名能力允許它根據這些單獨塊與查詢的相關性對它們進行評分,而不是返回長文章的整個內容。
這意味着系統可以識別並僅返回最相關文檔中最相關的段落或句子,為 LLM 處理提供更集中和高效的上下文。
以下是顯示 Perplexity 通常如何呈現其搜索結果的屏幕截圖:
來源:Perplexity 研究博客
4 - 自我改進和 AI 驅動的內容解析
為了應對開放網絡的非結構化和經常不一致的性質,Perplexity 的索引操作利用 AI 驅動的內容理解模塊。
該模塊動態生成並調整解析規則集,以從不同網站提取語義上有意義的內容。
該模塊不是靜態的。它通過迭代的 AI 自我改進過程優化自身。在這個循環中,前沿 LLM 評估當前規則集在完整性和質量維度上的性能。然後,系統使用這些評估來制定、驗證和部署建議的更改以解決錯誤類別,確保模塊持續演進。這個過程對於將文檔分割成獨立的、原子的上下文單元至關重要,這些單元對 LLM 來説是理想的。
5 - 混合搜索和排名能力
Perplexity 答案的高質量從根本上受到其檢索信息質量的限制。因此,其排名算法充當整個 RAG 管道的關鍵質量守門人。
Perplexity 利用 Vespa 的高級功能實現多階段架構,在嚴格的延遲預算下逐步優化結果。以下是關鍵方面:
- 密集檢索(向量搜索):這種技術允許系統超越關鍵詞,在語義或概念層面匹配內容。它使用向量嵌入來理解用户查詢背後的含義,並找到上下文相似的文檔,即使它們不共享相同的詞語。
- 稀疏檢索(詞彙搜索):雖然向量搜索在捕獲廣泛含義方面表現出色,但它可能缺乏精確性。稀疏檢索包括傳統的基於關鍵詞的技術和排名函數(如 BM25),提供了這種必要的精確性。它允許系統對罕見術語、產品名稱、內部公司名稱和其他特定標識符進行精確匹配,在這些情況下語義歧義是不可取的。
- 機器學習排名:系統的真正力量在於其結合這些不同信號的能力。Vespa 使 Perplexity 能夠實現高級的多階段排名模型。在這個過程中,可能使用詞彙和向量搜索的組合檢索初始候選文檔集。然後,更復雜的機器學習模型評估這些候選文檔,使用豐富的特徵集(如詞彙相關性分數、向量相似性、文檔權威性、新鮮度、用户參與信號和其他元數據)來產生最終的、高度準確的排名。
下圖顯示了向量搜索在 RAG 系統上下文中的典型工作方式:
排名堆棧與 Perplexity 的面向用户的產品共同設計,使其能夠利用來自數百萬日常用户請求的豐富、自動化信號來持續豐富其訓練數據。
生成引擎
在 Perplexity 在網絡上找到最佳信息後,下一步是將其轉化為清晰、易讀的答案。
這由"生成引擎"處理,它是編寫響應的 AI 大腦。為此,Perplexity 使用了一個巧妙的兩部分策略:它將自己的定製 AI 模型與來自其他領先技術實驗室的最強大模型的選擇相結合。這種混合方法使公司能夠完美平衡成本、速度和對最先進 AI 能力的訪問。
- 這一策略的第一部分是 Perplexity 自己的 AI 模型系列,稱為 Sonar。這些模型不是完全從頭開始構建的,那將是非常昂貴和耗時的。
- 相反,Perplexity 從強大的、公開可用的開源模型開始。然後他們針對自己的特定需求對它們進行"微調"。
Perplexity 在自己的大量數據集合上訓練這些基礎模型,教它們成為出色答案引擎所需的特殊技能。這些技能包括準確總結信息的能力、正確添加來源引用以及嚴格遵守在網絡搜索期間發現的事實。每次用户與服務交互時,Perplexity 都會收集更多數據,幫助它持續改進其 Sonar 模型,使它們更智能、更有幫助。
該策略的第二部分涉及整合來自更廣泛 AI 世界的"最佳中的最佳"。對於付費訂閲者,Perplexity 提供對可用的最先進模型的精選訪問,例如 OpenAI 的 GPT 系列和 Anthropic 的 Claude 模型。這為用户提供了使用絕對最強大的 AI 來完成需要深度推理、創造力或複雜問題解決的任務的選項。
為了使這一切順利運行,Perplexity 使用一個名為 Amazon Bedrock 的服務,它就像一個通用適配器,允許他們輕鬆地將這些不同的第三方模型插入他們的系統,而無需為每個模型構建單獨的自定義集成。
這種"兩全其美"的方法是 Perplexity 商業模式的關鍵。
Perplexity 的推理堆棧
擁有強大的 AI 模型是一回事,但向數百萬人提供快速且負擔得起的答案是一個巨大的技術挑戰。
運行 AI 模型非常昂貴,因此 Perplexity 構建了一個複雜的高性能系統來高效地完成它。這個系統,被稱為"推理堆棧",是使整個服務成為可能的引擎。
該系統的核心是一個名為 ROSE 的定製引擎。Perplexity 創建 ROSE 是為了做好兩件事。
- 首先,它需要靈活,允許工程團隊快速測試和採用最新發布的 AI 模型。
- 其次,它需要成為極端優化的平台,從模型中擠出每一點性能,使它們運行得更快、更便宜。
ROSE 主要用 Python 構建,並利用 PyTorch 進行模型定義。這種選擇提供了適應新的和各種模型架構所需的靈活性和易於開發性。
- 然而,對於性能絕對關鍵的組件,例如
服務邏輯和批處理調度算法,團隊正在將代碼庫遷移到 Rust。此舉利用了 Rust 與 C++ 相當的性能,以及其強大的內存安全保證,使其成為高性能、可靠系統代碼的理想選擇。
該引擎圍繞一個核心 LLM 引擎構建,該引擎可以加載模型權重並生成解碼的 token。它支持高級解碼策略,包括推測解碼和 MTP(多 token 預測)解碼器,這可以改善延遲。
整個操作在 Amazon Web Services(AWS)雲平台上運行,使用最先進的 NVIDIA H100 GPU 集羣。這些 GPU 本質上是專門為 AI 用例設計的超強大計算機芯片。為了管理這個強大硬件的集羣,Perplexity 使用像 Kubernetes 這樣的行業標準工具來編排所有移動部件,並確保系統平穩運行並能夠處理大量流量。
請參見下圖,顯示 Perplexity 如何使用 NVIDIA 大規模部署 LLM 生產
雜系統而不是簡單地付費使用其他 AI 模型有巨大的回報。通過控制整個堆棧,從軟件引擎到硬件,Perplexity 可以針對其特定需求優化一切。這種控制直接導致用户響應時間更快,業務成本更低。
結論
Perplexity AI 的技術架構揭示了其作為"AI 版 Google"的力量並非源於單一、神奇的大型語言模型。
相反,它的成功是工程化一個完整的端到端系統的結果,其中每個組件都經過精心選擇和深度優化,以與其他組件協同工作。
- 首先是世界級的檢索引擎,建立在 Vespa.ai 的可擴展和實時基礎之上。該系統提供高質量、新鮮和相關的信息,作為每個答案的事實基石。它還有一個複雜的混合排名算法充當關鍵守門人。
- 其次是靈活的、模型無關的編排層。這個核心邏輯智能地解析用户意圖,並將查詢路由到最合適的生成模型,無論是針對特定任務微調的成本效益高的內部 Sonar 模型,還是來自第三方實驗室的最先進的前沿模型。這一層提供了在快速發展的 AI 領域競爭所需的經濟和戰略靈活性。
- 第三是超優化的內部推理堆棧,以 ROSE 引擎為中心。這個定製系統在 AWS 雲中的最先進 NVIDIA 硬件上運行,從它服務的模型中提取每一滴性能和成本效率。
摘要:
Perplexity AI:構建下一代智能搜索引擎
- Perplexity AI通過創新的"答案引擎"模式重新定義搜索體驗,將傳統搜索引擎與AI技術結合。
- 其核心技術是檢索增強生成(RAG)管道,包含五個關鍵步驟:
查詢意圖解析、實時網絡檢索、片段提取、帶引用的答案生成和對話優化。
系統採用模型無關的架構,智能路由查詢到最適合的LLM,包括自研Sonar系列和第三方模型如GPT-4。
檢索引擎基於Vespa AI構建,處理2000億網頁的實時索引,強調信息新鮮度(每秒數萬次更新)和細粒度內容理解。
Perplexity的技術創新點包括:
實時互聯網檢索確保信息時效性- AI驅動的
內容解析和自我改進機制 嚴格的引用機制防止信息幻覺動態模型路由平衡成本和性能
這一架構使Perplexity能在保持38人小團隊的同時,提供可與Google競爭的新型搜索體驗。
參考資料:
- 架構和評估 AI 優先搜索 API
- Perplexity 如何使用 Vespa AI 在 AI 搜索上擊敗 Google
- 聚焦:Perplexity AI 使用 NVIDIA 推理堆棧每月服務 4 億次搜索查詢
- 深度閲讀:Perplexity CTO Denis Yarats 談 AI 驅動的搜索
- Perplexity 使用 Amazon Bedrock 中的 Anthropic Claude 3 構建高級搜索引擎