Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Note
Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.
A beágyazások vagy a heterogén tartalom numerikus ábrázolása a vektorkeresési számítási feladatok alapja. A beágyazások mérete azonban megnehezíti a méretezést és a feldolgozást. A jelentős kutatás és termékfejlesztés számos megoldást hozott létre a skálázás javítására és a feldolgozási idő csökkentésére. Azure AI Keresés számos ilyen képességre koppintva gyorsabb és olcsóbb vektoros számítási feladatokat hozhat létre.
Ez a cikk a Azure AI Keresés összes olyan optimalizálási technikáját ismerteti, amely segíthet csökkenteni a vektorméretet és a lekérdezésfeldolgozási időt.
Vektoroptimalizálási beállításokat adhat meg a vektormező-definíciókban egy keresési indexben. A cikkben ismertetett funkciók többsége általánosan elérhető a latest stabil REST API-verzióban és Azure SDK az adott verziót célzó csomagokban.
A beállítások kiértékelése
Tekintse át a Azure AI Keresés a vektormezők által használt tárterület mennyiségének csökkentésére vonatkozó megközelítéseket. Ezek a megközelítések nem zárják ki egymást, így kombinálhatja őket a vektorméret maximális csökkentése érdekében.
A beépített kvantálást azért javasoljuk, mert minimális erőfeszítéssel tömöríti a vektorméretet a memóriában és a lemezen. Ez a megközelítés általában a legtöbb forgatókönyvben a leghasznosabb. Ezzel szemben a keskeny típusok (kivéve a float16-ot) különleges erőfeszítéseket igényelnek a létrehozásukhoz, és stored a lemeztárolón menthetők, ami nem olyan költséges, mint a memória.
| Megközelítés | Miért érdemes ezt a megközelítést használni? |
|---|---|
| Skaláris vagy bináris kvantálás hozzáadása | Natív float32 vagy float16 beágyazások tömörítése int8 (skaláris) vagy bájt (bináris) formátumba. Ez a beállítás csökkenti a memória és a lemez tárhelyét a lekérdezési teljesítmény romlása nélkül. A kisebb adattípusok( például int8 vagy bájt) olyan vektorindexeket hoznak létre, amelyek kevésbé tartalomban gazdagok, mint a nagyobb beágyazásokkal rendelkezők. Az információvesztés eltolásához a beépített tömörítés a lekérdezés utáni feldolgozásra vonatkozó beállításokat tartalmaz tömörítetlen beágyazások és túlbélyegzés használatával a relevánsabb eredmények visszaadásához. Az átrangsorolás és a túlmintavétel a float32 vagy float16 mezők beépített kvantálásának speciális jellemzői, és nem használhatók olyan embeddings esetében, amelyek egyéni kvantáláson esnek át. |
| Rácsos dimenziók MRL-kompatibilis szövegbeágyazási-3 modellekhez | Kevesebb dimenzió használata szövegbeágyazási-3 modelleken. Az OpenAI Azure ezeket a modelleket újratanítja a Matryoshka Representation Learning (MRL) technikával, 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 a szemantikai információk minimális elvesztésével. Az Azure AI Keresés MRL támogatása kiegészíti a skaláris és bináris kvantálást. Kvantálási módszer használata esetén megadhatja a truncateDimension vektormezők egyik tulajdonságát is, hogy csökkentse a szövegbeágyazások dimenzióját. |
| Kisebb primitív adattípusok hozzárendelése vektormezőkhöz | A szűk adattípusok, például a float16, az int16, az int8 és a bájt (bináris) kevesebb helyet foglalnak el a memóriában és a lemezen. Azonban olyan beágyazási modellel kell rendelkeznie, amely a vektorokat keskeny adatformátumban adja ki. Másik lehetőségként egyéni kvantálási logikával kell rendelkeznie, amely kis adatokat ad ki. A harmadik olyan használati eset, amely kevesebb erőfeszítést igényel, a legtöbb modell által előállított natív float32-beágyazások átdolgozása a float16-ba. A bináris vektorokról további információt az Index bináris vektorok című témakörben talál. |
| A beolvasható vektorok nem kötelező tárolásának megszüntetése | A lekérdezési válaszban visszaadott vektorok tárolása külön történik a lekérdezés végrehajtása során használt vektoroktól. Ha nem kell vektorokat visszaadnia, kikapcsolhatja a beolvasható tárolót, így akár 50 százalékkal is csökkentheti a mezőnkénti lemezterület teljes tárterületét. |
Definiálja az összes beállítást egy üres indexen. Bármelyik implementálásához használja a Azure portált, REST API-kat vagy egy Azure SDK csomagot, amely az ADOTT API-verziót célozza.
Az index definiálása után külön lépésként töltheti be és indexelheti a dokumentumokat.
Példa: Vektorméret vektoros tömörítési technikával
Vektor kvantálás és tárolási lehetőségek Python segítségével egy Python kódminta, amely több keresési indexet hoz létre, amelyek a vektoros tárolás kvantálásától, szűk adattípusoktól és tárolási opcióktól függnek.
Ez a kód létrehozza és összehasonlítja a tároló- és vektorindex méretét az egyes vektortároló-optimalizálási lehetőségekhez. Ezekből az eredményekből láthatja, hogy a kvantálás a vektorméretet csökkenti a leginkább, de a legnagyobb tárolási megtakarítás akkor érhető el, ha több lehetőséget használ.
| Index neve | Tárterület mérete | Vektorméret |
|---|---|---|
| compressiontest-baseline | 21,3613 MB | 4,8277 MB |
| compressiontest-scalar-compression | 17,7604 MB | 1,2242 MB |
| kompresszióteszt-szűk | 16,5567 MB | 2,4254 MB |
| tömörítési teszt-nincs tárolva | 10,9224 MB | 4,8277 MB |
| kompressziósteszt-minden-opcióval | 4,9192 MB | 1,2242 MB |
A Search Service REST API-k az index szintjén jelentik a tárolót és a vektorméretet, ezért nem mezőket, hanem indexeket kell összehasonlítani. A Indexes – Statisztikák lekérése (REST API) vagy egy egyenértékű API használata a Azure SDK-k vektorméretének lekéréséhez.
Kapcsolódó tartalom
Vector-keresés a Azure AI Keresés - Vektorindex létrehozása
- Támogatott adattípusok