Milnus 基础学习
摘要:向量存储是AI领域用于语义检索的核心技术,通过高维向量表示文本语义。相似性度量常用余弦相似度、欧氏距离等算法。主流索引包括IVF(聚类分簇)、HNSW(多层图结构)等,各有特点。性能优化需定期重建索引、调整参数。Milvus采用分布式架构,包含数据节点、索引节点等组件,通过消息队列实现通信协同。
向量存储作为常用的语义检索工具,在AI领域的作用好比关系型数据库在传统项目中的作用,不可不学
向量存储的概念
在AI领域,常用高维向量来进行文本嵌入,即用一个浮点数数组,来表示文本在各个维度上的语义,例如可以用第一个浮点数来表示性别,第二个浮点数来表示年龄等
向量存储即对这些高维向量的存储
数据结构
集合:可以类比关系型数据库的表
向量:即浮点数数组
元数据:与向量关联的结构化数据,如id,插入时间等
Milvus中的向量+元数据可以类比关系型数据库中的一行记录
相似性度量
要进行语义检索,也就是找到语义相近的片段,就需要衡量两个文本的相似性,相似性度量包括以下几种算法
余弦相似度:计算两个向量夹角的余弦值
欧氏距离:欧式空间中的直线距离
曼哈顿距离:曼哈顿空间中的直线距离
切比雪夫距离:切比雪夫空间中的最大维度差异
一般多使用余弦相似度来衡量文本的相似性
索引
IVF:使用聚类算法将向量数据分为多个簇,每个簇由一个中心向量表示,查询时先找最近的簇,然后在簇内精确搜索
特点:内存占用低,对簇划分质量敏感
HNSW:随机选择一部分向量作为入口节点,构建多层图结构,每层图中节点通过有向边连接,查询时从顶层图开始逐步向下层搜索
特点:搜索精度高,但内存占用较高
ANNOY:随机选择一部分向量作为根节点,构建多棵搜索树,每棵树将向量数据分成多个子空间,查询时从根节点向下遍历树结构
特点:内存占用较低,对树结构的质量比较敏感
LSH:通过hash将相似向量映射到相同的桶
Flat:无索引,全量搜索
ps:文本嵌入一般选择IVF做为索引
性能优化
定期重建索引:以适应数据量的变化
调整索引参数:如IVF索引的簇数量nlist
调整搜索参数:如搜索的簇的数量nprobe
Milvus的组件
数据节点:存放向量数据及其对应元数据
索引节点:创建和管理索引
元数据节点:系统的元数据,如集合的定义
查询节点:处理客户端的查询请求
协调节点:监控节点状态,处理故障节点,分配查询任务
消息队列:各组件的通信
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)