Bináris vektorok indexelése vektorkereséshez
Az Azure AI Search támogatja a bináris adatcsomagokat Collection(Edm.Byte)
a vektoradatok tárolási és memóriaigényének további csökkentéséhez. Ezt az adattípust olyan modellek kimenetéhez használhatja, mint például a Cohere 3-as bináris beágyazási modelljei.
A bináris vektorok indexének konfigurálásának három lépése van:
- Adjon hozzá egy vektorkeresési algoritmust, amely megadja a hamming távolságát a bináris vektorok összehasonlításához
- Adjon hozzá egy vektorprofilt, amely az algoritmusra mutat
- Vektorprofil hozzáadása a bináris mező definíciójához
Ez a cikk feltételezi, hogy ismeri az indexek Azure AI Searchben való létrehozását. A REST API-k segítségével szemlélteti az egyes lépéseket, de bináris mezőt is hozzáadhat egy indexhez az Azure Portalon.
A bináris adattípusok az API 2024-07-01-es verziójától kezdve általánosan elérhetők, és az index létrehozása vagy index-API-k létrehozása vagy frissítése használatával vannak hozzárendelve a mezőkhöz.
Tipp.
Ha a bináris vektorok kisebb lábnyomának támogatását vizsgálja, érdemes lehet figyelembe vennie az Azure AI Search vektorkvantizálási és tárolási funkcióit is. A bemenetek float32 vagy float16 beágyazások. A kimenet sokkal kisebb formátumban tárolja az adatokat. További információ: Vektorméret csökkentése kvantálással, keskeny adattípusokkal és tárolási lehetőségekkel.
Előfeltételek
- Bináris vektorok, dimenziónként 1 bittel, uint8 értékekbe csomagolva, értékenként 8 bittel. Ezek a "csomagolt bináris" vektorokat közvetlenül generáló modellek használatával, vagy vektorok bináris vektorokba történő kvantálásával érhetőek el az indexelés és a keresés során.
Korlátozások
- Az Adatok importálása és vektorizálása varázsló nem támogatja az Azure Portalt.
- Az Azure AI Studio modellkatalógusában a modellek integrált vektorizálásához használt AML-készség bináris mezői nem támogatottak.
Vektorkeresési algoritmus és vektorprofil hozzáadása
A vektorkeresési algoritmusok a lekérdezés navigációs struktúráinak létrehozására szolgálnak az indexelés során. Bináris vektormezők esetén a vektorok összehasonlítását a Hamming távolságmetrika használatával hajtjuk végre.
Ha bináris mezőt szeretne hozzáadni egy indexhez, állítson be egy kérést
Create or Update Index
a REST API vagy az Azure Portal használatával.Az indexsémában adjon hozzá egy szakaszt
vectorSearch
, amely profilokat és algoritmusokat határoz meg.Adjon hozzá egy vagy több vektorkeresési algoritmust , amelyek hasonlósági metrikái
hamming
. Gyakori a hierarchikus navigálható kisvilágok (HNSW) használata, de hamming távolság is használható a teljes K-legközelebbi szomszédokkal.Adjon hozzá egy vagy több, az algoritmust meghatározó vektorprofilt.
Az alábbi példa egy alapkonfigurációt vectorSearch
mutat be:
"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"
}
}
]
}
Bináris mező hozzáadása indexhez
Az index mezőgyűjteményének tartalmaznia kell a dokumentumkulcs mezőit, a vektormezőket és a hibrid keresési forgatókönyvekhez szükséges egyéb mezőket.
A bináris mezők típusa Collection(Edm.Byte)
és beágyazásokat tartalmaz csomagolt formában. Ha például az eredeti beágyazási dimenzió az 1024
, akkor a csomagolt bináris vektor hossza .ceiling(1024 / 8) = 128
A csomagolt űrlapot a mező tulajdonságának vectorEncoding
beállításával szerezheti be.
- Adjon hozzá egy mezőt a mezőgyűjteményhez, és adja meg a nevét.
- Adattípus beállítása a következőre
Collection(Edm.Byte)
: . - Bináris kódolásra
packedBit
van beállítvavectorEncoding
. - Állítsa a
dimensions
elemet1024
értékre. Adja meg az eredeti (csomagolatlan) vektordimenziót. - Állítsa be
vectorSearchProfile
az előző lépésben definiált profilt. - A mező kereshetővé tétele.
A következő meződefiníció példa a beállított tulajdonságokra:
"fields": [
. . .
{
"name": "my-binary-vector-field",
"type": "Collection(Edm.Byte)",
"vectorEncoding": "packedBit",
"dimensions": 1024,
"vectorSearchProfile": "myHnswProfile",
"searchable": true
},
. . .
]
Lásd még
Az azure-search-vector-samples adattárban található kódminták a sémadefiníciót, vektorizálást, indexelést és lekérdezéseket tartalmazó, végpontok közötti munkafolyamatokat szemléltetik.