数据集数据同步写入、修改、删除后,同步至索引的滞后时间通常为 3s,最长滞后 20s。
向量数据库计费方式是后付费方式,以小时为周期统计所有计费项的使用量,并结算生成账单。详情请查看:产品计费。
模型推理会损失精度,通常差异在千分之一以内是符合预期的,不影响检索效果。
目前一个用户支持创建的数据集上限为 200 个,索引上限为 200 个,同一数据集下的索引上限为 100 个。
目前跨国访问网络存在一定程度波动,有以下潜在影响:
如果仅仅是数据量大的话,不需要。分 partition 是为了解决高效过滤检索的问题,业务场景的检索模式是固定对某一类的数据做检索时比较适合分 partition,比如图片检索中,如果每次检索都需要限定一下图片格式( jpg/png 等),那我们就可以根据图片格式分 partition。
注意
子索引(partition)上限数量默认是 1000,每次检索时需要设置子索引以确保可检索到数据。
是的。插入数据时,如果数据集中已存在相同主键的数据,则会覆盖原数据;如果数据集中没有相同主键的数据,则会写入新数据。
指定写入的数据是一个数组,单次最多可插入100条数据。
建议不超过200个,如果有特殊需求,可联系我们沟通。
是的,支持流式更新。
需要注意的是,异步写入不会流式更新进索引。
目前不支持,因为向量库数据量比较大(比如几千万上亿),没法全放在接口返回,如果需要全量拿到,可以通过数据导出接口获取。
不同的请求方式都会给出请求成功的返回(有些sdk无返回即意味着成功),接口请求成功就意味着数据写入成功。
说明
异步写入的入库滞后时间为小时级别
如果在知道主键ID的情况下,可以通主键查询的方式找到数据;如果不知道主键ID,可以通过该数据的标量进行标量过滤检索查询。
HNSW-Hybrid是支持混合索引的 HNSW 算法。可以同时对数据集中的稠密向量和稀疏向量进行索引,并在检索时返回兼顾两种类型相似性的结果。
HNSW-Hybrid适用于对搜索效率要求较高,且需要同时检索稀疏和稠密向量的场景。
说明
**稠密向量:**稠密向量是一种高维向量表示形式,其中大多数元素都为非零值。这种特性使得稠密向量在数据分布较为均匀且需要充分利用所有维度信息的场景中表现出色。以下是稠密向量应用的几个常见场景:
稀疏向量:
稀疏向量是与稠密向量相对的一种特殊的高维向量表示形式,其中绝大多数元素为零,只有少量维度具有非零值。这种特性使得稀疏向量在处理大规模、高维且数据稀疏的场景中表现出色。以下是稀疏向量应用的几个常见场景:
欧式距离(L2):
计算两个向量的欧几里得空间距离,欧式距离越小相似度越高。欧式距离的值域 [0, +∞)
计算公式如下:
其中,a = (a(0), a(1),..., a(n-1)) 和 b = (b(0), b(1),..., b(n-1)) 表示 n 维欧氏空间中的两个点。
L2 在处理连续性数据时尤为有效。
内积距离(IP):
两个 Embedding 向量间的 IP 距离,当处理未归一化的数据或关注数据的大小和方向时,内积尤为重要,内积距离越大相似度越高。值域 (-∞, +∞)。
内积距离可按以下方式定义:
余弦相似度(Cosine):
余弦相似度是通过计算两组向量之间的夹角余弦来衡量它们的相似度。可以把这两组向量想象为从同一起点(如 [0,0,...])出发,但朝向不同的线段。
余弦相似度的值总是介于 [-1, 1] 之间。比如,两个向量的夹角越接近 0 度,余弦相似度越接近 1;两个向量的夹角为 90 度时,其相似度为 0;两个向量的夹角越接近 180 度,两个向量相似度越接近 -1。余弦值越大,表示两向量之间的夹角越小,意味着它们越相似。值域 [-1, 1] 。
计算两组向量 A = (a(0), a(1),..., a(n-1)) 和 B = (b(0), b(1),..., b(n-1)) 之间的余弦相似度,可使用以下公式:
注意
检索结果中的 score 做了处理,因为在检索结果里 score 越大和候选越相似。
对应不同的距离检索 score 计算方式如下:
距离类型 | 召回 score | 召回 score取值范围 |
---|---|---|
欧几里得距离(L2) | 1 - l2_distance | (-∞, 1] |
内积距离 (IP) | ip_distance | (-∞, +∞) |
余弦相似度(Cosine) | cosine_distance | [-1, 1] |
由检索score和距离计算公式可以看出,欧式距离(L2)、内积距离 (IP)、余弦相似度(Cosine)的检索score都有可能是负数,因此召回时分数有负数是正常的。
注意
创建索引时设置距离类型时,应和模型训练使用的距离类型相同。
当使用了标量过滤、主键过滤、后置处理算子时,可能使召回数据量小于topk。
向量库支持4~4096维的向量,且必须是4的倍数。
主键支持int64和string类型的数据。
用户无需手动扩展持久化存储容量;如需提高QPS承载能力,可更新索引选择更高的CU数,以获得更大的CPU资源。
向量在collection中是以float32全精度存储的,在索引中可以通过参数控制向量的压缩方式,轻微牺牲精度来换取成本收益。
可以在数据集创建页面设定标量字段的默认值,或在用 collection 创建的 API 和 SDK 中使用default_val参数指定自定义字段默认值。
不支持指定向量字段的默认值。
子索引是对数据集的逻辑二次划分或分片。
DSL 相当于是请求过滤条件,允许用户通过语法化的方式指定查询条件。DSL 请求全部分片,就是从全部分片中过滤。DSL请求子索引,就是从子索引范围的数据集进行过滤。DSL 过滤并不是直接对物理存储的划分,而是通过条件匹配来筛选出符合需求的结果。
子索引 | DSL | |
---|---|---|
本质 | 数据的物理或逻辑分片 | 数据的过滤语言 |
过滤范围 | 子索引创建时即确定的扫描范围 | 在选定的数据范围内进行筛选 |
使用场景 | 固定的、明确的分组场景 | 灵活的、动态的复杂查询场景 |