本文主要介紹向量的基本概念,包括向量維度、距離度量方式、資料型別等,透過基本概念快速瞭解什麼是向量,以及如何更好地使用向量檢索服務。
向量的基本概念
在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時,可根據您使用的模型,選擇對應的引數。
免費體驗 阿里雲高效能向量檢索服務: