Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure KI-Suche unterstützt den Collection(Edm.Byte) verpackten Binärtyp, um den Speicher- und Speicherbedarf von Vektordaten weiter zu reduzieren. Sie können diesen Datentyp für die Ausgabe von Modellen verwenden, z. B. die Embed v3-Binär-Einbettungsmodelle von Cohere oder ein anderes Einbettungsmodell oder Prozess, das Vektoren als binäre Bytes ausgibt.
Es gibt drei Schritte zum Konfigurieren eines Indexes für binäre Vektoren:
- Hinzufügen eines Vektorsuchalgorithmus, der den Hamming-Abstand für den Binären Vektorvergleich angibt
- Hinzufügen eines Vektorprofils, das auf den Algorithmus verweist
- Hinzufügen eines Vektorfelds vom Typ
Collection(Edm.Byte)und Zuweisen des Hamming-Abstands
In diesem Artikel werden die REST-APIs zur Veranschaulichung verwendet, Sie können aber auch ein Azure SDK oder das Azure Portal verwenden, um einem Index ein Binäres Feld hinzuzufügen. Sie weisen den binären Datentyp Feldern mithilfe der Indizes – Erstellen oder Indizes – Erstellen oder Aktualisieren von REST-APIs zu.
Tipp
Wenn Sie die Unterstützung des binären Vektors für den geringeren Speicherbedarf untersuchen, sollten Sie auch die Vektorquantisierungs- und Speicherreduzierungsfeatures in Azure KI-Suche berücksichtigen. Eingaben sind float32- oder float16-Einbettungen. Die Ausgabe wird in einem viel kleineren Format gespeichert. Weitere Informationen finden Sie unter Komprimieren mit binärer oder skalarer Quantisierung und Zuweisen schmaler Datentypen.
Voraussetzungen
Vertrautheit mit dem Erstellen eines Indexes und Hinzufügen von Vektorfeldern.
Binäre Vektoren mit einem Bit pro Dimension, verpackt in uint8-Werten mit acht Bit pro Wert. Sie können diese Vektoren mithilfe von Modellen abrufen, die direkt verpackte Binärvektoren generieren oder Vektoren in binäre Vektoren in Ihrer Clientanwendung während der Indizierung und des Abrufs quantisieren.
Einschränkungen
Keine Azure-Portalunterstützung im Assistenten Importieren von Daten.
Keine Unterstützung für binäre Felder im AML skill, die für die integrierte Vektorisierung von Modellen aus dem Microsoft Foundry-Modellkatalog verwendet wird.
Hinzufügen eines Vektorsuchalgorithmus und eines Vektorprofils
Vektorsuchalgorithmen erstellen die Abfragenavigationsstrukturen während der Indizierung. Bei binären Vektorfeldern verwendet das System die Hamming-Entfernungsmetrik, um Vektorvergleiche durchzuführen.
So konfigurieren Sie die Vektorsuche für binäre Vektoren:
Richten Sie eine Indizes - Create or Update (REST API)-Anforderung ein.
Fügen Sie im Indexschema einen
vectorSearchAbschnitt hinzu, der Profile und Algorithmen angibt.Fügen Sie einen oder mehrere Vektorsuchalgorithmen hinzu, die eine Ähnlichkeitsmetrik verwenden.
hammingDer hierarchische Navigable Small Worlds (HNSW)-Algorithmus ist üblich, aber Sie können auch Hamming-Entfernung mit erschöpfenden K-Nearest Neighbors (KNN) verwenden.Fügen Sie ein oder mehrere Vektorprofile hinzu, die den Algorithmus angeben.
Das folgende Beispiel zeigt eine grundlegende vectorSearch Konfiguration.
"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"
}
}
]
}
Hinzufügen eines Binärfelds zu einem Index
Die Feldauflistung eines Indexes muss ein Feld für den Dokumentschlüssel, Vektorfelder und alle anderen Felder enthalten, die Sie für Hybridsuchszenarien benötigen.
Binäre Felder verwenden den Collection(Edm.Byte) Typ und enthalten Einbettungen in verpackter Form. Wenn beispielsweise die ursprüngliche Einbettungsdimension 1024 beträgt, beträgt die gepackte binäre Vektorlänge ceiling(1024 / 8) = 128. Sie erhalten das gepackte Formular, indem Sie die vectorEncoding Eigenschaft für das Feld festlegen.
So fügen Sie einem Index ein binäres Vektorfeld hinzu:
Fügen Sie der Feldauflistung ein Feld hinzu, und geben Sie ihm einen Namen.
Legen Sie den Datentyp auf
Collection(Edm.Byte).Setzen Sie
vectorEncodingaufpackedBitfür binäre Codierung.Setze
dimensionsauf1024. Geben Sie die ursprüngliche (entpackte) Vektordimension an.Legen Sie diese Einstellung
vectorSearchProfileauf ein Profil fest, das Sie im vorherigen Schritt definiert haben.Setze
searchableauftrue.
Die folgende Felddefinition ist ein Beispiel für ein binäres Vektorfeld in einem Indexschema.
"fields": [
. . .
{
"name": "my-binary-vector-field",
"type": "Collection(Edm.Byte)",
"vectorEncoding": "packedBit",
"dimensions": 1024,
"vectorSearchProfile": "myHnswProfile",
"searchable": true
},
. . .
]
Verwandte Inhalte
Überprüfen Sie das Repository azure-search-vector-samples für End-to-End-Workflows, die Schemadefinition, Vektorisierung, Indizierung und Abfragen enthalten.
Überprüfen Sie den Democode der Vektorsuche für C#, Python und JavaScript.