Zkrácení dimenzí pomocí komprese MRL

Note

Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.

Procvičujte schopnost používat méně dimenzí v text-embedding-3 modelech. V Azure OpenAI se modely vkládání textu-3 přetrénují na technice Matryoshka Representation Learning (MRL), která vytváří více vektorových reprezentací na různých úrovních komprese. Tento přístup vytváří rychlejší hledání a snižuje náklady na úložiště s minimální ztrátou sémantických informací.

Ve službě Azure AI Vyhledávač MRL podpora doplňuje skalární a binární kvantování. Pokud použijete některou truncationDimension metodu kvantování, můžete u vektorových polí zadat vlastnost, která zmenšuje rozměrnost vkládání textu.

Víceúrovňová komprese MRL šetří vektorové úložiště a zlepšuje dobu odezvy dotazů pro vektorové dotazy na základě vkládání textu. Ve službě Azure AI Vyhledávač se podpora MRL nabízí jenom společně s jinou metodou kvantování. Použití binární kvantování s MRL poskytuje maximální zmenšení velikosti vektorového indexu. Chcete-li dosáhnout maximálního snížení úložiště, použijte binární kvantování s MRL a nastavte stored na false.

Výstraha

Pokud nastavíte storedfalse, vektorová data se ztratí během částečných aktualizací dokumentu, pokud neposkytnete celý vektor v každé aktualizaci. Nastavte stored, abyste se true tomuto problému vyhnuli. Další informace naleznete v tématu Odstranění volitelných vektorových instancí z úložiště.

Požadavky

Podporovaní klienti

K implementaci komprese MRL můžete použít rozhraní REST API nebo balíčky sady Azure SDK. V tuto chvíli neexistuje žádná podpora webu Azure Portal ani Microsoft Foundry.

Použijte textová vložení rozšířená o MRL

MrL je integrovaný do modelu vkládání textu, který už používáte. Použití funkcí MRL ve službě Azure AI Vyhledávač:

  1. K určení schématu indexu použijte vytvořit nebo aktualizovat index nebo ekvivalentní rozhraní API.

  2. Přidejte vektorová pole do definice indexu.

  3. vectorSearch.compressions Zadejte objekt v definici indexu.

  4. Zahrňte metodu kvantování, skalární nebo binární (doporučeno).

  5. truncationDimension Zahrňte parametr a nastavte ho na 512. Pokud používáte model text-embedding-3-large, můžete tuto hodnotu nastavit až na 256.

  6. Zahrňte vektorový profil, který určuje algoritmus HNSW a objekt komprese vektoru.

  7. Přiřaďte vektorový profil k vektorovým polím typu Edm.Half nebo Edm.Single v kolekci polí.

Neexistují žádné úpravy na straně dotazu pro použití modelu vkládání textu podporujícího MRL. Podpora MRL nemá vliv na integrovanou vektorizaci, převody textu na dotazy v době dotazu, sémantické řazení a další funkce vylepšení relevance, jako je například změna pořadí s původními vektory a převzorkování.

I když je indexování pomalejší kvůli dodatečným krokům, dotazy jsou rychlejší.

Příklad: Konfigurace vektorové vyhledávání, která podporuje MRL

Následující příklad znázorňuje konfiguraci vektorového vyhledávání, která splňuje požadavky a doporučení MRL.

truncationDimension je vlastnost komprese. Určuje, kolik se má zmenšovat vektorový graf v paměti společně s metodou komprese, jako je skalární nebo binární komprese. Doporučujeme 1 024 nebo vyšší pro truncationDimension s binárním kvantováním. Rozměrnost menší než 1 000 snižuje kvalitu výsledků hledání při použití mrL a binární komprese.

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

Následující json ukazuje definici vektorového pole, která používá tento profil:

  • Datový typ je buď Collection(Edm.Half) nebo Collection(Edm.Single).

  • Pole má vectorSearchProfile vlastnost, která určuje nastavení algoritmu a komprese.

  • Pole má dimensions vlastnost, která určuje počet dimenzí pro bodování a výsledky řazení. Jeho hodnota by měla být limitem dimenzí modelu, který používáte (1 536 pro vkládání textu -3-small).

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