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.
La búsqueda vectorial es un enfoque de recuperación de información que admite la indexación y la consulta sobre representaciones numéricas del contenido. Dado que el contenido es numérico en lugar de texto sin formato, la coincidencia se basa en vectores que son más similares al vector de consulta, lo que permite la coincidencia entre:
- Similitud semántica o conceptual. Por ejemplo, "perro" y "canino" son conceptualmente similares pero lingüísticamente distintos.
- Contenido multilingüe, como "perro" en inglés y "hund" en alemán.
- Varios tipos de contenido, como "perro" en texto sin formato y una imagen de un perro.
En este artículo se proporciona información general sobre la búsqueda de vectores en Azure AI Search, incluidos escenarios admitidos, disponibilidad e integración con otros servicios de Azure.
Sugerencia
¿Quieres empezar de inmediato? Siga estos pasos:
- Proporcione inserciones para el índice o genere inserciones en una canalización de indexador.
- Cree un índice vectorial.
- Ejecutar consultas vectoriales.
¿Qué escenarios son compatibles con el vector de búsqueda?
La búsqueda de vectores admite los siguientes escenarios:
Búsqueda de similitud. Codifique texto usando modelos de incrustación o modelos de código abierto, como embeddings de OpenAI o SBERT, respectivamente. A continuación, se recuperan documentos mediante consultas que también se codifican como vectores.
Búsqueda híbrida. Azure AI Search define la búsqueda híbrida como la ejecución de la búsqueda de vectores y la búsqueda de palabras clave en la misma solicitud. La compatibilidad con vectores se implementa en el nivel de campo. Si un índice contiene campos vectores y no vectores, puede escribir una consulta que tenga como destino ambos. Las consultas se ejecutan en paralelo y los resultados se combinan en una única respuesta y se clasifican según corresponda.
Búsqueda multi-modal. Codifique texto e imágenes mediante incrustaciones bidireccionales, como OpenAI CLIP o GPT-4 Turbo con Vision en Azure OpenAI y, a continuación, consulte un espacio de inserción compuesto de vectores de ambos tipos de contenido.
Búsqueda multilingüe. Azure AI Search está diseñado para la extensibilidad. Si ha insertado modelos y modelos de chat entrenados en varios lenguajes, puede llamarlos a través de aptitudes personalizadas o integradas en el lado de indexación o vectorizadores en el lado de la consulta. Para obtener más control sobre la traducción de texto, use las funcionalidades de varios idiomas compatibles con Azure AI Search para contenido novector en escenarios de búsqueda híbrida.
Vector de búsqueda filtrado. Una solicitud de consulta puede incluir una consulta vectorial y una expresión de filtro. Los filtros se aplican a los campos de texto y numéricos. Son útiles para los filtros de metadatos y para incluir o excluir los resultados de búsqueda en función de los criterios de filtro. Aunque un campo vectorial no es filtrable, puede configurar un campo numérico o texto filtrable. El motor de búsqueda puede procesar el filtro antes o después de ejecutar la consulta vectorial.
Base de datos de vectores. Búsqueda de Azure AI almacena los datos que se consultan. Úselo como índice de vector puro cuando necesite memoria a largo plazo o una base de conocimiento, datos de base para la arquitectura de generación aumentada por recuperación (RAG) o una aplicación que use vectores.
Funcionamiento del vector de búsqueda en Búsqueda de Azure AI
Azure AI Search admite la indexación, el almacenamiento y la consulta de incrustaciones de vectores desde un índice de búsqueda. En el diagrama siguiente se muestran los flujos de trabajo de indexación y consulta para el vector de búsqueda.
En el lado de la indexación, Azure AI Search usa un algoritmo de vecinos más cercano para colocar vectores similares juntos en un índice. Internamente, crea índices vectoriales para cada campo vectorial.
La forma de insertar contenido de origen en Búsqueda de Azure AI depende del enfoque de procesamiento:
Para el procesamiento interno, Azure AI Search ofrece fragmentación y vectorización de datos integrados en una canalización de indexador. Proporcione los recursos necesarios, como puntos de conexión e información de conexión para Azure OpenAI. Azure AI Search realiza las llamadas y controla las transiciones. Este enfoque requiere un indexador, un origen de datos compatible y un conjunto de aptitudes que impulsa la fragmentación y la incrustación.
Para el procesamiento externo, puede generar inserciones fuera de Azure AI Search e insertar el contenido prevectorizado directamente en los campos vectoriales del índice de búsqueda.
En el lado de la consulta, la aplicación cliente recopila la entrada del usuario, normalmente a través de un mensaje. Puede agregar un paso de codificación para vectorizar la entrada y, a continuación, enviar la consulta vectorial al índice de Azure AI Search para la búsqueda de similitud. Al igual que con la indexación, puede usar la vectorización integrada para codificar la consulta. Para cualquier enfoque, Búsqueda de Azure AI devuelve los documentos con los vecinos más próximos k
(kNN) solicitados en los resultados.
Azure AI Search admite escenarios híbridos que ejecutan la búsqueda de vectores y palabras clave en paralelo y devuelven un conjunto de resultados unificado, que a menudo proporciona mejores resultados que la búsqueda de vectores o palabras clave por sí solas. Para la búsqueda híbrida, el contenido de vector y no vector se ingiere en el mismo índice para las consultas que se ejecutan simultáneamente.
Disponibilidad y precios
La búsqueda de vectores está disponible en todas las regiones y en todos los niveles sin cargo adicional.
Para el portal y el acceso mediante programación a la búsqueda vectorial, puede usar:
- Asistente para importar y vectorizar datos en Azure Portal.
- Los REST API del servicio de búsqueda.
- Los SDK de Azure para .NET, Python y JavaScript.
- Otras ofertas de Azure, como Azure AI Foundry.
Nota
Algunos servicios de búsqueda creados antes del 1 de enero de 2019 no admiten cargas de trabajo vectoriales. Si intenta agregar un campo vectorial a un esquema y recibe un error, se trata de un resultado de servicios obsoletos. En esta situación, debe crear un nuevo servicio de búsqueda para probar la característica de vector.
Los servicios de búsqueda creados después del 3 de abril de 2024 ofrecen cuotas más altas para los índices vectoriales. Si tiene un servicio anterior, es posible que pueda actualizar el servicio para obtener cuotas de vectores más altas.
Integración de Azure y servicios relacionados
Búsqueda de Azure AI está profundamente integrado en la plataforma de Azure AI. En la tabla siguiente se enumeran los productos que son útiles en las cargas de trabajo vectoriales.
Producto | Integración |
---|---|
Fundición de IA de Azure | En el área de juegos de chat, Agregar sus propios datos usa Búsqueda de Azure AI para conectar datos y búsqueda conversacional. El área de juegos es la manera más fácil y rápida de chatear con sus datos. |
Azure OpenAI | Azure OpenAI proporciona modelos de inserción y modelos de chat. Demostraciones y ejemplos tienen como destino el modelo text-embeding-ada-002 . Se recomienda Azure OpenAI para generar incrustaciones para texto. |
Servicios de Azure AI | Image Retrieval Vectorize Image API (versión preliminar) admite la vectorización del contenido de la imagen. Se recomienda esta API para generar incrustaciones de imágenes. |
Plataformas de datos de Azure: Azure Blob Storage, Azure Cosmos DB, Azure SQL, OneLake | Puede usar indexadores para automatizar la ingesta de datos y, después, usar la vectorización integrada para generar inserciones. Azure AI Search puede indexar automáticamente datos vectoriales de indexadores de blobs de Azure, Azure Cosmos DB para indexadores NoSQL, Azure Data Lake Storage Gen2, Azure Table Storage y Fabric OneLake. Para más información, consulte Agregar campos vectoriales a un índice de búsqueda. |
También se usa normalmente en marcos de código abierto como LangChain.