Megosztás a következőn keresztül:


Nem kötelező vektorpéldányok eltávolítása a tárolóból

Az Azure AI Search az adott számítási feladatokban használt vektormezők több példányát tárolja. Ha nem kell támogatnia egy adott viselkedést, például a nyers vektorok lekérdezési válaszban való visszaadását, beállíthatja az index azon tulajdonságait, amelyek kihagyják a tárterületet az adott számítási feladathoz.

Előfeltételek

Vektormezők tárolása

Minden vektormező esetében három példányban lehet a vektor, mindegyik más célt szolgál:

Példány Használat Vezérlés a következő használatával:
A dokumentumindexelés során kapott JSON-t tároló forrásvektorok Növekményes adatfrissítéshez használható a dokumentumindexelés során vagy mergeOrUpload közbenmerge. Akkor is használható, ha "lekért" vektorokat szeretne visszaadni a lekérdezési válaszban. stored tulajdonság vektormezőkön
Eredeti teljes pontosságú vektorok A meglévő indexekben ezeket a belső indexműveletekhez és a teljes KNN-kereséshez használják. A tömörítést használó vektorok esetében is használható újraszerkesztéshez (ha engedélyezve van) az ANN-keresés által a vektormezőkön végzett, skaláris vagy bináris kvantálási tömörítéssel végzett, túlméretezett találatkészleten. rescoringOptions.rescoreStorageMethod tulajdonság a következőben: vectorSearch.compressions. Az API-verziókkal és újabb verziókkal 2024-11-01-Preview létrehozott indexek tömörítetlen vektormezői alapértelmezés szerint nem lesznek hatással a keresési tevékenységekre és a minőségre.
Vektorok a HNSW gráfban a közelítő szomszédok (ANN) kereséséhez ANN-lekérdezés végrehajtásához használatos. Teljes pontosságú vektorokból (tömörítés nélkül) vagy kvantált vektorokból áll (tömörítés alkalmazásakor) Csak a HNSW-ra vonatkozik. Ezek az adatstruktúrák szükségesek a hatékony ANN-kereséshez.

Megadhatja azokat a tulajdonságokat, amelyek véglegesen elvetik az első két példányt a vektortárolóból.

Az ann vektoros lekérdezés végrehajtásához az utolsó példányra (vektorokra és gráfokra) van szükség. Ha bármilyen tömörítési technikát, például skaláris vagy bináris kvantálást használnak, akkor ezek az adatok erre az adatkészletre lesznek alkalmazva. Ha el szeretné helyezni a veszteséges tömörítést, a második példányt meg kell őriznie újraszerkesztés céljából, hogy javítsa az ANN keresési minőségét.

stored A tulajdonság beállítása

A stored tulajdonság egy logikai tulajdonság egy vektormező-definícióban, amely meghatározza, hogy a tároló lekérdezhető vektormező-tartalomhoz (a forráspéldányhoz) van-e lefoglalva. A stored tulajdonság alapértelmezés szerint igaz. Ha nincs szüksége nyers vektortartalomra egy lekérdezési válaszban, mezőnként akár 50 százalékos tárterületet is menthet, ha hamisra vált stored .

Megfontolandó szempontok a hamis értékre állításhoz stored :

  • Mivel a vektorok nem olvashatók az emberek számára, kihagyhatja őket a RAG-forgatókönyvekben az LLM-eknek küldött eredményekből és a keresési oldalon megjelenített eredményekből. Megtarthatja azonban őket, ha vektorokat használ egy vektortartalmat használó alsóbb rétegbeli folyamatban.

  • Ha azonban az indexelési stratégia részleges dokumentumfrissítéseket( például "egyesítés" vagy "mergeOrUpload") tartalmaz egy meglévő dokumentumon, a beállítás stored=false megakadályozza a mezők tartalomfrissítését az egyesítés során. A keresési dokumentum minden egyes "egyesítési" vagy "mergeOrUpload" műveleténél meg kell adnia a vektormezőket teljes egészében, valamint a frissíteni kívánt nem meg nem felelő mezőket, vagy el kell dobni a vektort.

Fontos

A stored=false hozzárendelés beállítása visszavonhatatlan. Ez a tulajdonság csak az index létrehozásakor állítható be, és csak vektormezőkön engedélyezett. A meglévő indexek új vektormezőkkel való frissítése nem tudja ezt a tulajdonságot a következőre falseállítani: . Ha később beolvasható vektortartalmat szeretne, el kell helyeznie és újra kell építenie az indexet, vagy létre kell hoznia és be kell töltenie egy új mezőt, amely rendelkezik az új hozzárendeléssel.

A keresési index új vektormezőinél állítsa stored hamis értékre a vektormező beolvasható tárolójának végleges eltávolításához. Az alábbi példa egy vektormező-definíciót mutat be a stored tulajdonsággal.

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" 
        } 
      ] 
    } 

A főbb pontok összefoglalása

  • Vektoros adattípusú mezőkre vonatkozik.

  • A lemezen lévő tárhelyre, nem a memóriára van hatással, és nincs hatással a lekérdezésekre. A lekérdezés végrehajtása egy külön vektorindexet használ, amelyet a stored tulajdonság nem érint, mert a vektor másolatát mindig tárolja a rendszer.

  • A stored tulajdonság a vektormezők indexlétrehozása során van beállítva, és visszafordíthatatlan. Ha később lekért tartalmat szeretne, el kell helyeznie és újra kell építenie az indexet, vagy létre kell hoznia és be kell töltenie egy új mezőt, amely rendelkezik az új hozzárendeléssel.

  • Az alapértelmezett értékek igaz értékre és retrievable hamis értékre vannak stored állítva. Az alapértelmezett konfigurációban a rendszer egy lekért példányt tárol, de a rendszer nem adja vissza automatikusan az eredményeket. Ha stored igaz, bármikor válthat retrievable az igaz és a hamis között anélkül, hogy újra kellene építenie egy indexet. Ha stored hamis, akkor hamisnak kell lennie, retrievable és nem módosítható.

rescoreStorageMethod A tulajdonság beállítása

Feljegyzés

Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem ajánlott. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

A rescoreStorageMethod tulajdonság a tömörítés használatakor szabályozza a teljes pontosságú vektorok tárolását.

Az API-verziókkal és újabb verziókkal 2024-11-01-Preview létrehozott indexek tömörítetlen vektormezői alapértelmezés szerint nem lesznek hatással a keresési tevékenységekre és a minőségre. Az API-verzió előtt létrehozott meglévő vektormezők esetében nincs lehetőség az adatok másolatának eltávolítására.

Vektortömörítés esetén a rescoreStorageMethod tulajdonság alapértelmezés szerint be van állítva preserveOriginals , így a HNSW-gráfon a veszteséges tömörítés hatásának csökkentése érdekében a teljes pontosságú vektorok megmaradnaka túlbélyegzési és újraszerkesztési képességekhez . Ha nem használja ezeket a képességeket, csökkentheti a vektoros tárolást a következő beállítással rescoreStorageMethod discardOriginals: .

Fontos

A rescoreStorageMethod tulajdonság beállítása visszafordíthatatlan, és a tömörítési módszertől függően eltérő keresési minőségi veszteséggel jár. Ez az index létrehozásakor vagy új vektormezők hozzáadásakor létrehozott vagy újabb indexeken 2024-11-01-Preview állítható be.

Ha skaláris vagy bináris kvantálást szeretne használni, javasoljuk, hogy tartsa meg a rescoreStorageMethod készletet a keresési minőség maximalizálása érdekében preserveOriginals .

A tulajdonság beállítása:

  1. Használja az Index létrehozása, az Index 2024-11-01 előzetes verziójú REST API-k létrehozása vagy frissítése, illetve a szolgáltatást biztosító Azure SDK bétacsomag használata.

  2. Adjon hozzá egy szakaszt vectorSearch az indexhez profilokkal, algoritmusokkal és tömörítésekkel.

  3. A tömörítések alatt adja hozzá rescoringOptions igaz értékre enableRescoring , defaultOversampling állítsa pozitív egész számra, és rescoreStorageMethod állítsa a következőre preserveOriginals: .

    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
                }
            ]
        }
    }