• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

艾體寶產(chǎn)品丨Redis 8 向量搜索實(shí)測:輕松擴(kuò)展至 10 億向量

22小時(shí)前
170
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

Redis 向量搜索實(shí)測突破十億向量!

最新實(shí)測發(fā)現(xiàn),Redis 8 在海量數(shù)據(jù)場景下依然穩(wěn)得住,無論做圖文檢索還是多模態(tài)推薦都很適配~想看具體怎么調(diào)參數(shù)、怎么保持低延遲?這篇干貨文整理得很到位!

面對生成式 AI 帶來的超大規(guī)模向量需求,Redis 8 向量搜索實(shí)測輕松支持 10 億向量,依舊保持低延遲與高吞吐表現(xiàn)。本篇文章詳細(xì)介紹了 Redis 如何通過 HNSW 算法擴(kuò)展至十億級別,并提供完整測試配置與性能數(shù)據(jù)。無論是 AI 檢索、推薦系統(tǒng)還是多模態(tài)生成應(yīng)用,Redis 8 都是你構(gòu)建高效向量服務(wù)的可靠選擇。

隨著越來越多的公司把生成式人工智能(GenAI)應(yīng)用投入生產(chǎn),我們看到客戶對更大向量數(shù)據(jù)庫的需求不斷增長。我們發(fā)現(xiàn)了一些需要 10 億個(gè)或更多向量的使用場景,很高興能分享我們在這一規(guī)模上的基準(zhǔn)測試結(jié)果。

在測試中,我們在中位延遲為 200 毫秒的情況下達(dá)到了 90% 的精確度,而在處理 50 個(gè)并發(fā)搜索請求時(shí),對于前 100 個(gè)最近鄰(nearest neighbors),在中位延遲為 1.3 秒的情況下達(dá)到了 95% 的精確度。

將向量搜索擴(kuò)展到 10 億個(gè)向量并非易事,但 Redis 8 的發(fā)布讓這一過程顯得輕松。今天,我們將通過展示 Redis 在實(shí)時(shí)搜索 10 億個(gè) 768 維向量時(shí)的處理能力,來說明它如何應(yīng)對大規(guī)模應(yīng)用程序。我們嚴(yán)格測試了索引與搜索的性能,證明了 Redis 不僅是最快的向量數(shù)據(jù)庫,還能從數(shù)百萬個(gè)向量擴(kuò)展到數(shù)十億個(gè)向量,仍然提供極低的延遲。請查看下面的詳細(xì)信息。

測試配置詳解

我們使用了一個(gè)與 Intel? 合作準(zhǔn)備的向量數(shù)據(jù)集,該數(shù)據(jù)集包含 10 億個(gè) 768 維向量,采用 FLOAT16 精度和 10K 查詢,每個(gè)查詢有 100 個(gè)真實(shí)值(精確鄰居,exact neighbors)。該數(shù)據(jù)集源自LAION-5B 數(shù)據(jù)集,這是一個(gè)用于訓(xùn)練下一代圖生文模型(如 Stable Diffusion 和 OpenClip)的大規(guī)模數(shù)據(jù)集。

向量索引使用了歐幾里得距離度量和 FLOAT16 精度,并且在查詢時(shí)通過調(diào)整以下參數(shù)來實(shí)現(xiàn)不同的精確度:

  • EF_CONSTRUCTION(在索引創(chuàng)建時(shí)設(shè)置):在構(gòu)建圖時(shí),圖中每個(gè)節(jié)點(diǎn)允許的最大潛在出邊(potential outgoing edges candidates)候選數(shù)量。
  • M(在索引創(chuàng)建時(shí)設(shè)置):在圖的每一層中,每個(gè)節(jié)點(diǎn)允許的最大出邊數(shù)量。在第零層,最大出邊數(shù)量將是 2M。
  • EF_RUNTIME(在查詢時(shí)可變):在 KNN 搜索期間要保留的最大頂級候選數(shù)量(maximum top candidates)。更高的 EF_RUNTIME 值將導(dǎo)致更準(zhǔn)確的結(jié)果,但也會(huì)增加運(yùn)行時(shí)間。

使用數(shù)據(jù)集的 100 個(gè)最近鄰的真實(shí)值來評估每個(gè)回復(fù)的準(zhǔn)確性(召回率),并且我們對 M 在 4、8、16 和 32 個(gè)出邊之間,EF_CONSTRUCTION 在 4、8、16 和 32 之間,以及 EF_RUNTIME 在 4、8、16、32、64、128、256、512、1024、2048、4096 和 8192 之間進(jìn)行了調(diào)整。為確保結(jié)果可重現(xiàn),每個(gè)配置都運(yùn)行了 3 次,選擇了最好的結(jié)果。

Redis 8 Community Edition 十億規(guī)?;鶞?zhǔn)測試

數(shù)據(jù)集:laion-img-emb-768-1G-cosine

客戶端數(shù)量:501

繪制值:每秒請求數(shù)(RPS)| 平均延遲(秒)| 95百分位延遲(秒)| 索引時(shí)間(秒)

在我們之前的向量數(shù)據(jù)庫基準(zhǔn)測試博客中,我們專注于證明 Redis 是最快的向量數(shù)據(jù)庫?,F(xiàn)在我們證明,對于需要保持實(shí)時(shí)性延遲的使用場景,我們不僅是最快的向量數(shù)據(jù)庫,我們還可以將向量數(shù)量從數(shù)百萬擴(kuò)展到數(shù)十億。

測試結(jié)果

在十億向量規(guī)模下,使用實(shí)時(shí)索引,Redis 8 社區(qū)版可以維持每秒 66K 向量插入,對于允許至少 95% 精確度(M 16 和 EF_CONSTRUCTION 32)的索引配置。對于導(dǎo)致較低精確度(M 4 和 EF_CONSTRUCTION 4)的索引配置,Redis 8 社區(qū)版可以支持高達(dá)每秒 160K 向量插入的速率。通過使用更多服務(wù)器可以進(jìn)一步增加吞吐量。

對于高精確度查詢,我們可以看到更大的 HNSW 索引(更高的 M 和 EF_CONSTRUCT)會(huì)提高搜索質(zhì)量,但會(huì)增加延遲。在處理 50 個(gè)并發(fā)搜索請求時(shí),我們在中位延遲(包括往返時(shí)間)為 200 毫秒的情況下達(dá)到 90% 精確度,而在中位延遲(包括往返時(shí)間)為 1.3 秒的情況下達(dá)到 95% 精確度,。

由于所需的精確度和延遲權(quán)衡因使用場景而異,因此根據(jù)上面的圖表調(diào)整 HNSW 參數(shù)非常重要。

開始使用 Redis 8

Redis 8 證明了實(shí)時(shí)向量搜索不僅適用于數(shù)百萬個(gè)向量,還能擴(kuò)展到數(shù)十億個(gè)向量,同時(shí)保持高性能。通過正確的 HNSW 調(diào)優(yōu),你可以在精確度、延遲和吞吐量之間取得平衡,以適應(yīng)你的使用場景,實(shí)現(xiàn)高達(dá) 95% 的召回率和實(shí)時(shí)查詢。無論你是在構(gòu)建人工智能驅(qū)動(dòng)的搜索、推薦引擎還是任何基于向量的應(yīng)用程序,Redis 都能為你提供所需的快速、可擴(kuò)展性能。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

虹科是一家資源整合及技術(shù)服務(wù)落地供應(yīng)商,與全球頂尖公司深度技術(shù)合作,專注于制造業(yè)、汽車、生物、醫(yī)藥、測試與測量、廣播電視與媒體、通信、網(wǎng)絡(luò)安全、光電等領(lǐng)域,為客戶提供:智能自動(dòng)化、工業(yè)物聯(lián)網(wǎng)、智能感知、數(shù)字化+AR、光電、網(wǎng)絡(luò)安全、測試測量、衛(wèi)星與無線通信、醫(yī)藥環(huán)境監(jiān)測與驗(yàn)證、生命科學(xué)、汽車電子、汽車維修診斷、云科技等解決方案。虹科始終致力于為行業(yè)客戶提供創(chuàng)新及前端的產(chǎn)品和技術(shù)解決方案,為科技社會(huì)發(fā)展助力加碼。