對標 FAISS,百度開源自研高性能檢索引擎 Puck

2023-10-28     InfoQ

原標題:對標 FAISS,百度開源自研高性能檢索引擎 Puck

編輯 | Tina

近日,百度宣布在 Apache 2.0 協議下開源自研檢索引擎 Puck,這也是國內首個適用於超大規模數據集的開源向量檢索引擎。向量檢索算法在個性化推薦系統、多模態檢索、自然語言處理等應用場景中都發揮著重要作用,特別是在處理大規模數據和高維特徵數據時。

名稱「Puck」取自經典 MOBA 遊戲 DOTA 中的智力英雄 Puck,象徵著飄逸和靈動。這個項目經過多年在百度內部的精心打磨,而且在 2021 年底 Nerulps 舉辦的全球首屆向量檢索大賽 BIGANN 比賽中,Puck 參與的四個項目均獲得第一名。InfoQ 採訪了百度搜索內容技術部主任架構師 Ben,以了解該項目的發展歷程和核心優勢。

開源地址:

https://github.com/baidu/puck

InfoQ:是否方便介紹一下您的工作經歷,以及目前的主要職責?

Ben:我從畢業即加入百度,最初在移動搜索部門,負責基礎檢索和相關性方面工作,經歷了移動高速發展的過程。之後作為創始成員協助組建了多模搜索部負責視覺搜索,屬於百度最早一批進入 AI 領域的員工。目前在搜索內容技術部,負責內容相關技術,包括內容獲取、內容理解、內容計算、內容加工與生成等。

InfoQ:您從什麼時候開始關注開源?是什麼讓您決定 Puck 要開源?選擇這個時候開源的原因是什麼?

Ben:我們很早就在思考開源,看到 FAISS(由 Facebook AI Research 開發的大規模向量檢索庫)開源之後獲得了廣泛的業界關注和應用,我們也希望開源 Puck 後,可以促進社區的發展,並藉助社區的力量提高代碼質量,加速技術創新,更好的適應市場需求。自研開源市場變得越來越成熟和規範,可能會帶來更多的商業模式和合作機會。

對外開源,我們其實籌備了很久,做了大量的準備工作。大模型的爆火,導致向量檢索技術獲得廣泛關注,我們認為,這是一個合適的開源契機。

InfoQ:您能具體講一下 Puck 在百度的發展史,以及從您角度來看,它對於百度搜索的價值主要體現在哪裡?

Ben:Puck 的想法最早來自視覺搜索業務,我們需要一個能支撐數百億相似圖片檢索的 ANN 引擎,同時要能支持高吞吐、低延時、高準確、低內存、高靈活性等要求,當時業內沒有能滿足我們需要的引擎,於是啟動了自研的過程。

2017 年 Puck 完成首次上線,在百億圖片庫上成本和效果都取得了極其顯著的提升;之後隨著 Transformer 模型在 nlp 領域的大放異彩,基於 embedding 的語義檢索越來越凸現價值,Puck 的應用也越來越廣,2019 年 Puck 在百度內部開源,支撐的業務數快速增長,目前已廣泛應用於百度搜索、推薦、網盤、知識圖譜等內部多條產品線,支持規模突破萬億。目前 ANN 已經成為網際網路底層基礎技術之一,是 AI 時代的基石,搜索最重要的支撐技術之一。

InfoQ:期間經過了幾次優化,優化重點是什麼,您能具體講述一下嗎?

Ben:到今天 Puck 已經是一個打磨多年的產品,中間的優化數不勝數,大體來說可以分成以下幾個階段:

這只是一個粗略的劃分。實際上,Puck 的優化更多地由許多微小的優化點組成。我們在討論中提出了大量有趣的想法,進行了大量的實驗和嘗試。總的來說,十個想法中最終只有一到兩個能成為正式的功能。這些優化最終匯聚在一起,形成了我們今天看到的 Puck。

InfoQ:您能否詳細介紹下 Puck 的核心優勢和應用場景?

Ben:Puck 開源項目包含了兩種百度自研的檢索算法和一系列的附加功能,核心優勢首先就是性能,經過多年的打磨和調優,在 benchmark 的千萬、億、十億等多個數據集上,Puck 性能優勢明顯,均顯著超過競品,在 2021 年底 Nerulps 舉辦的全球首屆向量檢索大賽 BIGANN 比賽中,Puck 參加的四個項目均獲得第一。

其次,易用性上,Puck 提供了一系列的適用於各種場景的功能,比如,同時提供簡單易用的 API 接入,儘量少的暴露參數,大部分參數使用默認設置即可達到良好性能。

最後,Puck 是一個久經考驗的引擎,經過多年在實際大規模場景下的驗證打磨,廣泛應用於百度內部包括搜索、推薦等三十餘條產品線,支撐萬億級索引數據和海量檢索請求,可靠性上有非常高的保障。

Puck 引擎這次開源了兩種檢索算法 Puck 和 Tinker,分別更適用於超大規模數據集和中小規模數據集,幾乎可以覆蓋絕大部分的檢索應用場景。目前已廣泛應用於百度內部搜索、推薦等多條產品線,覆蓋數據規模從百萬至萬億。

InfoQ:面對 AI 新浪潮,大模型在業內已越來越卷,在您看來未來開源市場會不會更卷?

Ben:AI 大模型的出現確實使得業內競爭更加激烈,但這並不是壞事。首先,大模型的發展推動了 AI 技術的進步,提高了 AI 的性能和效率。其次,大模型為業內帶來了更多的創新空間和可能性,推動了開源市場的發展。

以後業內在自研開源市場的競爭會更加激烈,但這並不意味著會更卷,相反是帶來了無限的可能。因為開源市場的特性是開放和共享,企業和個人可以通過開源市場獲取最新的 AI 技術和模型,而無需自己從零開始開發。這有助於整個行業降低研發成本和提高研發效率。

此外,開源市場也是技術交流和創新的平台,業內人士可以在這裡分享自己的研究成果,吸收他人的經驗和知識,共同推動 AI 技術的發展。所以,雖然競爭會更激烈,但只要我們能適應這種趨勢,積極參與交流和創新,就可以從中獲益。

InfoQ:那您認為網際網路公司開源項目的未來發展趨勢是什麼樣的?會往哪方面發展?

Ben

這些變化都將為推動科技發展和解決實際問題提供更強大的動力。

InfoQ:您提到 Puck 在內部已廣泛應用,有哪些大家熟悉的產品或場景嗎?能否舉個例子。

Ben:大家熟悉的百度搜索和手機百度內的信息流推薦都有使用 Puck 技術。

InfoQ:請問開源後是否收到了社區的一些反饋,對您有怎樣的啟發?

Ben:自從 Puck 開源以來,我們已經收到了不少來自社區的反饋和建議。這些反饋和建議對我們來說是非常寶貴的,它們不僅幫助我們發現了 Puck 的一些問題和不足,也為我們提供了改進和優化的方向。

對我個人來說,這些反饋啟發我認識到,雖然我們在內部使用 Puck 有著豐富的經驗,但在面對更廣泛的用戶群體時,我們還需要不斷學習和提高。每個用戶的需求都可能不同,我們需要更加深入地理解用戶的需求,才能更好地優化 Puck,使其更加適應不同的使用場景。

同時,這些反饋也讓我深切地感受到了開源社區的活力和創新精神。許多社區成員不僅提出了問題,還積極地提供了解決方案,這種積極參與和貢獻的精神讓我深感鼓舞。我希望在未來,我們能夠更緊密地與社區合作,共同推動 Puck 的發展。

InfoQ:Puck 對您個人的意義,您對 Puck 的未來有什麼期待?

Ben:Puck 是團隊長時間研究和努力的成果,作為 Puck 的負責人,我對這個項目有著深深的熱愛和執著,對我個人來說,它不僅僅是一個檢索引擎,而是代表團隊付出的心血和智慧的結晶,它是我們對技術的追求,對創新的執著,也是我們對未來的期待和憧憬,Puck 的每一次升級和優化都記錄著我們的成長和進步。

對於 Puck 的未來,我有著很高的期待。首先,我希望 Puck 能在開發者社區中得到廣泛的使用,同時也能得到社區的反饋,不斷優化和改進。我期待看到更多的人參與到 Puck 的開發和使用中來,通過大家的共同努力,讓 Puck 成為 AI 領域有影響力的一款工具。其次,我希望 Puck 能夠持續創新,不斷優化,保持其技術領先地位,不僅能適應現有的技術需求,還能預見並引領未來的技術趨勢。最後,我希望 Puck 能在更多實際應用中發揮出它的價值,為人工智慧在各個行業的應用提供強大支撐,推動科技的發展。

採訪嘉賓簡介

Ben,百度搜索內容技術部主任架構師,負責多模態內容理解、超大規模內容關係計算、內容加工與生成、模型優化等方向。

「這是一件關於雲服務的大事兒!」英特爾 4400 萬美元投資基礎設施初創公司,硬剛公有雲

頭髮絲 1/60 的精度,中國每 10 輛新能源汽車就有 6 輛用這家齒輪

語雀突發 P0 級事故!宕機 8 小時被網友怒噴,運維又背鍋?

智譜 AI「超 25 億融資」的背後

文章來源: https://twgreatdaily.com/zh-cn/2216cfa5111d8a6ed443e82ceca600c0.html