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


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

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.

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.

  1. Az indexséma megadásához használja a Create or Update indexet (előzetes verzió) vagy azzal 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. 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.

  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 é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.Singletí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": []
}