このトピックでは、ベクトルの基本的な概念 (次元数、距離メトリック、データ型など) について説明し、DashVector をより効果的に使用できるようにします。
基本概念
AI 分野では、ベクトルはオブジェクトの特徴の抽象的な表現です。 DashScope text-embedding-v1 モデルを例に挙げましょう。入力テキストを受け取ると、text-embedding-v1 モデルはそれをベクトルに変換します。この変換プロセスは、embeddingと呼ばれます。
リクエスト例
入力テキスト: The quality of the clothes is simply outstanding, and they look fabulous. The wait was completely worth it, and I am absolutely delighted with my purchase. I will definitely be a repeat customer here.
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='The quality of the clothes is simply outstanding, and they look fabulous. The wait was completely worth it, and I am absolutely delighted with my purchase. I will definitely be a repeat customer here.')
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 text-embedding-v1 モデルによって返されるベクトルには 1,536 個の要素が含まれており、各ベクトルが 1,536 次元であることを示しています。さらに、このモデルのすべての出力で次元数は変わりません。次の表に、DashScope text-embedding-v1 モデルの基本情報を示します。詳細については、このモデルのクイックスタートのトピックをご参照ください。
モデル名 | モデルバージョン | ベクトル次元 | リクエストごとの最大行数 | 1 行あたりの最大文字数 | サポートされている言語 |
DashScope Text Embedding | text-embedding-v1 | 1,536 | 25 | 2,048 | 中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語 |
ベクトルのデータ型とは、その要素のデータ型を指します。たとえば、DashScope text-embedding-v1 モデルによって返されるベクトルのすべての要素が浮動小数点型の場合、ベクトルのデータ型は浮動小数点型です。より具体的な例として、ベクトルが [1,2,3,4] で、整数のみで構成されている場合、ベクトルは整数型の 4 次元ベクトルです。
ベクトルの次元とデータ型は、埋め込みモデルによって異なります。
距離メトリック
ベクトルは配列であるため、ベクトル間の類似度は通常、それらの距離によって測定されます。 DashVector は、3 つの代表的な距離メトリックをサポートしています。
コサイン距離
コサイン類似度は、2 つのベクトル間の角度のコサインによって次のように測定されます。

ここで、A と B は 2 つの異なるベクトル、n はベクトルの次元、· はベクトルの内積、||A|| と ||B|| はそれぞれ 2 つのベクトルの大きさを示します。

DashVector は コサイン距離を使用して類似度を示します。具体的には、コサイン距離 = 1 - コサイン類似度です。コサイン距離の有効範囲は [0, 2] で、値が小さいほど類似度が高くなります。次の式は、コサイン類似度の計算方法を示しています。

ユークリッド距離
ユークリッド距離は、2 つのベクトル間の直線距離です。ユークリッド距離が短いほど、類似度が高くなります。ユークリッド距離は次のように計算されます。

ここで、A と B は 2 つの異なるベクトルであり、n はベクトルの次元を示します。

内積
内積類似度は、2 つのベクトルの内積 (スカラー積とも呼ばれます) を指します。内積が大きいほど、ターゲットベクトル間の類似度が高くなります。内積は次のように計算されます。

ここで、A と B は 2 つの異なるベクトルであり、n はベクトルの次元を示します。

一般的なモデルとベクトルパラメーター
モデルタイプ | ベクトル次元 | データ型 | 推奨される距離メトリック |
DashScope text-embedding-v1 | 1,536 | Float(32) | コサイン |
DashScope multimodal-embedding-one-peace-v1 | 1,536 | Float(32) | コサイン |
OpenAI Embedding | 1,536 | Float(32) | コサイン |
コレクションを作成するときは、使用するモデルに基づいてパラメーターを選択できます。