Milvus 使用 包含 java 和 python
- 知道特征向量是什么
- [Milvus 是向量数据库](#Milvus 是向量数据库)
知道特征向量是什么
向量又称为 embedding vector,是指由embedding技术从离散变量(如xxx等各种非结构化数据)转变而来的连续向量。在数学表示上,向量是一个由浮点数或者二值型数据组成的 n 维数组。通过现代的向量转化技术,比如各种人工智能(AI)或者机器学习(ML)模型,可以将非结构化数据抽象为 n 维特征向量空间的向量。这样就可以采用最近邻算法(ANN)计算非结构化数据之间的相似度。
Milvus 是向量数据库
主要用于存储、索引和管理通过深度神经网络和机器学习模型产生的海量向量数据。
Collection 等价 数据库的表
Collection 包含一组 entity。
Entity
实体包含一组 field
Field
field 与实际对象相对应。
Segment 段
Milvus 在数据插入时通过合并数据自动创建的数据文件。一个 collection 可以包含多个 segment。一个 segment 可以包含多个 entity。在搜索中,Milvus 会搜索每个 segment,并返回合并后的结果。
分片
将数据写入操作分散到不同节点上,使 Milvus 能充分利用集群的并行计算能力进行写入。默认情况下单个 collection 包含 2 个分片(shard)。目前 Milvus 采用基于主键哈希的分片方式,未来将支持随机分片、自定义分片等更加灵活的分片方式。
分区
把 collection 中的数据根据一定规则在物理存储上分成多个部分。这种对 collection 数据的划分就叫分区(partitioning)。每个 partition 可包含多个segment。
归一化
归一化指的是通过数学变换将向量的模长变为 1 的过程。如需使用点积计算向量相似度,则必须对向量作归一化处理。处理后点积与余弦相似度等价。
索引
索引基于原始数据构建,可以提高对 collection 数据搜索的速度。
向量
一种类型的 field,代表对象的特征。非结构化数据可以通过各种 AI 模型和 embedding 技术转化为向量。
Milvus是一个面向向量的存储引擎,主要用于存储、索引和管理通过深度神经网络和机器学习模型产生的海量向量数据。在Milvus中,数据被存储为向量,向量由embedding技术从离散变量(如图片、文本等)转变而来,是n维浮点数或者二值型数据组成的数组。Collection等价于数据库中的表,它包含了一组entity(实体),实体包含了一组field。Segment是在数据插入时通过合并数据自动创建的数据文件。一个Collection可以包含多个Segment,而一个Segment可以包含多个Entity。分片是将数据写入操作分散到不同节点上,使Milvus能够充分利用集群的并行计算能力进行写入。分区是根据一定规则将Collection中数据在物理存储上分成多个部分。归一化是将向量模长变为1的过程。索引是基于原始数据构建,可以提高数据搜索的速度。向量是一种类型的field,代表对象的特征,非结构化数据可以通过各种AI模型和embedding技术转化为向量。