← Cloudflare Vectorize / vectorize / best-practices
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:
- Název ve formátu kebab case, například
prod-search-indexneborecommendations-idx-dev. - (Pevný) velikost dimenze každého vektoru, například 384 nebo 1536.
- (Pevný) metrika vzdálenosti pro výpočet podobnosti vektorů.
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_METRICChcete-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=cosineHTTP 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ď:
- Vysoce přesné bodování, které zvyšuje přesnost skóre shody dotazů i přesnost výsledků dotazů.
- Přibližné skórování pro rychlejší odezvu. Při použití přibližného skórování jsou vrácená skóre pouze přibližným odhadem skutečné vzdálenosti nebo podobnosti mezi vaším dotazem a vrácenými vektory. Více informací najdete v Řízení přesnosti skórování a přesnosti dotazů.
Metriky vzdálenosti nelze po vytvoření indexu změnit a každá metrika má odlišnou funkci bodování.