首页 > 其他分享 >什么是向量

什么是向量

时间:2024-07-09 11:09:09浏览次数:11  
标签:什么 数据类型 距离 余弦 维度 文本 向量

 本文主要介绍向量的基本概念,包括向量维度、距离度量方式、数据类型等,通过基本概念快速了解什么是向量,以及如何更好地使用向量检索服务。


向量的基本概念

在AI领域,向量是描述对象特征的抽象表达。以DashScope上通用文本向量模型为例,通过输入一段文本,通用文本向量模型会将这段文本变成一个向量,将文本变成向量的过程叫 Embedding

 

调用示例

输入文本:“衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买”

以下为Python示例:

import dashscope
from dashscope import TextEmbedding

dashscope.api_key = {YOUR API KEY}

def embed_with_str():
    resp = TextEmbedding.call(
        model=TextEmbedding.Models.text_embedding_v1,
        input='衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买')
    print(resp)


if __name__ == '__main__':
    embed_with_str()

调用输出

{
  "status_code": 200,
  "request_id": "617b3670-6f9e-9f47-ad57-997ed8aeba6a",
  "code": "",
  "message": "",
  "output": {
    "embeddings": [
      {
        "embedding": [
          0.09393704682588577,
          2.4155092239379883,
          -1.8923076391220093,
          .,
          .,
          .

        ],
        "text_index": 0
      }
    ]
  },
  "usage": {
    "total_tokens": 23
  }
}

在返回中embedding字段中的内容就是一条向量。

 [
    0.09393704682588577,
    2.4155092239379883,
    -1.8923076391220093,
    .,
    .,
    .
]

什么是向量维度和向量数据类型

从上文中可以看出,向量实际上是一串数字的组合,也就是一个数组,这个数组代表了这段文本的特征。向量的维度即为这个数组中元素的个数,例如,这个数组中有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||分别表示两个向量的模长。

而在DashVector中使用余弦距离来表示相似度,余弦距离=1-余弦相似度,所以余弦距离取值范围为[0, 2],越接近 0 表示越相似,越接近 2 表示越不相似。余弦距离度量的计算公式如下:

欧式距离 Euclidean

欧几里得距离是指两个向量之间的距离,欧式距离越小,表示两个向量越相似,它的计算公式为:

其中, 和 分别表示两个向量,表示向量的维度。

点积 DotProduct

向量的点积相似度是指两个向量之间的点积值,也称内积。点积(内积)结果越大,代表越相似,它的计算公式为:

其中,A 和 分别表示两个向量,表示向量的维度。

常见模型及向量参数设置参考

模型名称

向量维度

向量数据类型

距离度量方式(建议)

DashScope通用文本向量

1536

Float(32)

Cosine

DashScope OnePeace多模态向量表征

1536

Float(32)

Cosine

OpenAI 文本向量

1536

Float(32)

Cosine

在创建Collection时,可根据您使用的模型,选择对应的参数。


免费体验 阿里云高性能向量检索服务https://www.aliyun.com/product/ai/dashvector

 

标签:什么,数据类型,距离,余弦,维度,文本,向量
From: https://www.cnblogs.com/DashVector/p/18291362

相关文章

  • 什么是C#反射(Reflection)
    一、什么是C#反射(Reflection)定义:属性提供了一种将元数据或声明性信息与代码(程序集、类型、方法、属性等)关联的强大方法。当一个属性与一个程序实体相关联后,可以使用一种叫做 反射反射是C#提供的一种强大机制,‌它允许在程序运行时获取关于程序集、‌类型和成员的信息,‌并......
  • 数据血缘系列(2)——什么是数据血缘?
    大家好,我是独孤风。在当今数据驱动的商业环境中,数据治理成为企业成功的关键因素之一。对于数据血缘的定义,一直都有争论,本文我们详细探讨下什么是数据血缘,并说明数据血缘能分析什么。本文为《数据血缘分析原理与实践》一书读书笔记,部分观点参考自书中原文,如需更详细的了解学习,请......
  • 什么是并发连接数、请求数、并发用户数?
    概念并发连接数-SBC(SimultaneousBrowserConnections)并发连接数指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器链接的总TCP数量,就是并发连接数。请求数-QPS(QueryPerSecond)/RPS(RequestPerSecond)请求数有2个缩写,可以叫QPS也可以叫RPS。单位是每秒多少请求。Qu......
  • 向量点乘为降维,叉乘为升维
    本文转自https://baijiahao.baidu.com/s?id=1787300641186091766&wfr=spider&for=pc总结:向量叉乘是诞生了一个新的方向,这个方向垂直于原向量组成的平面。点乘的好处是将高维降低到1维,可以在1个维度上讨论数值问题。如果1是点,那么乘积是线,如果1是线段,那么乘积是面积,如果1是向量......
  • Pandas我这个填充nan值为什么填充不上呢?
    大家好,我是Python进阶者。一、前言前几天在Python钻石交流群【逆光】问了一个Python数据处理的问题,问题如下:请问一下,我这个填充nan值为什么填充不上呢二、实现过程这里【瑜亮老师】给了个思路如下:试试看这样,代码如下:sf_mergetotal.loc[sf_mergetotal['寄件人']=='钟李平',......
  • 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数, 在
    /编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。只要结果,别输出什么提示信息。/#include<stdio.h>#include<string.h>#include<ctype.h>intfun(char*buff){intsum=0;while(*buff......
  • 一文彻底带你搞懂什么是适配器模式!!
    一文彻底带你搞懂什么是适配器模式!!什么是适配器模式?适配器的两种实现方式适用情况代码示例背景类适配器对象适配器IO流中的实际应用应用扩展总结什么是适配器模式?适配器模式(AdapterPattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,......
  • 期刊论文中的结果、讨论、结论三者的区别是什么,他们三个在撰写的时候分别应该包含哪些
    问题描述:期刊论文中的结果、讨论、结论三者的区别是什么,他们三个在撰写的时候分别应该包含哪些内容?问题解答:在期刊论文中,结果(Results)、讨论(Discussion)和结论(Conclusion)是非常重要的部分,它们各自有明确的写作目的和内容要求。以下是对这三部分的详细解释及其区别:结果(Results......
  • 期刊论文一般包含引言、方法与材料、实验、结果、讨论、结论六个部分,或者将结果与讨论
    问题描述:期刊论文一般包含引言、方法与材料、实验、结果、讨论、结论六个部分,或者将结果与讨论合并就是五个部分。引言、方法与材料、实验、结果、讨论、结论六个部分在撰写时,分别包含哪些内容,这六个部分的区别是什么?问题解答:在撰写期刊论文时,通常包括引言(Introduction)、方......
  • 期刊论文中的结果、结论两者的区别是什么,他们两个在撰写的时候分别应该包含哪些内容?
    问题描述:期刊论文中的结果、结论两者的区别是什么,他们两个在撰写的时候分别应该包含哪些内容?问题解答:在期刊论文中,结果(Results)和结论(Conclusion)是两个重要的部分,它们在目的、内容和写作方式上有显著的区别。以下是对它们的详细解释:结果(Results)目的:客观地报告研究的实际发......