Přiřazení úzkých datových typů k vektorovým polím ve službě Azure AI Search
Snadný způsob, jak zmenšit velikost vektoru, je uložit vkládání v menším formátu dat. Většina vložených modelů výstupuje 32bitová čísla s plovoucí desetinou čárkou, ale pokud kvantujete vektory nebo pokud je model vkládání podporuje nativně, výstup může být float16, int16 nebo int8, což je výrazně menší než float32. Tyto menší velikosti vektorů můžete přizpůsobit přiřazením úzkého datového typu k vektorovým polím. V indexu vektoru spotřebovávají úzké datové typy méně úložiště.
Datové typy jsou přiřazeny k polím v definici indexu. Můžete použít Azure Portal, rozhraní REST API služby Search nebo balíček sady Azure SDK, který tuto funkci poskytuje.
Požadavky
- Vložený model, který vypíše malé formáty dat, jako jsou například modely vkládání textu-3 nebo Cohere V3.
Podporované úzké datové typy
Projděte si datové typy používané pro vektorová pole pro doporučené použití:
Collection(Edm.Single)
32bitová plovoucí čárka (výchozí)Collection(Edm.Half)
16bitová plovoucí čárka (úzká)Collection(Edm.Int16)
16bitové celé číslo se signedm (úzké)Collection(Edm.SByte)
8bitové celé číslo se signy (úzké)Collection(Edm.Byte)
8bitové celé číslo bez znaménka (povoleno pouze s zabalenými binárními datovými typy)
V seznamu určete, který datový typ je platný pro výstup vloženého modelu, nebo pro vektory, které procházejí vlastní kvantizací.
Následující tabulka obsahuje odkazy na několik vložených modelů, které můžou používat úzký datový typ (
Collection(Edm.Half)
) bez dodatečného kvantování. Můžete přetypovat z float32 na float16 (pomocíCollection(Edm.Half)
) bez další práce.Vložený model Nativní výstup Přiřazení tohoto typu ve službě Azure AI Search text-embedding-ada-002 Float32
Collection(Edm.Single)
neboCollection(Edm.Half)
text-embedding-3-small Float32
Collection(Edm.Single)
neboCollection(Edm.Half)
text-embedding-3-large Float32
Collection(Edm.Single)
neboCollection(Edm.Half)
Vkládání modelů Cohere V3 s využitím embedding_type int8 Int8
Collection(Edm.SByte)
Jiné úzké datové typy lze použít, pokud váš model generuje vkládání v menším datovém formátu nebo pokud máte vlastní kvantování, které převádí vektory do menšího formátu.
Ujistěte se, že rozumíte kompromisům úzkého datového typu.
Collection(Edm.Half)
obsahuje méně informací, což vede k nižšímu rozlišení. Pokud jsou vaše data homogenní nebo hustá, může ztráta nadbytečných podrobností nebo nuance vést k nepřijatelným výsledkům v době dotazu, protože existuje méně podrobností, které lze použít k rozlišení okolních vektorů od sebe.
Přiřazení datového typu
Definujte a sestavte index. Pro účely tohoto kroku můžete použít Azure Portal, vytvořit nebo aktualizovat index (REST API) nebo balíček sady Azure SDK.
Tato definice pole používá úzký datový typ, Collection(Edm.Half)
který může přijmout float32 vkládání uložené jako hodnota float16. To platí pro všechna vektorová pole dimensions
a vectorSearchProfile
jsou nastavena. Specifika datového vectorSearchProfile
typu jsou nezávěstná.
Doporučujeme nastavit retrievable
hodnotu true, stored
pokud chcete vizuálně zkontrolovat hodnoty pole. Při následném opětovném sestavení můžete tyto vlastnosti změnit na false, aby se snížily požadavky na úložiště.
{
"name": "nameEmbedding",
"type": "Collection(Edm.Half)",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"synonymMaps": [],
"dimensions": 1536,
"vectorSearchProfile": "myHnswProfile"
}
Vzpomeňte si, že vektorová pole nejsou filtrovatelná, řaditelná ani fasetová. Nedají se použít jako klíče a nepoužívají analyzátory ani mapy synonym.
Práce s produkčním indexem
Datové typy se přiřazují k novým polím při jejich vytváření. Datový typ existujícího pole nemůžete změnit a pole nemůžete vypustit bez opětovného sestavení indexu. U zavedených indexů, které jsou již v produkčním prostředí, je běžné tento problém obejít vytvořením nových polí s požadovanými revizemi a následným odebráním zastaralých polí během plánovaného opětovného sestavení indexu.
Kontrola výsledků
Ověřte, že obsah pole odpovídá datovému typu. Za předpokladu, že je vektorové pole označené jako
retrievable
, použijte Průzkumník služby Search nebo Search – POST k vrácení obsahu vektorového pole.Pokud chcete zkontrolovat velikost vektorového indexu, podívejte se na sloupec velikosti vektorového indexu na stránce Indexy správy > vyhledávání na webu Azure Portal nebo použijte metodu GET Statistics (REST API) nebo ekvivalentní metodu sady Azure SDK k získání velikosti.
Poznámka:
Datový typ pole slouží k vytvoření fyzické datové struktury. Pokud chcete datový typ později změnit, buď odstraňte a znovu sestavte index, nebo vytvořte druhé pole s novou definicí.