Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Búsqueda de Azure AI admite el tipo binario empaquetado Collection(Edm.Byte) para reducir aún más la superficie de almacenamiento y memoria de los datos vectoriales. Puede usar este tipo de datos para la salida de los modelos, como los modelos de inserción binaria de Cohere v3 o cualquier otro modelo de inserción o proceso que genera vectores como bytes binarios.
Hay tres pasos para configurar un índice para vectores binarios:
- Agregar un algoritmo de búsqueda vectorial que especifica distancia de Hamming para la comparación de vectores binarios
- Agregar un perfil de vector que apunte al algoritmo
- Agregar un campo vectorial de tipo
Collection(Edm.Byte)y asignar la distancia de Hamming
En este artículo se usan las API REST para la ilustración, pero también puede usar un SDK de Azure o el portal de Azure para agregar un campo binario a un índice. Puede asignar el tipo de datos binario a los campos mediante las API REST Indexes - Create or Indexes - Create Or Update .
Propina
Si estás investigando la compatibilidad de vectores binarios por su huella más pequeña, también podrías considerar las características de cuantificación de vectores y reducción de almacenamiento en Búsqueda de Azure AI. Las entradas son incrustaciones float32 o float16. El resultado se almacena en un formato considerablemente más reducido. Para obtener más información, consulte Comprimir mediante cuantificación binaria o escalar y Asignación de tipos de datos estrechos.
Requisitos previos
Familiaridad con la creación de un índice y la adición de campos vectoriales.
Vectores binarios, con un bit por dimensión, empaquetados en valores uint8 con ocho bits por valor. Puede obtener estos vectores mediante modelos que generan directamente vectores binarios empaquetados o cuantificando vectores en vectores binarios en la aplicación cliente durante la indexación y recuperación.
Limitaciones
No hay soporte para el portal de Azure en el asistente Importar datos.
No se admiten campos binarios en la aptitud AML que se usa para la vectorización integrada de modelos del catálogo de modelos Microsoft Foundry.
Agregar un algoritmo de búsqueda vectorial y un perfil de vector
Los algoritmos de búsqueda vectorial crean las estructuras de navegación de consulta durante la indexación. En el caso de los campos vectoriales binarios, el sistema usa la métrica de distancia hamming para realizar comparaciones vectoriales.
Para configurar la búsqueda de vectores para vectores binarios:
Configura una solicitud Índices: Crear o Actualizar (REST API).
En el esquema de índice, agregue una
vectorSearchsección que especifique perfiles y algoritmos.Agregue uno o varios algoritmos de búsqueda vectorial que usen una métrica de similitud de
hamming. El algoritmo Jerárquico de Pequeños Mundos Navegables (HNSW) es común, pero también puede usar la distancia de Hamming con K-Vecinos Más Cercanos (KNN) exhaustivos.Agregue uno o varios perfiles vectoriales que especifiquen el algoritmo.
En el ejemplo siguiente se muestra una configuración básica vectorSearch .
"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"
}
}
]
}
Agregar un campo binario a un índice
La colección fields de un índice debe incluir un campo para la clave del documento, los campos vectoriales y cualquier otro campo que necesite para escenarios de búsqueda híbrida.
Los campos binarios usan el Collection(Edm.Byte) tipo y contienen incrustaciones en formulario empaquetado. Por ejemplo, si la dimensión de inserción original es 1024, la longitud del vector binario empaquetado es ceiling(1024 / 8) = 128. Para obtener la forma empaquetada, establezca la propiedad vectorEncoding en el campo.
Para agregar un campo de vector binario a un índice:
Agregue un campo a la colección fields y asígnele un nombre.
Establezca el tipo de datos en
Collection(Edm.Byte).vectorEncodingEstablézcalopackedBiten para la codificación binaria.Establezca
dimensionsen1024. Especifique la dimensión de vector original (desempaquetada).Establezca
vectorSearchProfileen un perfil definido en el paso anterior.Establezca
searchableentrue.
La siguiente definición de campo es un ejemplo de un campo vectorial binario en un esquema de índice.
"fields": [
. . .
{
"name": "my-binary-vector-field",
"type": "Collection(Edm.Byte)",
"vectorEncoding": "packedBit",
"dimensions": 1024,
"vectorSearchProfile": "myHnswProfile",
"searchable": true
},
. . .
]
Contenido relacionado
Revise el repositorio azure-search-vector-samples para flujos de trabajo de un extremo a otro que incluyen definición de esquema, vectorización, indexación y consultas.
Revise el código de demostración de búsqueda vectorial de C#, Python y JavaScript.