什麼是向量

DashVector發表於2024-07-09

本文主要介紹向量的基本概念,包括向量維度、距離度量方式、資料型別等,透過基本概念快速瞭解什麼是向量,以及如何更好地使用向量檢索服務。


向量的基本概念

在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 分別表示兩個向量,n 表示向量的維度,· 表示向量的點積,||A||,||B||分別表示兩個向量的模長。

什麼是向量

而在DashVector中使用餘弦距離來表示相似度,餘弦距離=1-餘弦相似度,所以餘弦距離取值範圍為[0, 2],越接近 0 表示越相似,越接近 2 表示越不相似。餘弦距離度量的計算公式如下:

什麼是向量

歐式距離 Euclidean

歐幾里得距離是指兩個向量之間的距離,歐式距離越小,表示兩個向量越相似,它的計算公式為:

什麼是向量

其中, A B 分別表示兩個向量,n 表示向量的維度。

什麼是向量

點積 DotProduct

向量的點積相似度是指兩個向量之間的點積值,也稱內積。點積(內積)結果越大,代表越相似,它的計算公式為:

什麼是向量

其中,AB 分別表示兩個向量,n 表示向量的維度。

什麼是向量

常見模型及向量引數設定參考

模型名稱

向量維度

向量資料型別

距離度量方式(建議)

DashScope通用文字向量

1536

Float(32)

Cosine

DashScope OnePeace多模態向量表徵

1536

Float(32)

Cosine

OpenAI 文字向量

1536

Float(32)

Cosine

在建立Collection時,可根據您使用的模型,選擇對應的引數。什麼是向量


免費體驗 阿里雲高效能向量檢索服務https://www.aliyun.com/product/ai/dashvector

相關文章