Megosztás:


Dimenziók csonkítása MRL-tömörítéssel

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 a szemantikai információk minimális elvesztésével.

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 megadhat egy tulajdonságot truncationDimension a vektormezőkön a szövegbeágyazások méretének csökkentése érdekében.

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 állítsa a stored-t false-re.

Figyelmeztetés

Ha stored be van állítva false, a vektoradatok elvesznek a részleges dokumentumfrissítések során, hacsak minden frissítéskor nem adja meg a teljes vektort. Állítsa be a storedtrue-re a probléma elkerülésére. További információ: Az opcionális vektorpéldányok eltávolítása a tárolóból.

Előfeltételek

Támogatott ügyfelek

AZ MRL-tömörítés implementálásához használhatja a REST API-kat vagy az Azure SDK-csomagokat. Jelenleg nem támogatott az Azure Portal vagy a Microsoft Foundry.

  • Tekintse meg az egyes Azure SDK-csomagok változásnaplóit a következő funkciók támogatásához: Python, .NET, Java, JavaScript.

MRL-kibővített szövegbeágyazások használata

Az MRL a már használt szövegbeágyazási modellbe van beépítve. MRL-képességek használata az Azure AI Searchben:

  1. Az indexséma megadásához használja az Index létrehozása vagy frissítése vagy ezzel egyenértékű API-t.

  2. Vektormezők hozzáadása az indexdefinícióhoz.

  3. Adjon meg egy objektumot vectorSearch.compressions az indexdefinícióban.

  4. Adjon meg kvantálási módszert skaláris vagy bináris (ajánlott).

  5. Adja meg a paramétert truncationDimension , és állítsa 512-re. Ha a text-beágyazási-3-nagy modellt használja, akár 256-ra is csökkentheti.

  6. Adjon meg egy vektorprofilt, amely meghatározza a HNSW algoritmust és a vektortömörítési objektumot.

  7. Rendelje hozzá a vektorprofilt egy típusú Edm.Half vektormezőhöz vagy Edm.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 befolyásolja 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 egyéb relevancianövelő funkciókat, például az eredeti vektorokkal való újrarankálást és a túlméretezést.

Bár az indexelés a további lépések miatt lassabb, a lekérdezések gyorsabbak.

Példa: Az MRL-t támogató vektorkeresési konfiguráció

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-bq-with-truncation", 
        "algorithm": "use-hnsw" 
      } 
    ],
    "algorithms": [
       {
          "name": "use-hnsw",
          "kind": "hnsw",
          "hnswParameters": {
             "m": 4,
             "efConstruction": 400,
             "efSearch": 500,
             "metric": "cosine"
          }
       }
    ],
    "compressions": [ 
      { 
        "name": "use-bq-with-truncation", 
        "kind": "binaryQuantization", 
        "rescoringOptions": {
            "enableRescoring": true,
            "defaultOversampling": 10,
            "rescoreStorageMethod": "preserveOriginals"
        },
        "truncationDimension": 1024
      }
    ]
  }
}

Az alábbi JSON a profilt használó vektormező-definíciót mutatja be:

  • Az adattípus vagy Collection(Edm.Half) vagy Collection(Edm.Single).

  • A mezőnek van egy vectorSearchProfile tulajdonsága, amely meghatározza az algoritmust és a tömörítési beállításokat.

  • A mező rendelkezik egy dimensions tulajdonságmal, amely meghatározza a pontozási és rangsorolási eredmények dimenzióinak számát. Az értéknek a használt modell méretkorlátjának kell lennie (1536 a szövegbeágyazáshoz-3-kicsi).

{
    "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": []
}