Indexování binárních vektorů pro vyhledávání vektorů

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.

Azure AI Vyhledávač podporuje Collection(Edm.Byte) zabalený binární typ, který dále snižuje nároky na úložiště a paměť vektorových dat. Tento datový typ můžete použít pro výstup modelů, jako jsou binární vložené modely Cohere v3 nebo jakýkoli jiný vložený model nebo proces, který vypíše vektory jako binární bajty.

Existují tři kroky konfigurace indexu pro binární vektory:

  • Přidání algoritmu vektorového vyhledávání, který určuje vzdálenost Hamming pro porovnání binárních vektorů
  • Přidání vektorového profilu, který odkazuje na algoritmus
  • Přidání vektorového pole typu Collection(Edm.Byte) a přiřazení vzdálenosti hammingu

Tento článek používá rozhraní REST API pro ilustraci, ale k přidání binárního pole do indexu můžete použít také Azure SDK nebo portál Azure. Binární datový typ přiřadíte k polím pomocí indexů – Vytvoření nebo indexy – Vytvoření nebo aktualizace rozhraní REST API.

Tip

Pokud zkoumáte podporu binárních vektorů pro menší nároky, můžete zvážit také funkci kvantování vektorů a redukce úložiště v Azure AI Vyhledávač. Vstupy jsou float32 nebo float16 embeddings. Výstup jsou data uložená ve výrazně menším formátu. Další informace najdete v tématu Komprese pomocí binárního nebo skalárního kvantování a přiřazení úzkých datových typů.

Požadavky

  • Znalost vytváření indexu a přidávání vektorových polí

  • Binární vektory s jedním bitem na dimenzi zabalené v hodnotách uint8 s osmi bity na hodnotu. Tyto vektory můžete získat pomocí modelů, které přímo generují zabalené binární vektory nebo kvantifikací vektorů do binárních vektorů v klientské aplikaci během indexování a načítání.

Omezení

  • V průvodci Import dat se nepodporuje portál Azure.

  • Žádná podpora pro binární pole v schopnosti AML, která se používá k integrované vektorizaci modelů z katalogu modelů Microsoft Foundry.

Přidání algoritmu vektorového vyhledávání a profilu vektoru

Algoritmy vektorového vyhledávání vytvářejí navigační struktury dotazů během indexování. V případě binárních vektorových polí systém k porovnání vektorů používá metriku vzdálenosti Hamming.

Konfigurace vektorové vyhledávání binárních vektorů:

  1. Nastavení indexů – vytvoření nebo aktualizace (REST API)

  2. Do schématu indexu vectorSearch přidejte oddíl, který určuje profily a algoritmy.

  3. Přidejte jeden nebo více algoritmů vektorového vyhledávání , které používají metriku hammingpodobnosti . Algoritmus Hierarchical Navigable Small Worlds (HNSW) je běžný, ale můžete také použít Vzdálenost Hammingova s vyčerpávající metodou K-nnejbližších sousedů (KNN).

  4. Přidejte jeden nebo více vektorových profilů, které určují algoritmus.

Následující příklad ukazuje základní vectorSearch konfiguraci.

  "vectorSearch": { 
    "profiles": [ 
      { 
        "name": "myHnswProfile", 
        "algorithm": "myHnsw", 
        "compression": null, 
        "vectorizer": null 
      } 
    ], 
    "algorithms": [ 
      { 
        "name": "myHnsw", 
        "kind": "hnsw", 
        "hnswParameters": { 
          "metric": "hamming" 
        } 
      }, 
      { 
        "name": "myExhaustiveKnn", 
        "kind": "exhaustiveKnn", 
        "exhaustiveKnnParameters": { 
          "metric": "hamming" 
        } 
      } 
    ] 
  }

Přidání binárního pole do indexu

Kolekce polí indexu musí obsahovat pole pro klíč dokumentu, vektorová pole a všechna další pole, která potřebujete pro scénáře hybridního vyhledávání.

Binární pole používají Collection(Edm.Byte) typ a obsahují vložené položky v zabalené podobě. Pokud je například původní vložená dimenze 1024, délka sbaleného binárního vektoru je ceiling(1024 / 8) = 128. Zabalený formulář získáte nastavením vectorEncoding vlastnosti v poli.

Přidání binárního vektorového pole do indexu:

  1. Přidejte pole do kolekce polí a pojmenujte ho.

  2. Nastavte datový typ na Collection(Edm.Byte).

  3. Nastavte vectorEncoding na packedBit pro binární kódování.

  4. Nastavit dimensions na 1024. Zadejte původní (rozbalený) vektorový rozměr.

  5. Nastavte profil vectorSearchProfile , který jste definovali v předchozím kroku.

  6. Nastavit searchable na true.

Následující definice pole je příkladem binárního vektorového pole ve schématu indexu.

  "fields": [ 
    . . . 
    { 
      "name": "my-binary-vector-field", 
      "type": "Collection(Edm.Byte)", 
      "vectorEncoding": "packedBit", 
      "dimensions": 1024, 
      "vectorSearchProfile": "myHnswProfile",
      "searchable": true
    },
   . . . 
  ]
  • V úložišti azure-search-vector-samples najdete kompletní pracovní postupy, které zahrnují definici schématu, vektorizaci, indexování a dotazy.

  • Projděte si ukázkový kód vektorového vyhledávání pro C#, Python a JavaScript.