INTEGRITY Dokumentace

Vytváření indexů

Indexy jsou „atomem“ služby Vectorize. Vektory se vkládají do indexu a umožňují vám v něm vyhledávat vektory podobné danému vstupnímu vektoru.

Vytvoření indexu vyžaduje tři vstupy:

Index nelze vytvořit se stejným názvem, jaký má index aktuálně aktivní ve vašem účtu. Index však lze vytvořit s názvem, který dříve patřil odstraněnému indexu.

Konfiguraci indexu nelze po jeho vytvoření změnit.

Vytvoření indexu

wrangler CLI

Chcete-li vytvořit index s wrangler:

npx wrangler vectorize create your-index-name --dimensions=NUM_DIMENSIONS --metric=SELECTED_METRIC

Chcete-li vytvořit index, který dokáže přijímat vektorové embeddingy z modelu Workers AI @cf/baai/bge-base-en-v1.5 embedovací model, který vrací vektory se 768 dimenzemi, použijte následující příkaz:

npx wrangler vectorize create your-index-name --dimensions=768 --metric=cosine

HTTP API

Vectorize také umožňuje vytvářet indexy přes REST API.

Příklad vytvoření indexu přímo ze skriptu v Pythonu:

import requests

url = "https://api.cloudflare.com/client/v4/accounts/{}/vectorize/v2/indexes".format("your-account-id")

headers = {
    "Authorization": "Bearer <your-api-token>"
}

body = {
	"name": "demo-index",
	"description": "some index description",
  "config": {
    "dimensions": 1024,
    "metric": "euclidean"
  },
}

resp = requests.post(url, headers=headers, json=body)

print('Status Code:', resp.status_code)
print('Response JSON:', resp.json())

Tento skript by měl vypsat odpověď se stavovým kódem 201, spolu s tělem odpovědi JSON, které potvrzuje vytvoření indexu se zadanou konfigurací.

Dimenze

Dimenze vycházejí z velikosti výstupu modelu strojového učení (ML), který se použil k jejich generování, a závisí na tom, jak model kóduje a popisuje vlastnosti ve vektorovém embeddingu.

Počet výstupních dimenzí může ovlivnit přesnost vyhledávání vektorů, výkon vyhledávání (latenci) i celkovou velikost indexu. Menší počet výstupních dimenzí může vyhledávání zrychlit, což se hodí pro aplikace určené koncovým uživatelům. Větší počet výstupních dimenzí může poskytnout přesnější vyhledávání, zejména u rozsáhlejších datových sad nebo datových sad s výrazně podobnými vstupy.

Počet dimenzí, pro který byl index vytvořen, nelze změnit. Indexy očekávají husté vektory se stejným počtem dimenzí.

Následující tabulka uvádí několik ukázkových embedding modelů a jejich výstupní dimenze:

Model / Embeddings API Výstupní dimenze Případ užití
Workers AI - @cf/baai/bge-base-en-v1.5 768 Text
OpenAI: ada-002 1536 Text
Cohere - embed-multilingual-v2.0 768 Text
Google Cloud - multimodalembedding 1408 Multimodální (text, obrázky)

Metriky vzdálenosti

Metriky vzdálenosti jsou funkce, které určují, jak blízko jsou si vektory navzájem. Indexy Vectorize podporují tyto metriky vzdálenosti:

Metrika Podrobnosti
cosine Vzdálenost se měří mezi -1 (nejvíce odlišné) až 1 (identické). 0 označuje ortogonální vektor.
euclidean Euklidovská vzdálenost (L2). 0 označuje identické vektory. Čím větší je kladné číslo, tím dále jsou vektory od sebe.
dot-product Záporný skalární součin. Vyšší záporné hodnoty nebo menší kladné hodnoty znamenají podobnější vektory. Skóre -1000 je podobnější než -500, a skóre 15 podobnější než 50.

Určení podobnosti mezi vektory může být subjektivní v závislosti na tom, jak model strojového učení reprezentuje vlastnosti ve výsledných vektorových embeddinzích. Například skóre 0.8511 při použití cosine metrika znamená, že dva vektory jsou si blízké vzdáleností, ale zda jsou si data, která reprezentují, podobné závisí na tom, jak dobře dokáže model reprezentovat původní obsah.

Při dotazování vektorů můžete Vectorize nastavit tak, aby použil buď:

Metriky vzdálenosti nelze po vytvoření indexu změnit a každá metrika má odlišnou funkci bodování.