從零構建向量數據庫·珊瑚書
羅雲
相關主題
商品描述
這是一本需要“動手實踐”的圖書,通過帶領大家從零構建一款分佈式向量數據庫,讓大家透徹理解向量數據庫的技術原理和實現細節。
本書共分為三大部分,內容由淺入深、循序漸進。“第一部分 認識向量數據庫”(第1~3章)是基礎篇,介紹向量數據庫的基礎知識,涵蓋向量及數據庫的基本概念、向量數據庫的發展歷程和核心功能。“第二部分 構建向量數據庫”(第4~6章)是核心篇,詳細介紹如何從零開始構建並優化向量數據庫,巨細靡遺地展示數據庫內核的技術實現細節並輔以代碼示例、技術架構圖等,旨在讓大家真正實現動手寫向量數據庫。“第三部分 向量數據庫的實踐與展望”(第7~8章)是結束篇,通過實踐案例展示向量數據庫在AI應用中的使用方法,並嘗試勾勒向量數據庫的未來。
本書面向數據庫開發人員、數據庫管理員、數據庫架構師等數據庫從業人員,AI從業者,及其他對向量數據庫感興趣的讀者。
作者簡介
罗云
腾讯云数据库副总经理、腾讯云创始团队成员、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)数据库与存储工作组副组长。
十余年云计算产品技术专家,在复杂分布式系统的建设和管理上实践多年并积累了丰富的经验,擅长将数据治理技术(采集、加工、存储、检索)和AI结合,在AI时代更好地发挥数据的价值。
领导多个平台或产品完成从0到1的上线与商业化运营,达到国内领先水平,其中包括:
1. 一站式 Serverless开发平台(小程序云开发)
2. TencentDB for Redis/MongoDB/KeeWiDB、Tencent Cloud VectorDB等数据库产品
3. 腾讯云数据传输服务(DTS)、数据库智能管家(DBbrain)等多款数据采集和智能化应用平台
目錄大綱
第 一部分 認識向量數據庫
第 1章 向量數據庫基礎 2
1.1 向量 2
1.1.1 什麽是向量 2
1.1.2 萬物皆可向量 4
1.1.3 向量間的相似度 6
1.1.4 相似度應用案例 8
1.2 數據庫 11
1.2.1 什麽是數據庫 11
1.2.2 關系型數據庫 13
1.2.3 非關系型數據庫 14
1.2.4 傳統數據庫的限制 15
1.3 為什麽需要向量數據庫 16
1.3.1 向量數據和傳統數據的差異 16
1.3.2 向量數據庫應運而生 17
1.3.3 大模型時代的智能存儲平臺 18
1.4 小結 19
第 2章 向量數據庫極簡史 21
2.1 孕育期(1980—2012) 21
2.1.1 深度神經網絡的飛速發展 22
2.1.2 深度神經網絡vs向量數據庫 23
2.2 誕生期(2012—2017) 24
2.3 成長期(2017年至今) 25
2.3.1 行業發展簡況 26
2.3.2 代表性產品能力對比 27
2.3.3 代表性產品技術架構 28
2.4 小結 32
第3章 向量數據庫的核心能力 33
3.1 基礎能力 33
3.1.1 邏輯層次 34
3.1.2 索引 39
3.1.3 關鍵指標 42
3.2 高階能力 43
3.2.1 動態schema 43
3.2.2 別名機制 44
3.2.3 向量化 45
3.2.4 混合查詢 46
3.3 小結 47
第二部分 構建向量數據庫
第4章 實現單機向量數據庫 50
4.1 實現向量數據索引 50
4.1.1 FAISS核心功能 51
4.1.2 實現扁平索引 56
初始版本v0.0.1 62
4.1.3 HNSWLib核心功能 63
4.1.4 實現HNSW索引 70
版本迭代v0.0.2 73
4.2 實現混合數據索引 74
4.2.1 實現標量數據索引 74
4.2.2 統一管理入口 76
版本升級v0.1 79
4.2.3 實現過濾索引 80
版本迭代v0.1.1 86
4.3 實現系統異常恢復 87
4.3.1 數據日誌持久化 87
版本迭代v0.1.2 91
4.3.2 數據快照持久化 92
版本升級v0.2 97
4.4 小結 97
第5 章 實現分佈式向量數據庫 99
5.1 集群數據管理 100
5.1.1 認識NuRaft 102
5.1.2 建立主從關系 106
5.1.3 實現數據復制 110
版本升級v0.3 113
5.2 集群流量管理 113
5.2.1 集群的元數據管理 114
5.2.2 統一的流量入口 117
5.2.3 讀寫分離 121
5.2.4 保證讀寫一致性 122
版本升級v0.4 123
5.3 集群異常管理 123
5.3.1 發現新主節點 123
5.3.2 發現故障從節點 125
5.3.3 實現故障切換 127
版本升級v0.5 128
5.4 集群的分片 130
5.4.1 配置集群的分片策略 130
5.4.2 根據分片策略轉發請求 132
版本升級v0.6 139
5.5 小結 140
第6 章 優化向量數據庫 142
6.1 性能優化 143
6.1.1 利用指令集優化向量計算 143
6.1.2 優化查詢算法 144
6.1.3 優化通信協議 147
6.1.4 自定義基準測試工具 149
6.2 成本優化 154
6.2.1 多模塊混合部署 155
6.2.2 單節點部署 158
6.3 易用性優化 160
6.3.1 SDK 160
6.3.2 訪問鑒權 162
6.3.3 數據備份 169
6.4 小結 172
第三部分 向量數據庫的實踐與展望
第7 章 向量數據庫實踐案例 176
7.1 搭建圖片查詢系統 176
7.1.1 圖片向量化 176
7.1.2 圖片上傳和查詢 179
7.1.3 系統效果一覽 181
7.2 搭建個人知識庫 182
7.2.1 知識預處理 182
7.2.2 知識向量化 183
7.2.3 知識庫管理 184
7.2.4 知識問答 185
7.2.5 系統效果一覽 186
7.3 小結 187
第8 章 展望 189
8.1 從行業演進視角看 190
8.1.1 人類調度數據新範式 190
8.1.2 向量數據抹平數據格式差異 192
8.1.3 向量數據庫平臺化的關鍵 193
8.2 從行業應用視角看 194
8.2.1 RAG 簡介 195
8.2.2 降低RAG 使用門檻 196
8.3 小結 197