這是一本需要動手實踐的圖書,通過帶領大家從零構建一款分布式向量數(shù)據(jù)庫,讓大家透徹理解向量數(shù)據(jù)庫的技術原理和實現(xiàn)細節(jié)。
本書共分為三大部分,內容由淺入深、循序漸進。第一部分 認識向量數(shù)據(jù)庫(第1~3章)是基礎篇,介紹向量數(shù)據(jù)庫的基礎知識,涵蓋向量及數(shù)據(jù)庫的基本概念、向量數(shù)據(jù)庫的發(fā)展歷程和核心功能。第二部分 構建向量數(shù)據(jù)庫(第4~6章)是核心篇,詳細介紹如何從零開始構建并優(yōu)化向量數(shù)據(jù)庫,巨細靡遺地展示數(shù)據(jù)庫內核的技術實現(xiàn)細節(jié)并輔以代碼示例、技術架構圖等,旨在讓大家真正實現(xiàn)動手寫向量數(shù)據(jù)庫。第三部分 向量數(shù)據(jù)庫的實踐與展望(第7~8章)是結束篇,通過實踐案例展示向量數(shù)據(jù)庫在AI應用中的使用方法,并嘗試勾勒向量數(shù)據(jù)庫的未來。
本書面向數(shù)據(jù)庫開發(fā)人員、數(shù)據(jù)庫管理員、數(shù)據(jù)庫架構師等數(shù)據(jù)庫從業(yè)人員,AI從業(yè)者,及其他對向量數(shù)據(jù)庫感興趣的讀者。
1.【實操】涉及技術原理、實現(xiàn)細節(jié)和實踐應用,涵蓋向量數(shù)據(jù)庫的方方面面
2.【生動】10次版本迭代/10000行代碼;27張表/41幅圖/22個思維導圖輕松學
3.【專業(yè)】作者羅云是騰訊云向量數(shù)據(jù)庫負責人,帶領團隊積累了豐富的一線經驗
4.【熱門】自制成功立馬投入實踐,帶大家結合RAG實現(xiàn)個人知識庫等大模型應用
5.【簡單】附贈隨書代碼,隨學隨查原來,構建向量數(shù)據(jù)庫如此簡單!
羅云 騰訊云數(shù)據(jù)庫副總經理、騰訊云創(chuàng)始團隊成員、中國通信標準化協(xié)會大數(shù)據(jù)技術標準推進委員會(CCSA TC601)數(shù)據(jù)庫與存儲工作組副組長。 十余年云計算產品技術專家,在復雜分布式系統(tǒng)的建設和管理上實踐多年并積累了豐富的經驗,擅長將數(shù)據(jù)治理技術(采集、加工、存儲、檢索)和AI結合,在AI時代更好地發(fā)揮數(shù)據(jù)的價值。 領導多個平臺或產品完成從0到1的上線與商業(yè)化運營,達到國內領先水平,其中包括: 1. 一站式 Serverless開發(fā)平臺(小程序云開發(fā)) 2. TencentDB for Redis/MongoDB/KeeWiDB、Tencent Cloud VectorDB等數(shù)據(jù)庫產品 3. 騰訊云數(shù)據(jù)傳輸服務(DTS)、數(shù)據(jù)庫智能管家(DBbrain)等多款數(shù)據(jù)采集和智能化應用平臺
第 一部分 認識向量數(shù)據(jù)庫
第 1章 向量數(shù)據(jù)庫基礎 2
1.1 向量 2
1.1.1 什么是向量 2
1.1.2 萬物皆可向量 4
1.1.3 向量間的相似度 6
1.1.4 相似度應用案例 8
1.2 數(shù)據(jù)庫 11
1.2.1 什么是數(shù)據(jù)庫 11
1.2.2 關系型數(shù)據(jù)庫 13
1.2.3 非關系型數(shù)據(jù)庫 14
1.2.4 傳統(tǒng)數(shù)據(jù)庫的限制 15
1.3 為什么需要向量數(shù)據(jù)庫 16
1.3.1 向量數(shù)據(jù)和傳統(tǒng)數(shù)據(jù)的差異 16
1.3.2 向量數(shù)據(jù)庫應運而生 17
1.3.3 大模型時代的智能存儲平臺 18
1.4 小結 19
第 2章 向量數(shù)據(jù)庫極簡史 21
2.1 孕育期(19802012) 21
2.1.1 深度神經網絡的飛速發(fā)展 22
2.1.2 深度神經網絡vs向量數(shù)據(jù)庫 23
2.2 誕生期(20122017) 24
2.3 成長期(2017年至今) 25
2.3.1 行業(yè)發(fā)展簡況 26
2.3.2 代表性產品能力對比 27
2.3.3 代表性產品技術架構 28
2.4 小結 32
第3章 向量數(shù)據(jù)庫的核心能力 33
3.1 基礎能力 33
3.1.1 邏輯層次 34
3.1.2 索引 39
3.1.3 關鍵指標 42
3.2 高階能力 43
3.2.1 動態(tài)schema 43
3.2.2 別名機制 44
3.2.3 向量化 45
3.2.4 混合查詢 46
3.3 小結 47
第二部分 構建向量數(shù)據(jù)庫
第4章 實現(xiàn)單機向量數(shù)據(jù)庫 50
4.1 實現(xiàn)向量數(shù)據(jù)索引 50
4.1.1 FAISS核心功能 51
4.1.2 實現(xiàn)扁平索引 56
初始版本v0.0.1 62
4.1.3 HNSWLib核心功能 63
4.1.4 實現(xiàn)HNSW索引 70
版本迭代v0.0.2 73
4.2 實現(xiàn)混合數(shù)據(jù)索引 74
4.2.1 實現(xiàn)標量數(shù)據(jù)索引 74
4.2.2 統(tǒng)一管理入口 76
版本升級v0.1 79
4.2.3 實現(xiàn)過濾索引 80
版本迭代v0.1.1 86
4.3 實現(xiàn)系統(tǒng)異;謴汀 87
4.3.1 數(shù)據(jù)日志持久化 87
版本迭代v0.1.2 91
4.3.2 數(shù)據(jù)快照持久化 92
版本升級v0.2 97
4.4 小結 97
第5 章 實現(xiàn)分布式向量數(shù)據(jù)庫 99
5.1 集群數(shù)據(jù)管理 100
5.1.1 認識NuRaft 102
5.1.2 建立主從關系 106
5.1.3 實現(xiàn)數(shù)據(jù)復制 110
版本升級v0.3 113
5.2 集群流量管理 113
5.2.1 集群的元數(shù)據(jù)管理 114
5.2.2 統(tǒng)一的流量入口 117
5.2.3 讀寫分離 121
5.2.4 保證讀寫一致性 122
版本升級v0.4 123
5.3 集群異常管理 123
5.3.1 發(fā)現(xiàn)新主節(jié)點 123
5.3.2 發(fā)現(xiàn)故障從節(jié)點 125
5.3.3 實現(xiàn)故障切換 127
版本升級v0.5 128
5.4 集群的分片 130
5.4.1 配置集群的分片策略 130
5.4.2 根據(jù)分片策略轉發(fā)請求 132
版本升級v0.6 139
5.5 小結 140
第6 章 優(yōu)化向量數(shù)據(jù)庫 142
6.1 性能優(yōu)化 143
6.1.1 利用指令集優(yōu)化向量計算 143
6.1.2 優(yōu)化查詢算法 144
6.1.3 優(yōu)化通信協(xié)議 147
6.1.4 自定義基準測試工具 149
6.2 成本優(yōu)化 154
6.2.1 多模塊混合部署 155
6.2.2 單節(jié)點部署 158
6.3 易用性優(yōu)化 160
6.3.1 SDK 160
6.3.2 訪問鑒權 162
6.3.3 數(shù)據(jù)備份 169
6.4 小結 172
第三部分 向量數(shù)據(jù)庫的實踐與展望
第7 章 向量數(shù)據(jù)庫實踐案例 176
7.1 搭建圖片查詢系統(tǒng) 176
7.1.1 圖片向量化 176
7.1.2 圖片上傳和查詢 179
7.1.3 系統(tǒng)效果一覽 181
7.2 搭建個人知識庫 182
7.2.1 知識預處理 182
7.2.2 知識向量化 183
7.2.3 知識庫管理 184
7.2.4 知識問答 185
7.2.5 系統(tǒng)效果一覽 186
7.3 小結 187
第8 章 展望 189
8.1 從行業(yè)演進視角看 190
8.1.1 人類調度數(shù)據(jù)新范式 190
8.1.2 向量數(shù)據(jù)抹平數(shù)據(jù)格式差異 192
8.1.3 向量數(shù)據(jù)庫平臺化的關鍵 193
8.2 從行業(yè)應用視角看 194
8.2.1 RAG 簡介 195
8.2.2 降低RAG 使用門檻 196
8.3 小結 197