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

Feljegyzés

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.

Az Azure AI Keresés az adott számítási feladatokban használt vektormezők több példányát tárolja. Ha a keresési forgatókönyvek nem igénylik az összes ilyen példányt, kihagyhatja a tárterületet az adott számítási feladathoz.

Olyan esetek, amikor további másolatokat használnak, a következők:

  • Nyers vektorok visszaadása lekérdezési válaszban, vagy a vektortartalom növekményes frissítése.
  • Tömörített (kvantált) vektorok ismételt felvétele lekérdezésoptimalizálási technikaként.

A tárterület eltávolítása visszafordíthatatlan, és szükség esetén újraindexelésre van szükség.

Előfeltételek

  • Vektormezők a keresési indexben, ahol a konfiguráció meghatározza, hogy a Hierarchikus Navigálható Kis Világok (HNSW) vagy a Kimerítő K-Legközelebbi Szomszéd (KNN) algoritmust, valamint egy új vektorprofilt tartalmaz vectorSearch.

Vektormezők tárolása

Példány Használat Kereséshez szükséges Hogyan távolítható el?
Vektorok a HNSW gráfban a közelítő legközelebbi szomszédok (ANN) kereséséhez (HNSW gráf) vagy a teljes K-legközelebbi szomszédok vektoraihoz (eKNN-index) A 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. Essential Ennek a példánynak az eltávolításához nincsenek paraméterek.
A dokumentumindexelés során kapott forrásvektorok (JSON-adatok) Növekményes adatfrissítéshez vagy merge illetve mergeOrUpload indexelő műveletek végrehajtására szolgál. A lekérdezési válaszban a "beolvasható" vektorok visszaadására is használatos. Nem Állítsa a stored tulajdonságot hamis értékre.
Eredeti teljes pontosságú vektorok (bináris adatok) 1 A tömörített vektorok esetében az ANN-keresésből származó, túlmintavételezett jelölt találatok újraértékelésére szolgál preserveOriginals. Ez a skaláris vagy bináris kvantáláson átesett vektormezőkre vonatkozik, és a HNSW-gráfot használó lekérdezésekre vonatkozik. Ha eKNN-t használ, a lekérdezés összes vektora hatókörben van, így az újrarangsorolásnak nincs hatása, és ezért nem támogatott. Nem Állítsa be a rescoringOptions.rescoreStorageMethod tulajdonságot discardOriginals a vectorSearch.compressions értékre.

1 Ez a másolat a belső indexelési műveletekre és a teljes KNN-keresésre is szolgál a régebbi API-verziókban, a 2023-ban létrehozott API-k használatával létrehozott indexeken. Az újabb indexek esetén az eKNN-ben konfigurált mező teljes pontosságú vektorokból áll, így nincs szükség további másolásra.

Forrásvektorok eltávolítása (JSON-adatok)

A vektormező definíciójában egy logikai tulajdonság meghatározza, hogy stored a rendszer lefoglalja-e a tárolót az indexelés során beszerzett előhívható vektortartalomhoz (a forráspéldányhoz). Alapértelmezés szerint a storedtrueértékre van állítva. Ha nincs szüksége nyers vektortartalomra egy lekérdezési válaszban, a stored módosítással false mezőnként legfeljebb 50% tárterületet takaríthat meg.

A beállítás szempontjai "stored": false:

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

  • Ha az indexelési stratégia részleges dokumentumfrissítéseket használ, például merge egy meglévő dokumentumon, mergeOrUpload a beállítás "stored": false megakadályozza, hogy Azure AI Keresés megőrizze a meglévő vektort, ha a vektormező nincs megadva a frissítési kérelemből. Minden újraindexelési műveletbe bele kell foglalnia a teljes vektormezőt (és a nem frissített mezőket). Ellenkező esetben a vektoradatok hiba vagy figyelmeztetés nélkül elvesznek. A kockázat teljes elkerülése érdekében állítsa be a ."stored": true

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 lekért 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 be "stored": false a vektormező beolvasható tárolójának végleges eltávolítását. 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=2026-04-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 a következők "stored": true : és "retrievable": false. Az alapértelmezett konfigurációban egy visszakereshető példányt tárolnak, de az nem jelenik meg automatikusan az eredmények között. Ha stored olyan állapotban van true, bármikor válthat retrievabletrue és false között anélkül, hogy újra kellene építenie az indexet. Amikor storedfalse, retrievable-nek false-nek kell lennie, és nem lehet megváltoztatni.

Teljes pontosságú vektorok eltávolítása

Az eredeti teljes pontosságú vektorokat a tömörített (kvantált) vektorokkal végzett ismételt javítási műveletekhez használják. Az újraszerkesztés célja, hogy csökkentse a tömörítés miatti információvesztést. A rescoring hatása a jelölt dokumentumok nagyobb halmazának lekérése a tömörített indexből, a hasonlósági pontszámok újraszámításával az eredeti vektorok vagy a pont szorzat használatával. Az újraértékelés működéséhez az eredeti vektorokat bizonyos forgatókönyvek esetén tárolni kell. Ennek eredményeképpen bár a kvantálás csökkenti a memóriahasználatot (vektorindex-mérethasználat), némileg növeli a tárolási követelményeket, mivel a tömörített és az eredeti vektorok is tárolódnak. A extra tárterület körülbelül megegyezik a tömörített index méretével.

Követelmények ismételt rögzítése kvantálási megközelítéssel:

  • A skaláris kvantált vektorok ismételt beszkenzálása megköveteli az eredeti teljes pontosságú vektorok megőrzését.

  • A bináris kvantitált vektorok ismételt beíratása használhatja az eredeti teljes pontosságú vektorokat, vagy a bináris beágyazás pont szorzatát, amely kiváló minőségű keresési eredményeket hoz létre anélkül, hogy teljes pontosságú vektorokra kellene hivatkoznia az indexben.

Ajánlások újraértékelése:

  • A skaláris kvantáláshoz őrizze meg az eredeti teljes pontosságú vektorokat az indexben, mert az újrahúzáshoz szükség van rájuk.

  • Bináris kvantálás esetén őrizze meg a teljes pontosságú vektorokat a legmagasabb minőségű újraszámolás érdekében, vagy dobja el a teljes pontosságú vektorokat, ha a bináris beágyazások skaláris szorzata alapján szeretné újraszámolni.

A rescoreStorageMethod tulajdonság szabályozza, hogy a teljes pontosságú vektorok tárolása történik-e. Ebben vectorSearch.compressions a rescoreStorageMethod tulajdonság alapértelmezés szerint be van állítva preserveOriginals, amely megtartja a teljes pontosságú vektorokat a mintavételezési és újrakiértékelési képességekhez a HNSW-gráfon a veszteséges tömörítés hatásának csökkentése érdekében. Ha nincs szükség újraértékelésre, vagy ha bináris kvantálást és a skalár szorzatot használta az újraértékeléshez, csökkentheti a vektor tárolását az alábbi beállítással rescoreStorageMethoddiscardOriginals.

Fontos

A rescoreStorageMethod tulajdonság beállítása visszafordíthatatlan, és hátrányosan befolyásolhatja a keresési minőséget, bár a fok a tömörítési módszertől és az alkalmazott enyhítésektől függ.

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

  1. Használja a REST API-k "Index létrehozása" vagy "Index létrehozása vagy frissítése", illetve egy Azure SDK-t.

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

  3. Az vectorSearch.compressions alatt adja hozzá a rescoringOptions elemet úgy, hogy a enableRescoring igazra legyen állítva, a defaultOversampling pozitív egész számra legyen állítva, valamint a rescoreStorageMethod legyen beállítva discardOriginals bináris kvantálásra és a preserveOriginals skaláris kvantálásra.

    PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2026-04-01
    
    {
        "name": "demo-index",
        "fields": [. . . ],
        . . .
        "vectorSearch": {
            "profiles": [
                {
                "name": "myVectorProfile-1",
                "algorithm": "myHnsw",
                "compression": "myScalarQuantization"
                },
                {
                "name": "myVectorProfile-2",
                "algorithm": "myHnsw",
                "compression": "myBinaryQuantization"
                }
            ],
            "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
                },
                {
                    "name": "myBinaryQuantization",
                    "kind": "binaryQuantization",
                    "rescoringOptions": {
                        "enableRescoring": true,
                        "defaultOversampling": 10,
                        "rescoreStorageMethod": "discardOriginals"
                    },
                    "truncationDimension": null
                }
            ]
        }
    }
    

Feljegyzés

A vektoros tárolási stratégiák az elmúlt néhány kiadásban fejlődtek. Az index létrehozásának dátuma és az API-verzió határozza meg a tárolási beállításokat. Például a 2024-11-01 előzetes verzióban, ha a teljes pontosságú vektorok eltávolítására van beállítva discardOriginals , a bináris kvantáláshoz nem történt újraszerkesztés, mert a pont termék megközelítése nem volt elérhető. Javasoljuk, hogy a legjobb megoldás érdekében használja a legújabb API-kat.