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 por similitud vectorial (VSS) es una capacidad común en aplicaciones inteligentes impulsadas por IA. Puedes usar Azure Managed Redis como una base de datos vectorial de baja latencia cuando la combinas con modelos de incrustación, como Azure OpenAI, para generación Retrieval-Augmented (RAG), caché semántica, recomendaciones, búsqueda y otros escenarios de IA.
Este artículo introduce incrustaciones vectoriales, búsqueda por similitud vectorial y cómo Azure Managed Redis puede almacenar y buscar vectores utilizando el módulo RediSearch.
Para tutoriales y aplicaciones de ejemplo que usan Azure Managed Redis con Azure OpenAI, consulta los siguientes recursos:
Ámbito de disponibilidad
Las funcionalidades del vector de búsqueda en Redis requieren Redis Stack, específicamente el módulo RediSearch. En Azure Managed Redis, RediSearch está disponible como un módulo gestionado que debes habilitar al crear la caché.
La siguiente tabla muestra la disponibilidad de RediSearch para los niveles de Redis gestionados de Azure.
| nivel de Azure Managed Redis | Soporte para RediSearch |
|---|---|
| Memory Optimized | Sí |
| Balanced | Sí |
| Compute Optimized | Sí |
| Flash Optimized | No |
Importante
No puedes añadir módulos a una instancia de Azure Managed Redis una vez creada. Si planeas usar búsqueda vectorial, activa el módulo RediSearch durante el aprovisionamiento.
Planifica una instancia de Azure Managed Redis para búsqueda vectorial
Antes de crear una instancia de Azure Managed Redis para búsqueda vectorial, planifica la configuración de la caché y el modelo de datos. Debes elegir algunas opciones, incluidos módulos y política de clustering, durante el provisionamiento.
Para cargas de trabajo de búsqueda vectorial:
- Activa el módulo RediSearch cuando crees la instancia de Azure Managed Redis.
- Utiliza la política de agrupación Enterprise. RediSearch requiere una política de clústeres empresariales.
- Utiliza la
NoEvictionpolítica de desahucio cuando RediSearch esté activado. - Elige un nivel en memoria soportado: Optimizado en Memoria, Balanceado o Optimizado para Computación.
- Dimensiona la caché tanto para datos vectoriales como para la sobrecarga de índice.
- Almacena metadatos con vectores, como ID de documento, título, URL de origen, categoría, marca de tiempo, ID de inquilino o campos de control de acceso, para que las consultas puedan filtrar los resultados y devolver la información de la fuente.
- Usa TLS para conexiones de clientes y considera la autenticación Microsoft Entra cuando tu cliente la soporte.
- Para cargas de trabajo en producción, considere Private Link, alta disponibilidad y diagnóstico.
Azure Managed Redis gestiona las versiones disponibles de los módulos para el servicio. No puedes cargar módulos manualmente ni actualizar versiones de módulos.
Para más información, consulta Usar módulos Redis con Azure Managed Redis, Azure Managed Redis architecture y Quickstart: Create an Azure Managed Redis instance.
¿Qué son las incrustaciones vectoriales?
Las incrustaciones vectoriales son representaciones numéricas de datos, como palabras, documentos, imágenes o productos, en un espacio vectorial de alta dimensión. Las incrustaciones capturan relaciones semánticas de una manera que permite a las aplicaciones comparar datos matemáticamente.
Por ejemplo, las palabras basketball y baseball suelen tener incrustaciones que están más cercanas entre sí que cualquiera de las palabras a rainforest, porque el modelo coloca conceptos semánticamente relacionados cerca unos de otros en el espacio vectorial.
Diferentes modelos de aprendizaje automático generan embeddings de forma distinta. Para obtener mejores resultados, utiliza un modelo de incrustación de forma consistente para un índice vectorial dado. El esquema del índice, las dimensiones vectoriales y la métrica de distancia deben coincidir con el modelo de incrustación utilizado para generar los vectores.
Comparación de vectores
Puedes comparar vectores usando métricas de distancia o similitud. Entre las métricas comunes se incluyen:
- Similitud del coseno, que compara el ángulo entre vectores.
- Distancia euclidiana, que mide la distancia en línea recta en espacio vectorial.
- Producto interno, que algunos escenarios de incrustación y clasificación suelen utilizar.
La métrica correcta depende del modelo de incrustación y de cómo se normalizan los vectores. En muchos escenarios de incrustación de texto, la similitud coseno es una opción común.
Generación de incrustaciones
Muchos modelos de aprendizaje automático admiten API de inserción. Para un ejemplo de cómo crear incrustaciones vectoriales usando Azure OpenAI, consulta Aprende cómo generar incrustaciones con Azure OpenAI.
¿Qué es una base de datos de vectores?
Una base de datos vectorial almacena, indexa, recupera y compara vectores de alta dimensión. Las bases de datos vectoriales están diseñadas para devolver vectores similares con baja latencia y alto rendimiento.
Puedes usar Azure Managed Redis como base de datos vectorial almacenando incrustaciones en estructuras de datos Redis e indexándolas usando RediSearch.
Almacenamiento vectorial y metadatos
En Redis, puedes almacenar vectores en hashes o documentos JSON. Almacena metadatos útiles con cada vector, como ID del documento, título, URL de origen, categoría, marca de tiempo, ID de inquilino o campos de control de acceso.
Los metadatos hacen que la búsqueda vectorial sea más útil porque las aplicaciones pueden filtrar los resultados antes o durante la búsqueda vectorial. En las aplicaciones RAG, los metadatos también pueden devolverse junto con los resultados de búsqueda para respaldar las citas y la vinculación con las fuentes.
Índice y métodos de búsqueda
Las bases de datos vectoriales utilizan índices para hacer la búsqueda eficiente. RediSearch soporta enfoques comunes de indexación vectorial, incluyendo:
- PLANO - Un índice exacto de fuerza bruta. FLAT puede ser útil para conjuntos de datos o cargas de trabajo más pequeñas que requieren una búsqueda exhaustiva.
- HNSW - Un índice aproximado de vecinos más cercanos basado en grafos jerárquicos navegables de mundos pequeños. HNSW se utiliza a menudo para conjuntos de datos más grandes donde una latencia menor es más importante que la precisión exhaustiva.
Los métodos de búsqueda más comunes incluyen:
-
K-vecinos más cercanos (KNN) - Devuelve los vectores más similares superiores
K. - Vecinos más cercanos aproximados (ANN) - Sacrifica algo de precisión a cambio de una menor latencia y un menor coste computacional.
De las funcionalidades de búsqueda
Las bases de datos vectoriales realizan búsquedas comparando un vector de consulta con vectores indexados y devolviendo los resultados más similares. Muchas aplicaciones también utilizan búsqueda híbrida, donde los filtros de metadatos reducen el conjunto de candidatos antes o durante la comparación vectorial.
Por ejemplo, una consulta de recomendación de producto podría buscar solo productos en una categoría específica, o una aplicación RAG podría buscar solo documentos a los que el usuario actual puede acceder.
Escenarios clave de vectores de búsqueda
La búsqueda por similitud vectorial puede utilizarse en muchos patrones de aplicación, incluyendo:
- Q&A de semántica. Crea un chatbot que responda preguntas a través de tus propios datos. Los documentos pueden ser fragmentados, incrustados, almacenados en Azure Managed Redis y recuperados mediante similitud vectorial antes de ser resumidos por un modelo de lenguaje grande.
- Recuperación de documentos. Utiliza incrustaciones para proporcionar búsqueda semántica en documentos cuando la búsqueda por palabras clave no sea suficiente.
- Recomendación de producto. Encuentra productos o servicios similares basados en la actividad de navegación, el historial de compras o las descripciones de productos.
- Búsqueda visual. Busca productos o imágenes que sean visualmente similares a una imagen enviada.
- Almacenamiento en caché semántico. Reduce el coste y la latencia del LLM almacenando en caché las finalizaciones y reutilizando respuestas en caché cuando un nuevo prompt sea semánticamente similar a un prompt anterior.
- Memoria de conversaciones en un LLM. Almacenar la memoria a corto plazo, como las intervenciones recientes en una conversación, y la memoria a largo plazo, como resúmenes persistentes, preferencias del usuario o datos, como representaciones vectoriales que las aplicaciones puedan recuperar para futuras respuestas.
¿Por qué elegir Azure Managed Redis para almacenar y buscar vectores?
Azure Managed Redis es útil para cargas de trabajo de búsqueda vectorial que requieren acceso de baja latencia cerca de datos de aplicación, datos de caché, estado de sesión o memoria conversacional. Dado que Redis se utiliza comúnmente para patrones de aplicaciones de alto rendimiento, Azure Managed Redis puede soportar búsqueda vectorial y también servir a casos de uso adyacentes como caché, limitación de velocidad, almacenamiento de sesiones, caché semántica y memoria de agentes.
Muchos frameworks de IA y aplicaciones incluyen integraciones con Redis, incluyendo:
- Proveedor Redis del Microsoft Agent Framework
- Kernel semántico Redis Connector
- Integraciones de Redis con LangChain
- LlamaIndex Redis Vector Store
Azure Managed Redis utiliza el módulo RediSearch para soportar capacidades de búsqueda vectorial como:
- Métricas comunes de distancia, incluyendo
L2,COSINE, yIP. - Búsqueda en KNN con
FLATeHNSWíndices vectoriales. - Almacenamiento vectorial en estructuras de datos hash o JSON.
- Preguntas principales sobre K.
- Consultas de rango vectorial.
- Búsqueda híbrida con características de consulta como:
- Filtrado geoespacial.
- Filtros numéricos y de texto.
- Prefijo y coincidencia difusa.
- Coincidencia fonética.
- Consultas booleanas.
¿Cuáles son mis otras opciones para almacenar y buscar vectores?
Azure ofrece múltiples servicios para almacenamiento vectorial y búsqueda. La mejor opción depende de tu carga de trabajo.
| Service | Ten en cuenta cuándo |
|---|---|
| Azure Managed Redis | Necesitas búsqueda vectorial de baja latencia cerca de la caché de la aplicación, estado de sesión, caché semántica o patrones de memoria LLM. |
| Búsqueda de Azure AI | Necesitas un servicio centrado en la búsqueda para indexación de documentos, búsqueda híbrida, ajuste de relevancia y escenarios de recuperación empresarial. |
| Azure Cosmos DB | Quieres búsqueda vectorial junto con datos NoSQL operativos. |
| Azure Database for PostgreSQL: servidor flexible | Quieres realizar búsquedas vectoriales en PostgreSQL usando pgvector junto con datos relacionales. |
Contenido relacionado
La mejor manera de empezar con embeddings y búsqueda vectorial es probarlo tú mismo.