Dimenziók csonkálása MRL-tömörítéssel (előzetes verzió)
Fontos
Ez a funkció nyilvános előzetes verzióban, kiegészítő használati feltételek mellett érhető el. Az előzetes REST API támogatja ezt a funkciót.
A szövegbeágyazási-3 modelleken kevesebb dimenziót használhat. Az Azure OpenAI-ban a text-embedding-3 modelleket áttanítja a Matryoshka Representation Learning (MRL) technika, amely több vektorképezést hoz létre különböző tömörítési szinteken. Ez a megközelítés gyorsabb kereséseket és alacsonyabb tárolási költségeket eredményez, minimális szemantikai adatvesztéssel.
Az Azure AI Searchben az MRL támogatja a skaláris és bináris kvantálás kiegészítését. Kvantálási módszer használata esetén megadhatja a truncationDimension
vektormezők egyik tulajdonságát is, hogy csökkentse a szövegbeágyazások dimenzióját.
Az MRL többszintű tömörítés a vektoros tárolásra ment, és javítja a vektoros lekérdezések lekérdezési válaszidejének javítását a szövegbeágyazások alapján. Az Azure AI Searchben az MRL-támogatás csak egy másik kvantálási módszerrel együtt érhető el. A bináris kvantálás MRL-vel való használata biztosítja a vektorindex méretének maximális csökkentését. A maximális tárterület-csökkentés eléréséhez használja a bináris kvantálást az MRL-vel, és stored
állítsa a hamis értékre.
Ez a funkció előzetes verzióban érhető el. Elérhető az 2024-09-01-preview
előzetes verziójú API-verziót célzó béta SDK-csomagokban.
Előfeltételek
Text-embedding-3 modellek, például Text-embedding-3-small vagy Text-embedding-3-large (csak szöveges tartalom).
Új típusú vektormezők
Edm.Half
vagyEdm.Single
(nem adhat hozzá MRL-tömörítést egy meglévő mezőhöz).Hierarchikus Navigable Small World (HNSW) algoritmus (ebben az előzetes verzióban nem támogatott a teljes KNN).
Skaláris vagy bináris kvantálás. Csonkolt dimenziók csak skaláris vagy bináris kvantálás konfigurálásakor állíthatók be. Az MRL-tömörítés bináris kvantálását javasoljuk.
Támogatott ügyfelek
Az MRL-tömörítés implementálásához használhatja a REST API-kat vagy az Azure SDK bétacsomagjait.
REST API 2024-09-01-preview vagy REST API 2024-11-01-preview
Ellenőrizze a változásnaplókat az egyes Azure SDK bétacsomagokhoz: Python, .NET, Java, JavaScript.
Jelenleg nem támogatott az Azure Portal vagy az Azure AI Studio.
Az MRL által bővített szövegbeágyazások használata
Az MRL egy olyan képesség, amely a már használt szövegbeágyazási modellbe van beépítve. Az Azure AI Search funkcióinak kihasználásához kövesse az alábbi lépéseket.
Az indexséma megadásához használja a Create or Update indexet (előzetes verzió) vagy azzal egyenértékű API-t.
Vektormezők hozzáadása az indexdefinícióhoz.
Adjon meg egy objektumot
vectorSearch.compressions
az indexdefinícióban.Adjon meg kvantálási módszert skaláris vagy bináris (ajánlott).
Ha a szövegbeágyazási-3-nagy modellt használja, adja meg az
truncationDimension
512-nek vagy a 256-os értéknek beállított paramétert.Adjon meg egy vektorprofilt, amely meghatározza a HNSW algoritmust és a vektortömörítési objektumot.
Rendelje hozzá a vektorprofilt egy típusú
Edm.Half
vektormezőhöz vagyEdm.Single
a mezőgyűjteményhez.
Az MRL-kompatibilis szövegbeágyazási modell használatához nincsenek lekérdezésoldali módosítások. Az MRL-támogatás nem érinti az integrált vektorizálást, a szöveg-lekérdezések konvertálását a lekérdezések idején, a szemantikai rangsorolást és más relevancianövelő funkciókat, például az eredeti vektorokkal való újrarakálást és a túlméretezést.
Az indexelés a további lépések miatt lassabb, de a lekérdezések gyorsabbak.
Példa az MRL-t támogató vektorkeresési konfigurációra
Az alábbi példa egy olyan vektorkeresési konfigurációt mutat be, amely megfelel az MRL követelményeinek és ajánlásainak.
truncationDimension
egy tömörítési tulajdonság. Meghatározza, hogy mennyivel zsugorodjon a vektorgráf a memóriában egy tömörítési módszerrel, például skaláris vagy bináris tömörítéssel. Bináris kvantálás esetén truncationDimension
1024 vagy újabb értéket javasoljuk. Az 1000-nél kisebb dimenziójúság rontja a keresési eredmények minőségét AZ MRL és a bináris tömörítés használatakor.
{
"vectorSearch": {
"profiles": [
{
"name": "use-bq-with-mrl",
"compression": "use-mrl,use-bq",
"algorithm": "use-hnsw"
}
],
"algorithms": [
{
"name": "use-hnsw",
"kind": "hnsw",
"hnswParameters": {
"m": 4,
"efConstruction": 400,
"efSearch": 500,
"metric": "cosine"
}
}
],
"compressions": [
{
"name": "use-mrl",
"kind": "truncation",
"rerankWithOriginalVectors": true,
"defaultOversampling": 10,
"truncationDimension": 1024
},
{
"name": "use-bq",
"kind": "binaryQuantization",
"rerankWithOriginalVectors": true,
"defaultOversampling": 10
}
]
}
}
Íme egy példa egy teljes mértékben megadott vektormező-definícióra , amely megfelel az MRL követelményeinek.
Ne feledje, hogy a vektormezők típusának Edm.Half
vagy Edm.Single
típusának kell lennie. A vektormezőknek rendelkezniük kell az vectorSearchProfile
algoritmust és a tömörítési beállításokat meghatározó tulajdonságokkal. A vektormezők dimensions
egy tulajdonságot használnak a pontozási és rangsorolási eredmények dimenzióinak megadásához. Az értéknek a használt modell méretkorlátjának kell lennie (1536 a szövegbe ágyazás-3-kicsi esetén).
{
"name": "text_vector",
"type": "Collection(Edm.Single)",
"searchable": true,
"filterable": false,
"retrievable": false,
"stored": false,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": 1536,
"vectorSearchProfile": "use-bq-with-mrl",
"vectorEncoding": null,
"synonymMaps": []
}