You need to enable JavaScript to run this app.
导航
产品常见问题
最近更新时间:2024.12.16 20:22:35首次发布时间:2024.12.16 20:22:35
  1. 向量数据库修改或者删除记录,索引多久会更新?

数据集数据同步写入、修改、删除后,同步至索引的滞后时间通常为 3s,最长滞后 20s。

  1. 向量数据库的计费项是综合计费吗?

向量数据库计费方式是后付费方式,以小时为周期统计所有计费项的使用量,并结算生成账单。详情请查看:产品计费

  1. 同Text文本两次Embedding结果会有不一致吗?

模型推理会损失精度,通常差异在千分之一以内是符合预期的,不影响检索效果。

  1. 向量数据库目前是否有数据集上限?

目前一个用户支持创建的数据集上限为 200 个,索引上限为 200 个,同一数据集下的索引上限为 100 个。

  1. 向量数据库柔佛环境有哪些使用限制?

目前跨国访问网络存在一定程度波动,有以下潜在影响:

  • doubao-embedding 相关向量化服务暂不可用,海外大模型机房仍在部署中,您可以自己部署模型进行向量化,将处理好的向量数据上传到 VikingDB 进行管理和检索。
  • 海外环境并不使用北京时间,产品提供的创建时间、更新时间等均为 UTC 时间。
  • 暂未开放 DiskANN 功能,请优先使用内存索引,如有需要可联系您的销售/火山引擎客服。
  1. 什么时候推荐做子索引(partition)?

如果仅仅是数据量大的话,不需要。分 partition 是为了解决高效过滤检索的问题,业务场景的检索模式是固定对某一类的数据做检索时比较适合分 partition,比如图片检索中,如果每次检索都需要限定一下图片格式( jpg/png 等),那我们就可以根据图片格式分 partition。

注意

子索引(partition)上限数量默认是 1000,每次检索时需要设置子索引以确保可检索到数据。

  1. 插入重复主键的向量时,会被视为更新操作吗?

是的。插入数据时,如果数据集中已存在相同主键的数据,则会覆盖原数据;如果数据集中没有相同主键的数据,则会写入新数据。

  1. 单次插入操作可以处理的数据量上限是多少?

指定写入的数据是一个数组,单次最多可插入100条数据。

  1. 数据集中添加的字段数量有限制吗?

建议不超过200个,如果有特殊需求,可联系我们沟通。

  1. 数据插入完成后是否可以流式更新索引?

是的,支持流式更新。
需要注意的是,异步写入不会流式更新进索引。

  1. 向量库如何通过接口获取全量数据?

目前不支持,因为向量库数据量比较大(比如几千万上亿),没法全放在接口返回,如果需要全量拿到,可以通过数据导出接口获取。

  1. 向量库如何感知某条数据是否写入成功?

不同的请求方式都会给出请求成功的返回(有些sdk无返回即意味着成功),接口请求成功就意味着数据写入成功。

说明

异步写入的入库滞后时间为小时级别

  1. 向量库如何确定某一条确定数据是否在库中?

如果在知道主键ID的情况下,可以通主键查询的方式找到数据;如果不知道主键ID,可以通过该数据的标量进行标量过滤检索查询。

  1. HNSW-Hybrid 与 HNSW 索引的区别是什么?

HNSW-Hybrid是支持混合索引的 HNSW 算法。可以同时对数据集中的稠密向量和稀疏向量进行索引,并在检索时返回兼顾两种类型相似性的结果。
HNSW-Hybrid适用于对搜索效率要求较高,且需要同时检索稀疏和稠密向量的场景

说明

**稠密向量:**稠密向量是一种高维向量表示形式,其中大多数元素都为非零值。这种特性使得稠密向量在数据分布较为均匀且需要充分利用所有维度信息的场景中表现出色。以下是稠密向量应用的几个常见场景:

  • 自然语言处理:通过 embedding 模型将单词表示为稠密向量,其中每个维度都包含语义信息,用于捕捉词语之间的语义关系。
  • 图像处理:卷积神经网络(CNN)提取的图像特征通常表示为稠密向量,用于分类或检测任务,充分利用图像的全局和局部信息。

稀疏向量:
稀疏向量是与稠密向量相对的一种特殊的高维向量表示形式,其中绝大多数元素为零,只有少量维度具有非零值。这种特性使得稀疏向量在处理大规模、高维且数据稀疏的场景中表现出色。以下是稀疏向量应用的几个常见场景:

  • 文本分析:通过词袋模型表示文档,每个维度对应一个单词,只有文档中实际出现的单词会有非零值。
  • 推荐系统:用户-物品交互矩阵中,每个维度表示用户对某个物品的评分,由于大多数用户只对少数物品进行交互,这种表示形式通常是稀疏的。
  1. 欧式距离(L2) 、内积距离(ip)和余弦距离(cosine) 有什么区别?创建索引时选择哪种距离?

欧式距离(L2):
计算两个向量的欧几里得空间距离,欧式距离越小相似度越高。欧式距离的值域 [0, +∞)
计算公式如下:

Image

其中,a = (a(0), a(1),..., a(n-1))b = (b(0), b(1),..., b(n-1)) 表示 n 维欧氏空间中的两个点。
L2 在处理连续性数据时尤为有效。

内积距离(IP):
两个 Embedding 向量间的 IP 距离,当处理未归一化的数据或关注数据的大小和方向时,内积尤为重要,内积距离越大相似度越高。值域 (-∞, +∞)
内积距离可按以下方式定义:

Image

余弦相似度(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)) 之间的余弦相似度,可使用以下公式:

Image

注意

检索结果中的 score 做了处理,因为在检索结果里 score 越大和候选越相似。

对应不同的距离检索 score 计算方式如下:

距离类型

召回 score

召回 score取值范围

欧几里得距离(L2)

1 - l2_distance

(-∞, 1]

内积距离 (IP)

ip_distance

(-∞, +∞)

余弦相似度(Cosine)

cosine_distance

[-1, 1]

由检索score和距离计算公式可以看出,欧式距离(L2)、内积距离 (IP)、余弦相似度(Cosine)的检索score都有可能是负数,因此召回时分数有负数是正常的。

注意

创建索引时设置距离类型时,应和模型训练使用的距离类型相同。

  1. 搜索 topk 向量时,为什么返回的结果少于 k 个?

当使用了标量过滤、主键过滤、后置处理算子时,可能使召回数据量小于topk。

  1. 向量数据库中支持的最大向量维度是多少?

向量库支持4~4096维的向量,且必须是4的倍数。

  1. 主键字段支持哪些类型的数据?

主键支持int64和string类型的数据。

  1. 向量数据库是否具备横向扩展能力?

用户无需手动扩展持久化存储容量;如需提高QPS承载能力,可更新索引选择更高的CU数,以获得更大的CPU资源。

  1. 向量数据库如何管理数据类型与精度问题?

向量在collection中是以float32全精度存储的,在索引中可以通过参数控制向量的压缩方式,轻微牺牲精度来换取成本收益。

  1. 向量数据库能否为标量或向量字段设置默认值?

可以在数据集创建页面设定标量字段的默认值,或在用 collection 创建的 API 和 SDK 中使用default_val参数指定自定义字段默认值。
不支持指定向量字段的默认值。

  1. 子索引和DSL有什么区别?

子索引是对数据集的逻辑二次划分或分片。
DSL 相当于是请求过滤条件,允许用户通过语法化的方式指定查询条件。DSL 请求全部分片,就是从全部分片中过滤。DSL请求子索引,就是从子索引范围的数据集进行过滤。DSL 过滤并不是直接对物理存储的划分,而是通过条件匹配来筛选出符合需求的结果。

子索引

DSL

本质

数据的物理或逻辑分片

数据的过滤语言

过滤范围

子索引创建时即确定的扫描范围

在选定的数据范围内进行筛选

使用场景

固定的、明确的分组场景

灵活的、动态的复杂查询场景