《劉力-向量數據庫大模型時代的基礎設施構建.pdf》由會員分享,可在線閱讀,更多相關《劉力-向量數據庫大模型時代的基礎設施構建.pdf(51頁珍藏版)》請在三個皮匠報告上搜索。
1、向量數據庫:大模型時代的基礎設施構建劉力 Zilliz演講嘉賓劉力Zilliz 首席工程師Zilliz 首席工程師,擁有多年的數據庫,大數據等方向的開發經驗,目前在Zilliz負責查詢索引相關的研發工作。曾于Meta就任高級工程師,負責廣告流式數據框架的設計和開發工作。劉力擁有卡內基梅隆大學信息技術碩士學位。目 錄CONTENTS1.什么是向量數據庫2.從向量檢索到Milvus3.不僅僅是ANN搜索4.Zilliz Cloud 及更多什么是向量數據庫PART 01什么是向量數據庫過去人們通過關系型存儲檢索數據,這種方式無法模糊匹配,無法跨模態檢索,缺少對上下文的理解隨著大模型的泛化能力變強,通
2、過預訓練學習數據的基本特征,利用深度學習模型提取 Embedding 用于數據檢索的范式越來越常見什么是向量數據庫向量檢索利用向量在高維空間的距離來表征非結構化數據的相似度向量數據庫是一種專為存儲和查詢高維度向量數據而優化的數據庫系統。向量數據庫的場景Retrieval Augmented Generation(RAG)通過語義檢索提高生成式模型的可用性提高準確性和相關性提供私有/特定領域的知識提升知識的實時性消除幻覺Milvus:全球第一款向量數據庫docker pull從向量檢索到MilvusPART 02向量數據庫的基石:向量索引IVF,SCANN,基于桶的ANN算法基于圖的ANN算法H
3、NSW,DiskANN,利用預先插入的數據獲取數據分布利用Graph,聚類,Hash等方式快速篩選并接近目標位置利用SQ,PQ量化和SIMD降低單次距離的成本ANNS:Approximate Nearest Neighbor Search 為什么需要向量數據庫功能上:增刪改查復雜查詢:多向量、標向量混合等查詢一致性多租戶監控RBAC可用性上:規模、性能的可擴展性故障恢復能力數據的備份,遷移與導入微服務環境下的快速部署Milvus的目的:更多,更快更多:分布式架構支持百億數據設計理念:存算分離提供更好的可擴展性,資源管理能力和隔離性微服務化+K8s自動化部署,擴展消息隊列作為數據骨架:日志即數據
4、解耦不同組件,并且提供簡單快捷的故障恢復機制更多:分布式架構支持百億數據存算分離:可擴展性:儲存和計算節點可以按需獨立擴展資源利用:根據不同類型節點定制化的資源讓系統能力更強隔離性:某個組件的升級、故障或者熱點任務不會影響其他組件池化:IndexNode、和DataNode可以池化以提高資源利用率更多:分布式架構支持百億數據流批一體:批量導入:數據跳過復雜的流式系統,直接插入到對象儲存向量ETL:數據可以在Spark中進行預處理(數據清洗、向量提取等)再批量導入到Milvus全局優化:數據可以從Milvus全量導出到Spark進行基于全局數據分布的優化再導回Milvus提供更高效的服務更快:多
5、種索引算法助推性能起飛可插拔向量索引引擎,集成多種業界常用索引,支持不同的場景。支持x86、ARM各種架構,并針對新老機型進行了SIMD調優。和英偉達合作,支持使用GPU獲得超高性能對復雜搜索場景進行算法調優,比如過濾搜索更快:GPU支持獲得性能巔峰Batch Size=1Batch Size=10Batch Size=100CPU:m6id.2xlargeT4:g4dn.2xlargeA10G:g5.2xlarge Top 100 Recall:98%Dataset:https:/ 邊做向量檢索邊過濾適合大部分場景Post-Filtering 昨晚向量檢索再過濾只適合過濾量非常小的場景Val
6、idation評估方式BitsetOverhead較大,適合過濾量較大的場景Expr單次執行較慢,適合過濾量較小的場景更快:過濾下的高效搜索如何在圖上處理過濾掉的點Without candidates(繞過去)容易產生孤島問題With candidates(走過去):孤島問題緩解,性能問題凸顯更快:過濾下的高效搜索對于離散數據對不同標簽及標簽組合,通過分析數據分布構造小圖提升連通性對于連續數據,除小圖外,還需要冗余層增加不同小圖之間的連通性還有多列標簽的And,Or結合的優化等等,性能提升2-10 x更快:實時性和性能都想要實時性和性能不可兼得大部分向量數據庫選擇直接使用HNSW,通過犧牲實時
7、性換取更好的性能更快:實時性和性能都想要Shard加速數據插入SegmentMilvus的基本數據單元Growing Segment直接從消息隊列里拿取數據以提供快速檢索,使用構建較快的索引Sealed Segment使用Immutable的索引以保證查詢速度更快:實時性和性能都想要搜索性能降低建索引速度慢負載更加不均衡內存overhead過大Failure Recovery能力變差Big Segment更快:實時性和性能都想要對于圖索引,大小對于性能的影響可以忽略。因此大量小索引會導致整體性能降低元數據儲存壓力較大Small Segment更快:實時性和性能都想要DataNode會把小的Se
8、gment Compact成大Segment,并由IndexNode重新構建索引QueryNode會把大的Segment加載上來代替小的Segment除此之外,Compaction還可以通過多級Compaction來刪除過期數據,回收刪除的數據,重新partition等異步Compaction更快:實時性和性能都想要除此之外,還有大K,刪除,異常分布,等Growing Index在Growing Segment中使用構建速度較快的索引而不是暴搜用戶關注什么更強大的搜索質量更好的搜索效果更豐富的語義更靈活的查詢方式更高的性價比資源的池化使用少量查詢的冷熱儲存不僅僅是ANN搜索PART 03更強大
9、的搜索質量:SparseTF(Term Frequency,詞頻)表示詞條在文本中出現的頻率 IDF(Inverse Document Frequency,逆文件頻率)表示關鍵詞的普遍程度。如果包含詞條的文檔越少,則IDF越大,說明該詞條具有很好的類別區分能力。TF-IDF的重要變種-BM25,進一步考慮了詞頻的飽和度,同時會基于文本長度對詞頻進行歸一化,以防止它偏向長的文件 TF-IDF更強大的搜索質量:SparseBERT引入Transformer和預訓練。注意力機制使得模型能夠關于更的上下文,預訓練使得模型對概率的理解更加充分。揭開向量檢索的序幕,帶來了語義理解能力BERT更強大的搜索質
10、量:Sparse向量檢索不是傳統關鍵詞檢索的替代,而是補充傳統關鍵詞檢索擅長域外信息、專有詞匯的檢索而向量檢索更擅長關注語義信息更強大的搜索質量:SparseAll in one,解決同時維護兩套系統的復雜度可插拔的Embedding能力,覆蓋BM25,不止BM25可選擇的Reranking方式更強大的搜索質量:Hybrid SearchDense+Dense組合語義:比如分別用兩人的照片搜合照提升精度:比如同一個人的不同視角Scalar+Dense更靈活的檢索:比如不同距離的帖子,語義相似度占比不同更全面的檢索:比如通過證件號+人臉匹配信息更強大的搜索質量:Range Search現實場景中
11、很多查詢沒有相近的匹配項,而有的查詢卻有很多。用戶希望找到足夠相近的,而不是足夠多的結果避免搜索出毫不相關的結果快速找到未知大小的結果豐富的搜索語義更強大的搜索質量:Groupby查詢:結果:Top1Top2Top3如果我們想檢索到三種不同的小狗怎么辦SELECT TOP1(image)GROUPBY name ORDER BY score LIMIT 3name:SnoopyGoofyPluto如果我們沒有name列怎么辦?SELECT TOP1(image)GROUPBY image ORDER BY score LIMIT 3更多的Aggregator:AVG,COUNT,etc更多的排
12、序方法:AVG,UDF,etc.向量化數據庫語義的開始Zilliz Cloud 及更多PART 04更好的性價比:Zilliz CloudZilliz Cloud是Zilliz基于開源向量數據庫Milvus打造的全托管企業級向量檢索云服務分為Serverless,SaaS和BYOC三個版本,面向不同需求和不同部署環境提供大量企業級功能,助力用戶聚焦業務邏輯目前已經登陸AWS,GCP,Azure,阿里云、騰訊云等5朵云向量數據庫即服務更好的性價比:Zilliz Cloud-Saas優點彈性的的池化資源節約大量成本K8s namespace提供較好的隔離性數據全量緩存在查詢節點上提高性能缺點緩存數
13、據消耗大量資源,不查詢的時候也需要付出大量成本大數據量下性能損失Saas架構更好的性價比:Zilliz Cloud-ServerlessLogic Clusters所有節點stateless,為任意logic cluster提供服務,用戶感知不變節點Proxy:路由用戶請求,限流StreamingNode:實時數據查詢QueryNode:歷史數據查詢Resource Pool:執行建索引,Compaction等batch jobStorage:log和meta儲存每種節點根據資源使用自動擴縮容更好的性價比:Zilliz Cloud-Serverless分層存儲從Ram到S3多級緩存只加載需要的
14、數據,多余的數據會向下層evict更好的性價比:Zilliz Cloud-Serverless冷熱數據分離數據分離根據不同tenant分離數據根據過濾條件分離數據根據向量空間分布分離數據多層級Pre-Warm更好的性價比:Zilliz Cloud-Serverless極致的性價比$915 Performance$228Capacity$16 ServerlessCost per Month for 10M 768Dim Data in ZillizCloudhttps:/artificialanalysis.ai/models許多場景并不性能敏感更加易用:Zilliz Cloud Pipeli
15、neZilliz Cloud Pipeline是圍繞Zilliz Cloud打造的一站式文本知識庫系統支持多種開源模型,可以任意選擇打造極致性能:CardinalZilliz Cloud基于自研的Cardinal索引,性能是Milvus的5-10倍Cardinal的Dense Vector算法使用了創新的IVF+圖的混合算法,加上極致的工程優化達到性能巔峰Cardinal的Sparse Vector算法在BigANN中斬獲最佳Autoindex在方便用戶使用的同時,基于數據分布的自動參數調優配置助力性能更上一層新場景帶來的新挑戰RAG/Agent準確度的評價標準不止是相關性,也包含重要性,時間視頻場景多模態跨模態的查詢多種模態的疊加查詢大規模離線分析場景海量數據的大規模召回復雜的分析語義可視化THANKS