Eliminace volitelných vektorových instancí z úložiště
Azure AI Search ukládá více kopií vektorových polí, která se používají v konkrétních úlohách. Pokud nepotřebujete podporovat konkrétní chování, jako je vrácení nezpracovaných vektorů v odpovědi dotazu, můžete nastavit vlastnosti v indexu, který pro danou úlohu vynechá úložiště.
Požadavky
- Vektorová pole v indexu vyhledávání s
vectorSearch
konfigurací, pomocí hierarchických pohyblivých malých světů (HNSW) nebo vyčerpávajících algoritmů K-nejbližšího souseda (KNN) a nového vektorového profilu.
Způsob ukládání vektorových polí
Pro každé vektorové pole může existovat tři kopie vektorů, z nichž každá slouží jinému účelu:
Instance | Využití | Řízeno pomocí |
---|---|---|
Zdrojové vektory, které ukládají json, který byl přijat během indexování dokumentu | Používá se k přírůstkové aktualizaci dat s merge indexováním dokumentů nebo mergeOrUpload při jejich indexování. Používá se také v případě, že chcete v odpovědi dotazu vrátit vektory s možností načítání. |
stored vlastnost u vektorových polí |
Původní vektory s plnou přesností | V existujících indexech se používají pro interní operace indexu a pro vyčerpávající vyhledávání KNN. U vektorů používajících kompresi se také používá k vyhodnocení (pokud je povoleno) u převzorkované kandidátské sady výsledků hledání anN na vektorových polích pomocí skalární nebo binární komprese kvantování . | rescoringOptions.rescoreStorageMethod nemovitosti v vectorSearch.compressions . U nekomprimovaných vektorových polí u indexů vytvořených s verzemi 2024-11-01-Preview rozhraní API a novějších verzích se tato pole ve výchozím nastavení vynechá bez dopadu na aktivity vyhledávání ani kvalitu. |
Vektory v grafu HNSW pro hledání přibližných nejbližších sousedů (ANN) | Používá se pro provádění dotazů ANN. Skládá se buď z vektorů s plnou přesností (pokud není použita žádná komprese), nebo quantizovaných vektorů (při použití komprese). | Platí jenom pro HNSW. Tyto datové struktury jsou vyžadovány pro efektivní vyhledávání ANN. |
Můžete nastavit vlastnosti, které trvale zahodí první dvě instance z úložiště vektorů.
Poslední instance (vektory a grafy) se vyžaduje pro provádění vektorového dotazu ANN. Pokud se použijí nějaké techniky komprese, jako je skalární nebo binární kvantování , použije se u této sady dat. Pokud chcete odsadit ztrátovou kompresi, měli byste zachovat druhou instanci pro účely vyhodnocování, aby se zlepšila kvalita vyhledávání ANN.
stored
Nastavení vlastnosti
Vlastnost stored
je logická vlastnost v definici vektorového pole, která určuje, zda je úložiště přiděleno pro obsah načístelné vektorové pole (zdrojová instance). Vlastnost stored
je ve výchozím nastavení true. Pokud v odpovědi dotazu nepotřebujete nezpracovaný vektorový obsah, můžete ušetřit až 50 % úložiště na pole změnou stored
na false.
Důležité informace o nastavení stored
na false:
Vzhledem k tomu, že vektory nejsou čitelné člověkem, můžete je vynechat z výsledků odeslaných do LLM ve scénářích RAG a z výsledků, které se vykreslují na vyhledávací stránce. Pokud ale v podřízeného procesu používáte vektory, které využívají obsah vektorů, je uchovávejte.
Pokud ale strategie indexování zahrnuje částečné aktualizace dokumentů, například sloučení nebo mergeOrUpload v existujícím dokumentu, nastavení
stored=false
zabrání aktualizacím obsahu v těchto polích během sloučení. Při každé operaci "merge" nebo "mergeOrUpload" do hledaného dokumentu musíte zadat vektorová pole v celém rozsahu spolu s nevectorovými poli, která aktualizujete, nebo se vektor zahodí.
Důležité
stored=false
Nastavení přisuzování je nevratné. Tuto vlastnost lze nastavit pouze při vytváření indexu a je povolena pouze u vektorových polí. Aktualizace existujícího indexu pomocí nových vektorových polí nemůže tuto vlastnost nastavit na false
. Pokud chcete později načíst obsah vektoru, musíte index vypustit a znovu sestavit nebo vytvořit a načíst nové pole s novým přiřazením.
U nových vektorových polí v indexu vyhledávání nastavte stored
hodnotu false, aby se trvale odebralo úložiště pro vektorové pole. Následující příklad ukazuje definici vektorového pole s stored
vlastností.
PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name": "demo-index",
"fields": [
{
"name": "vectorContent",
"type": "Collection(Edm.Single)",
"retrievable": false,
"stored": false,
"dimensions": 1536,
"vectorSearchProfile": "vectorProfile"
}
]
}
Shrnutí klíčových bodů
Platí pro pole s datovým typem vektoru.
Ovlivňuje úložiště na disku, ne paměť a nemá žádný vliv na dotazy. Provádění dotazu používá samostatný vektorový index, který nemá vliv na
stored
vlastnost, protože kopie vektoru je vždy uložena.Vlastnost je nastavena během vytváření indexu
stored
u vektorových polí a je nevratná. Pokud chcete později načíst obsah, musíte index vypustit a znovu sestavit nebo vytvořit a načíst nové pole s novým přiřazením.Výchozí hodnoty jsou
stored
nastaveny na hodnotu true aretrievable
jsou nastaveny na hodnotu false. Ve výchozí konfiguraci se uloží načístelná kopie, ale ve výsledcích se automaticky nevrátí. Pokudstored
je hodnota true, můžete kdykoli přepínatretrievable
mezi true a false, aniž byste museli znovu sestavit index. Pokudstored
je false,retrievable
musí být false a nelze ho změnit.
rescoreStorageMethod
Nastavení vlastnosti
Poznámka:
Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Vlastnost rescoreStorageMethod
řídí ukládání vektorů s plnou přesností při použití komprese.
U nekomprimovaných vektorových polí u indexů vytvořených s verzemi 2024-11-01-Preview
rozhraní API a novějších verzích se tato pole ve výchozím nastavení vynechá bez dopadu na aktivity vyhledávání ani kvalitu. U existujících vektorových polí vytvořených před touto verzí rozhraní API neexistuje možnost odebrat tuto kopii dat.
U komprese vektorů rescoreStorageMethod
je vlastnost nastavena na preserveOriginals
výchozí, což zachovává vektory úplné přesnosti propřevzorkování a možnosti přejmenovávání , aby se snížil účinek ztráty komprese na graf HNSW. Pokud tyto funkce nepoužíváte, můžete snížit velikost úložiště vektorů nastavením na discardOriginals
.rescoreStorageMethod
Důležité
rescoreStorageMethod
Nastavení vlastnosti je nevratné a bude mít různé úrovně ztráty kvality vyhledávání v závislosti na metodě komprese. To lze nastavit u indexů vytvořených pomocí 2024-11-01-Preview
indexů nebo novějších, a to buď během vytváření indexu, nebo přidávání nových vektorových polí.
Pokud máte v úmyslu použít skalární nebo binární kvantování, doporučujeme zachovat rescoreStorageMethod
sadu pro preserveOriginals
maximalizaci kvality vyhledávání.
Nastavení této vlastnosti:
Použijte rozhraní REST API pro vytvoření nebo vytvoření nebo vytvoření nebo aktualizaci indexu 2024-11-01-preview nebo beta balíčku sady Azure SDK, který tuto funkci poskytuje.
Přidejte do indexu
vectorSearch
oddíl s profily, algoritmy a kompresemi.V části komprese přidejte
rescoringOptions
s nastavenouenableRescoring
na hodnotu true,defaultOversampling
nastavte na kladné celé číslo arescoreStorageMethod
nastavte hodnotupreserveOriginals
.PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-11-01-preview { "name": "demo-index", "fields": [. . . ], . . . "vectorSearch": { "profiles": [ { "name": "myVectorProfile", "algorithm": "myHnsw", "compression": "myScalarQuantization" } ], "algorithms": [ { "name": "myHnsw", "kind": "hnsw", "hnswParameters": { "metric": "cosine", "m": 4, "efConstruction": 400, "efSearch": 500 }, "exhaustiveKnnParameters": null } ], "compressions": [ { "name": "myScalarQuantization", "kind": "scalarQuantization", "rescoringOptions": { "enableRescoring": true, "defaultOversampling": 10, "rescoreStorageMethod": "preserveOriginals" }, "scalarQuantizationParameters": { "quantizedDataType": "int8" }, "truncationDimension": null } ] } }