Sdílet prostřednictvím


Zkrácení dimenzí pomocí komprese MRL (Preview)

Důležité

Tato funkce je ve verzi Public Preview v rámci doplňkových podmínek použití. Rozhraní REST API ve verzi Preview tuto funkci podporuje.

Procvičte si možnost používat méně dimenzí u modelů s vkládáním textu do 3. 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ší vyhledávání a snižuje náklady na úložiště s minimální ztrátou sémantických informací.

Ve službě Azure AI Search podporuje MRL doplňky skalární a binární kvantování. Pokud použijete některou truncationDimension metodu kvantování, můžete také zadat vlastnost u vektorových polí, abyste snížili dimenzionální rozměry 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 Search 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. Pokud chcete dosáhnout maximálního snížení úložiště, použijte binární kvantování s mrL a stored nastavte hodnotu false.

Tato funkce je ve verzi Preview. Je k dispozici v 2024-09-01-preview balíčcích beta sady SDK, které cílí na verzi preview rozhraní API.

Požadavky

  • Modely vkládání textu -3, například text-embedding-3-small nebo Text-embedding-3-large (pouze textový obsah).

  • Nová vektorová pole typu Edm.Half nebo Edm.Single (do existujícího pole nemůžete přidat kompresi MRL).

  • Hierarchický algoritmus Provigable Small World (HNSW) (nepodporuje vyčerpávající síť KNN v této verzi Preview).

  • Skalární nebo binární kvantování Zkrácené dimenze lze nastavit pouze v případech, kdy je nakonfigurovaná skalární nebo binární kvantování. Pro kompresi MRL doporučujeme binární kvantování.

Podporovaní klienti

K implementaci komprese MRL můžete použít rozhraní REST API nebo beta balíčky sady Azure SDK.

V tuto chvíli není k dispozici žádná podpora webu Azure Portal ani azure AI Studio.

Jak používat vkládání textu rozšířeného mrL

MRL je funkce, která je integrovaná do modelu vkládání textu, který už používáte. Pokud chcete tyto funkce využít ve službě Azure AI Search, postupujte podle těchto kroků.

  1. K určení schématu indexu použijte rozhraní API pro vytvoření nebo aktualizaci (Preview) 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 nastavený na 512 nebo až 256, pokud používáte model s vloženým textem a 3 velkým modelem.

  6. Zadejte 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 integrované vektorizace, převody textu na dotazy, sémantické řazení a další funkce vylepšení relevance, jako je změna pořadí s původními vektory a převzorkování.

Indexování je pomalejší kvůli dodatečným krokům, ale dotazy jsou rychlejší.

Příklad konfigurace vektorového 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. Pro binární kvantování doporučujeme 1 024 nebo vyšší truncationDimension . 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-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
       } 
    ] 
  } 
} 

Tady je příklad plně zadané definice vektorového pole, která splňuje požadavky na mrL.

Vzpomeňte si, že vektorová pole musí být typu Edm.Half nebo Edm.Single. Vektorová pole musí mít vectorSearchProfile vlastnost, která určuje nastavení algoritmu a komprese. Vektorová pole mají dimensions vlastnost použitou k určení počtu dimenzí pro bodování a řazení výsledků. 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": []
}