认识向量数据库
一、什么是向量核心概念向量就是把万物变成一串数字让计算机能理解和比较它们。Embedding将文字、图片、声音等非结构化数据转换为高维浮点数组实际维度通常是 768BERT、1536OpenAI、1024其他模型存储大小每个维度是一个 float324字节一条 768 维向量约占 3KB生活比喻物体毛茸茸有爪子体型小会喵会汪猫0.90.80.70.950.0狗0.850.70.50.00.9汽车0.00.00.80.00.0关键直觉相似的物体 → 相似的向量不同的物体 → 差异大的向量二、向量搜索的核心原理三步流程Embedding把查询也变成向量“猫的图片” → [0.12, -0.34, …]距离计算算查询向量与所有存储向量之间的距离Top-K 排序返回距离最近的前 K 个结果三种距离计算方式方式公式直觉特点相似判断欧氏距离 (L2)空间中两点直线距离直观适合绝对位置比较数值越小越相似余弦相似度两向量方向夹角忽略大小只看方向适合文本数值越大越相似 (0~1)内积 (Dot)向量直接相乘速度最快需归一化数值越大越相似三、索引算法——从百万向量中秒级搜索暴力搜索的问题逐个比较 O(N)100万向量 100万次计算 → 太慢三大索引策略ANN 近似搜索1. IVF 倒排索引聚类思想先对向量做 K-means 聚类分成 nlist 个区域查询时只搜最近的 nprobe 个区域比喻先找城市再找街道不用遍历全国每栋楼速度提升10~100x2. HNSW 图索引导航思想每个向量是图的一个节点和邻近向量连边多层图上层粗筛下层精找比喻先看省际高速再走城市道路找到目的地速度最快目前主流选择3. PQ 量化压缩压缩思想把长向量切成 M 个段每段用码本量化压缩128维 → 8个字节比喻用简写代替全名省内存粗筛后再精算内存节省10~50x注意这些索引都是近似搜索 (ANN)牺牲 1-2% 精度换来 10-100 倍速度四、向量数据库 vs 传统数据库维度传统数据库 (MySQL等)向量数据库 (Milvus等)查询方式精确匹配 WHERE name‘张三’相似度搜索 找Top-K个最近向量存储内容结构化数据行列向量元数据高维浮点数组附加信息索引类型B-Tree / HashHNSW / IVF / PQ返回结果确定性的要么找到要么找不到近似的返回最相似的K个有距离分数擅长场景事务/关联/统计语义搜索/推荐/RAG搜索猫只返回name含猫的行猫(0.98) 狗(0.85) 老虎(0.80)核心直觉传统数据库 字典查找精确翻到那个词条向量数据库 在地图上找最近的邻居按距离排序二者不是替代关系而是互补实际项目常传统DB 向量DB配合使用五、向量数据库里存的是什么数据结构一条记录 向量(核心) 元数据(辅助信息) ID(标识)Collection类似MySQL的表├── id1 vec[0.12,-0.34,...] meta{title:深度学习入门, author:李明, tags:[AI,教程]} ├── id2 vec[0.09,-0.31,...] meta{title:神经网络基础, author:王芳, tags:[AI,入门]} ├── id3 vec[0.85, 0.12,...] meta{title:烹饪技巧大全, author:陈大厨, tags:[美食,生活]} └── id4 vec[0.88, 0.15,...] meta{title:烘焙新手指南, author:林甜, tags:[美食,烘焙]}技术规格维度768(BERT) / 1536(OpenAI) / 1024(其他模型)存储大小每个维度 float32 (4字节)一条向量 768 × 4 3KB规模估算100万条向量 ≈ 3GB 原始数据压缩后更小搜索流程搜索AI入门教程 → Embedding成向量 → 找到 vec 最接近的 id1, id2 → 返回对应文章六、RAG——向量数据库最火的应用问题背景没有RAG的大模型凭记忆编容易出错幻觉问题RAG流程在线查询阶段用户提问 → Embedding(问题变向量) → 向量搜索(在DB中找Top-K) → 拼装Prompt(问题检索文档) → LLM生成(基于事实回答)离线数据准备阶段提前做公司文档 → 切分Embedding → 存入向量数据库 → 随时可查询核心价值大模型不再瞎猜而是基于真实文档生成回答 → 准确性大幅提升七、主流向量数据库产品专用向量数据库产品类型特点适用场景Milvus开源 | 云原生多种索引、分布式、亿级规模企业大规模部署Pinecone商业 | 全托管零运维、API即用、自动扩缩容快速上线/小团队Weaviate开源 | 模块化内置多模态、GraphQLREST、混合搜索多模态/研究Faiss库(非DB)Meta出品、纯搜索库、GPU加速研究场景传统数据库的向量扩展产品类型特点适用场景pgvectorPostgreSQL扩展SQL向量搜索已有PG团队的低成本选择Redis VSSRedis 7.2扩展低延迟缓存能力实时推荐场景选型建议快速验证Pinecone / pgvector大规模生产Milvus / Weaviate已有PG基础设施pgvector趋势传统DB纷纷加向量能力PG/Redis/Elasticsearch专用DB在性能和规模上仍有优势