本文主要介绍向量的基本概念,包括向量维度、距离度量方式、数据类型等,通过基本概念快速了解什么是向量,以及如何更好地使用向量检索服务。
向量的基本概念
在AI领域,向量是描述对象特征的抽象表达。以DashScope上Embedding
。
调用示例
输入文本:“衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买”
以下为Python示例:
调用输出
在返回中embedding
字段中的内容就是一条向量。
什么是向量维度和向量数据类型
从上文中可以看出,向量实际上是一串数字的组合,也就是一个数组,这个数组代表了这段文本的特征。向量的维度即为这个数组中元素的个数,例如,这个数组中有100个元素,那么向量就是100维的。仍以DashScope上
为例, 返回的向量中都有1536个元素,则向量的维度为1536维,且返回的向量维度是不变的。从 的说明文档中也可以查看向量的维度,如下表所示。
模型中文名 |
模型英文名 |
向量维度 |
单次请求文本最大行数 |
单行最大输入字符长度 |
支持语种 |
通用文本向量 |
text-embedding-v1 |
1536 |
25 |
2048 |
中文、英语、西班牙语、法语、葡萄牙语、印尼语。 |
而向量的数据类型指的是向量数组中元素的数据类型。还是以DashScope上
为例,返回向量的元素均为Float型,则向量的数据类型为Float型。换言之,如果向量为[1,2,3,4],向量中的元素都为整数型,那么这个向量则为4维的INT型向量。说明
向量的维度和数据类型,取决于您使用的Embedding的模型,不同的Embedding模型,向量的维度和数据类型可能也是不一样的。
什么是向量的距离度量方式
上文中讲到向量实际上是一个数组,那么向量与向量之间的相似性,通常使用向量之间的距离这个参数来衡量。向量检索服务(DashVector)支持三种典型的距离度量方式。
余弦距离 Cosine
余弦相似度是指两个向量之间的夹角余弦值,它的计算公式为:
其中,A 和 B 分别表示两个向量,n 表示向量的维度,· 表示向量的点积,||A||,||B||分别表示两个向量的模长。
而在DashVector中使用余弦距离来表示相似度,余弦距离=1-余弦相似度,所以余弦距离取值范围为[0, 2],越接近 0 表示越相似,越接近 2 表示越不相似。余弦距离度量的计算公式如下:
欧式距离 Euclidean
欧几里得距离是指两个向量之间的距离,欧式距离越小,表示两个向量越相似,它的计算公式为:
其中, A 和 B 分别表示两个向量,n 表示向量的维度。
点积 DotProduct
向量的点积相似度是指两个向量之间的点积值,也称内积。点积(内积)结果越大,代表越相似,它的计算公式为:
其中,A 和 B 分别表示两个向量,n 表示向量的维度。
常见模型及向量参数设置参考
模型名称 |
向量维度 |
向量数据类型 |
距离度量方式(建议) |
|
1536 |
Float(32) |
Cosine |
|
1536 |
Float(32) |
Cosine |
OpenAI 文本向量 |
1536 |
Float(32) |
Cosine |
在创建Collection时,可根据您使用的模型,选择对应的参数。
免费体验 阿里云高性能向量检索服务: