隨著LLM技術應用及落地,數據庫需要提高向量分析以及AI支持能力,向量數據庫及向量檢索等能力“異軍突起”,迎來業界持續不斷關注。簡單來說,向量檢索技術以及向量數據庫能為LLM 提供外置的記憶單元,通過提供與問題及歷史答案相關聯的內容,協助 LLM 返回更準確的答案。
不僅僅是LLM,向量檢索與OLAP引擎也早有淵源。作為一種用于數據分析的軟件,OLAP能夠快速、高效處理大量數據,并提供多維度的分析功能,而向量檢索則能幫助OLAP引擎進一步提升對非結構化數據的分析和檢索能力。
近期,火山引擎云原生數據倉庫ByteHouse推出高性能向量檢索功能,通過支持多種向量檢索算法以及高效的執行鏈路,可以支撐極大規模向量檢索場景,并達到毫秒級的查詢延遲。
ByteHouse團隊早已關注并研究向量檢索技術。據ByteHouse技術專家介紹,“當前向量數據庫的發展主要是兩種思路,一種是建設一個專用的向量數據庫,基于Vector-centric的思路來設計向量數據及索引的存儲與資源管理策略,查詢定式簡單,支持數據類型有限;另一種是基于現有數據庫擴展向量檢索能力,在已有數據管理機制以及查詢執行鏈路中去添加向量索引維護與查詢執行邏輯。目前,兩種思路互相借鑒,向完備數據庫功能支持+高性能向量檢索的方式發展。”
ByteHouse來源于ClickHouse,但ClickHouse存在向量索引重復讀取,相似度計算冗余等問題,對于延遲要求低、并發需求高的向量檢索場景可用性較弱。
基于以上的分析,ByteHouse 在向量檢索能力上進行全面創新。 基于 vector-centric 的思路,ByteHouse重新構建了高效的向量檢索執行鏈路,結合索引緩存、存儲層過濾等機制,使得性能實現進一步突破。為了應對不同使用場景,ByteHouse 支持了HNSW、Flat、IVFFlat、IVFPQ等多種常見向量索引算法。此外,新引入的向量索引支持當前的二級索引相關語義,新的執行鏈路也對現有距離函數進行了適配,以降低用戶使用門檻和學習成本,用戶可以直接用ClickHouse 的現有語義來使用高性能的向量檢索功能。
ByteHouse向量檢索相關組件
在建設高性能向量檢索能力過程中,ByteHouse主要克服以下三大難點:
列存結構讀放大問題。為了減少不必要的數據讀取操作,ByteHouse在 query 執行及數據讀取層都進行了相應優化,并由 HaMergeTree以及 HaUniqueMergeTree兩種引擎的可靠方案為向量檢索提供穩定性保障。其次,新寫入數據以及服務重啟會存在冷讀的問題,導致性能波動。為此,ByteHouse 引入 preload機制,索引構建后自動載入緩存,同時支持對過期索引自動淘汰,避免多余的資源占用。由于索引構建會消耗較多的資源,為了降低構建操作對正常查詢的性能影響,ByteHouse引入資源控制策略,允許用戶基于使用場景動態控制索引構建使用的資源,極大減少了原有鏈路的開銷。
基于開源軟件VectorDBBench ,與 milvus 2.3.0 進行測評
(測試環境:1 node, 80 cores, 376 GB Memory)
在最終性能效果上,ByteHouse團隊基于業界最新的 VectorDBBench 測試工具進行測試,在 cohere 1M標準測試數據集上,recall 98 的情況下,可以達到與專用向量數據庫相近的性能。在 recall 95 以上的情況下,QPS 可以達到 2600以上,p99 時延在 15ms 左右,具備業界領先優勢。
性能優化一直是ByteHouse核心探索方向之一,以滿足不斷增長的數據處理和分析需求。不僅僅是向量檢索技術,通過持續的研發和創新,ByteHouse還在查詢分析、數據導入等多個方面極致優化,取得了顯著的性能提升,在降本增效基礎上,持續幫助企業更好地在數據驅動下實現加速決策效率。
本文鏈接:http://www.tebozhan.com/showinfo-16-61890-0.html性能持續突破!火山引擎ByteHouse上線向量檢索能力
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com