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.
Databricks AI Search (anteriormente Databricks Vector Search) es una solución de búsqueda integrada en la plataforma Databricks Data + AI e integrada con sus herramientas de gobernanza y productividad. Impulsa la recuperación de aplicaciones de inteligencia artificial como sistemas RAG, sistemas recomendadores y reconocimiento de imágenes y vídeo mediante la búsqueda de las inserciones más similares a una consulta.
La búsqueda vectorial es un tipo de búsqueda optimizada para recuperar incrustaciones. Las incrustaciones son representaciones matemáticas del contenido semántico de los datos, normalmente datos de texto o imagen. Las incrustaciones se generan mediante un modelo de lenguaje grande y son un componente clave de muchas aplicaciones de inteligencia artificial que dependen de buscar documentos o imágenes similares entre sí.
Con Databricks AI Search, creas un índice de AI Search a partir de una tabla de origen, que puede ser una tabla Delta Lake, una tabla de streaming o una tabla gestionada usando Iceberg v3 o superior. El índice incluye datos incrustados con metadatos. A continuación, puede consultar el índice mediante una API de REST para identificar los vectores más similares y devolver los documentos asociados. Puedes estructurar el índice para que se sincronice automáticamente cuando se actualice la tabla de origen subyacente.
AI Search admite lo siguiente:
- Búsqueda de similitud de palabras clave híbrida.
- Búsqueda de palabras clave de texto completo (Beta) en cualquier punto de conexión o índices de texto completo dedicados (Beta) en puntos de conexión optimizados para almacenamiento.
- Filtrado.
- Reordenamiento.
- Listas de control de acceso (ACL) para administrar los puntos de conexión de AI Search.
- Sincronice solo las columnas seleccionadas.
- Guarde y sincronice las incrustaciones generadas.
¿Cómo funciona AI Search?
AI Search usa el algoritmo Mundo Pequeño Navegable Jerárquico (HNSW) para sus búsquedas aproximadas de vecinos más cercanos (ANN) y la métrica de distancia L2 para medir la similitud entre vectores de incrustación. Si desea usar la similitud de coseno, debe normalizar las representaciones vectoriales de sus datos antes de introducirlas en el algoritmo de búsqueda vectorial. Cuando se normalizan los puntos de datos, la clasificación producida por la distancia L2 es la misma que la clasificación producida por la similitud de coseno.
AI Search también admite la búsqueda de similitud de palabras clave híbrida, que combina la búsqueda de inserción basada en vectores con técnicas tradicionales de búsqueda basadas en palabras clave. Este enfoque coincide con las palabras exactas de la consulta, mientras que también usa una búsqueda de similitud basada en vectores para capturar las relaciones semánticas y el contexto de la consulta.
Al integrar estas dos técnicas, la búsqueda de similitud de palabras clave híbrida recuperará documentos que contengan no solo las palabras clave exactas, sino también las que sean conceptualmente similares, proporcionando resultados de búsqueda más completos y relevantes. Este método resulta especialmente útil en aplicaciones RAG en las que los datos de origen tengan palabras clave únicas, como SKU o identificadores que no sean adecuados para la búsqueda de similitud pura.
Para más información sobre la API, consulte la referencia del SDK de Python y Consulte un índice de búsqueda de IA.
Cálculo de búsqueda de similitud
El cálculo de la búsqueda de similitud usa la siguiente fórmula:
donde dist es la distancia euclidiana entre la consulta q y la entrada del índice x:
Algoritmo de búsqueda de palabras clave
Las puntuaciones de relevancia se calculan mediante Okapi BM25. Se buscan todas las columnas de texto o cadena, incluyendo la inserción de texto de origen y las columnas de metadatos en formato de texto o cadena. La función de tokenización divide en límites de palabras, quita la puntuación y convierte todo el texto en minúsculas.
Cómo se combinan la búsqueda de similitud y la búsqueda de palabras clave
Los resultados de búsqueda de similitud y búsqueda de palabras clave se combinan mediante la función Fusión de clasificación recíproca (RRF).
RRF primero reevalúa cada documento de cada método mediante las puntuaciones:
rrf_param controla la importancia relativa de los documentos de clasificación superior e inferior. Según la literatura, rrf_param se establece en 60.
Las puntuaciones se normalizan para que la puntuación más alta posible sea 1 mediante el siguiente factor de normalización:
La puntuación final de cada documento se calcula de la siguiente manera:
Se devuelven los documentos con las puntuaciones finales más altas.
Opciones para proporcionar incrustaciones de vectores
Para crear un índice de AI Search en Databricks, primero debe decidir cómo proporcionar incrustaciones de vectores. Databricks admite tres opciones.
Opción 1: Delta Sync Index con embeddings calculados por Databricks
Con esta opción, utiliza una fuente que contenga datos en formato de texto. Los tipos de código fuente soportados incluyen tablas Delta Lake, tablas de streaming o tablas gestionadas que utilizan Iceberg v3 o superiores. Databricks calcula las inserciones, con un modelo que usted especifique y, opcionalmente, guarda las inserciones en una tabla de Unity Catalog. A medida que se actualiza la fuente, el índice permanece sincronizado con ella.
En el siguiente diagrama se ilustra este proceso:
- Calcule las inserciones de consultas. La consulta puede incluir filtros de metadatos.
- Realice una búsqueda de similitud para identificar los documentos más relevantes.
- Devuelva los documentos más relevantes y anéxelos a la consulta.
Opción 2: Índice de sincronización diferencial con incrustaciones autoadministradas
Con esta opción, utiliza una fuente que contenga incrustaciones precalculadas. Los tipos de código fuente soportados incluyen tablas Delta Lake, tablas de streaming o tablas gestionadas que utilizan Iceberg v3 o superiores. A medida que se actualiza la fuente, el índice permanece sincronizado con ella.
Note
No es posible convertir un índice de inserción autoadministrado en un índice administrado por Databricks. Si más adelante decide usar incrustaciones administradas, debe crear un nuevo índice y volver a calcular las incrustaciones.
En el siguiente diagrama se ilustra este proceso:
- La consulta consta de inserciones y puede incluir filtros de metadatos.
- Realice una búsqueda de similitud para identificar los documentos más relevantes. Devuelva los documentos más relevantes y anéxelos a la consulta.
Opción 3: Índice de acceso vectorial directo
Con esta opción, debe actualizar manualmente el índice mediante la API REST cuando cambie la tabla de incrustaciones.
En el siguiente diagrama se ilustra este proceso:
Opción 4: Índice de búsqueda de texto completo en puntos de conexión optimizados para almacenamiento (Beta)
Con esta opción, creará un índice de sincronización delta en un punto de conexión optimizado para almacenamiento sin necesidad de insertar columnas. El índice admite la búsqueda de texto completo basado en palabras clave mediante la puntuación BM25, sin necesidad de incrustaciones vectoriales. Esto resulta útil para buscar términos, identificadores o palabras clave exactos en datos de texto.
Note
También puede usar query_type="FULL_TEXT" para realizar búsquedas de palabras clave en los índices existentes de AI Search en puntos de conexión estándar y optimizados para almacenamiento. Esta opción es para crear un índice dedicado que no contenga incrustaciones en absoluto.
Los índices de búsqueda de texto completo dedicados solo están disponibles en los puntos de conexión optimizados para almacenamiento y requieren el modo de sincronización por activación. Consulte Creación de un índice de búsqueda de texto completo (Beta) para obtener instrucciones.
Opciones de punto de conexión
AI Search proporciona las siguientes opciones para que pueda seleccionar la configuración del punto de conexión que satisfaga las necesidades de la aplicación.
Note
Solo el QPS alto está disponible para los puntos de conexión estándar.
-
Los puntos de conexión estándar tienen una capacidad de 320 millones de vectores en la dimensión 768.
- Con los puntos de conexión estándar, puede usar QPS altos para admitir un alto rendimiento sostenido. Consulte Escalar el rendimiento del punto de conexión de AI Search con un QPS alto.
- Los puntos de conexión optimizados para almacenamiento tienen una capacidad mayor (más de mil millones de vectores a la dimensión 768) y proporcionan una indexación de 10 a 20 veces más rápida. Las consultas en puntos de conexión optimizados para almacenamiento tienen una latencia ligeramente mayor de aproximadamente 250msec. Los precios de esta opción están optimizados para el mayor número de vectores. Para más información sobre los precios, consulte la página precios de AI Search. Para obtener información sobre cómo administrar los costos de AI Search, consulte la guía de administración de costos de AI Search.
Especifique el tipo de punto de conexión al crear el punto de conexión.
Consulte también Limitaciones de los puntos de conexión optimizados para almacenamiento.
Configuración de la búsqueda de IA
Para usar AI Search, debe crear lo siguiente:
Un punto de conexión de AI Search. Este extremo proporciona acceso al índice de búsqueda con IA. Puede consultar y actualizar el punto de conexión mediante la API de REST o el SDK. Consulte Creación de un punto de conexión de AI Search para obtener instrucciones.
Los puntos de conexión aumentan automáticamente para soportar el tamaño del índice o el número de solicitudes concurrentes. Los puntos de conexión se reducen automáticamente cuando se elimina un índice.
Índice de AI Search. Con un índice de búsqueda con IA, puedes realizar búsquedas en tiempo real de vecinos más próximos aproximados (ANN) en una tabla o vista de origen. Los tipos de código fuente soportados incluyen tablas Delta Lake, tablas de streaming o tablas gestionadas que utilizan Iceberg v3 o superiores. El objetivo de la búsqueda es identificar documentos similares a la consulta. Los índices de búsqueda de IA aparecen en y se rigen por el catálogo de Unity. Consulte Creación de un índice de búsqueda de IA para obtener instrucciones.
Además, si decide hacer que Databricks calcule las inserciones, puede usar un punto de conexión de Foundation Model API preconfigurado, o bien crear un punto de conexión de servicio del modelo para atender el modelo de inserción que prefiera. Consulte API de Modelo base de pago por token o Creación de puntos de conexión de modelo de servicio base para obtener instrucciones.
Para consultar el punto de conexión de servicio del modelo, use la API REST o el SDK de Python. Tu consulta puede definir filtros basados en cualquier columna de la tabla fuente. Para obtener más información, vea Uso de filtros en consultas, la referencia de API o la referencia del SDK de Python.
Requirements
- Área de trabajo habilitada para el catálogo de Unity.
- Computación sin servidor habilitada. Para obtener instrucciones, consulte Conectar a la computación sin servidor.
- Para los puntos de conexión estándar, la tabla de origen debe usar una fuente de cambios de datos. Consulte Uso de la fuente de cambios de datos en Azure Databricks. Las tablas con seguimiento de filas activado utilizan automáticamente una fuente de datos de cambio, sin necesidad de configuración manual. Esto se aplica a las tablas Delta Lake y a las tablas gestionadas que usan Iceberg v3 o superiores.
- Para crear un índice de AI Search, debe tener CREATE TABLE privilegios en el esquema de catálogo donde se creará el índice.
El permiso para crear y gestionar extremos de búsqueda con IA se configura mediante listas de control de acceso. Consulte las ACL del punto de conexión de AI Search.
Protección y autenticación de datos
Databricks implementa los siguientes controles de seguridad para proteger los datos:
- Todas las solicitudes de cliente a AI Search están aisladas, autenticadas y autorizadas lógicamente.
- Ai Search cifra todos los datos en reposo (AES-256) y en tránsito (TLS 1.2+).
AI Search admite dos modos de autenticación, entidades de servicio y tókenes de acceso personal (PAT). En el caso de las aplicaciones de producción, Databricks recomienda usar entidades de servicio, que pueden tener un rendimiento de cada consulta hasta 100 msec más rápido comparado con los tokens de acceso personal.
Token de entidad de servicio. Un administrador puede generar un token de entidad de servicio y pasarlo al SDK o a la API. Consulte usar entidades de servicio. Para casos de uso de producción, Databricks recomienda usar un token de entidad de servicio.
# Pass in a service principal vsc = AISearchClient(workspace_url="...", service_principal_client_id="...", service_principal_client_secret="..." )Token de acceso personal. Puede usar un token de acceso personal para autenticarse con AI Search. Consulte token de autenticación de acceso personal. Si usa el SDK en un entorno de cuaderno, el SDK genera automáticamente un token pat para la autenticación.
# Pass in the PAT token client = AISearchClient(workspace_url="...", personal_access_token="...")
Las claves administradas por el cliente (CMK) se admiten en los puntos de conexión creados el 8 de mayo de 2024 o después.
Supervisión de uso y costos
Para obtener información sobre cómo supervisar el uso y los costos asociados a los índices y puntos de conexión de AI Search, consulte la guía de gestión de costos de AI Search.
También puede consultar el uso según la política de uso. Consulte Directivas de uso de AI Search.
Límites de tamaño de recursos y datos
En la tabla siguiente se resumen los límites de tamaño de datos y recursos para los puntos de conexión e índices de AI Search:
| Resource | Granularidad | Limit |
|---|---|---|
| Puntos de conexión de AI Search | Por área de trabajo | 500 |
| Incrustaciones (índice de sincronización delta) | Por punto de conexión estándar | ~ 320 000 000 a 768 dimensiones de inserción ~ 160 000 000 a 1536 dimensiones de inserción ~ 80 000 000 a 3072 dimensiones de inserción (escala aproximadamente linealmente) |
| Embeddings (índice de acceso vectorial directo) | Por punto de conexión estándar | ~ 2 000 000 a 768 dimensiones de inserción |
| Incrustaciones (punto de conexión optimizado para almacenamiento) | Punto de conexión optimizado para almacenamiento | ~ 1 000 000 000 a 768 dimensiones de inserción |
| Dimensión de inserción | Por índice | 4096 |
| Indexes | Por punto de conexión | 50 |
| Columns | Por índice | 50 |
| Columns | Tipos soportados: Bytes, corto, entero, largo, float, doble, booleano, cadena, marca de tiempo, fecha, array, estructura, mapa | |
| Campos de metadatos | Por índice | 50 |
| Nombre del índice | Por índice | 128 caracteres |
Los límites siguientes se aplican a la creación y actualización de los índices de AI Search:
| Resource | Granularidad | Limit |
|---|---|---|
| Tamaño de fila para el Índice de Sincronización Delta | Por índice | 100 KB |
| Inserción del tamaño de columna de origen para el índice Delta Sync | Por índice | 32764 bytes |
| Límite de tamaño de solicitud upsert masivo para el índice de vector directo | Por índice | 10 MB |
| Límite de tamaño de solicitud de eliminación masiva para el índice de vectores directos | Por índice | 10 MB |
Los límites siguientes se aplican a la API de consulta.
| Resource | Granularidad | Limit |
|---|---|---|
| Longitud del texto de consulta | Por consulta | 32764 caracteres |
| Tokens al usar la búsqueda híbrida | Por consulta | 1024 palabras o caracteres de 2 bytes |
| Condiciones de filtro | Cláusula por filtro | 1024 elementos |
| Número máximo de resultados devueltos (búsqueda de vecinos más cercana aproximada) | Por consulta | 10 000 |
| Número máximo de resultados devueltos (búsqueda de similitud de palabras clave híbrida) | Por consulta | 200 |
| Número máximo de resultados devueltos (búsqueda de texto completo) | Por consulta | 10 000 |
| Tamaño de respuesta | Por consulta | 10 MB |
Limitaciones
- Las columnas de tipo struct y map tienen las siguientes limitaciones:
- Los campos de estructuras deben resolverse a valores primitivos.
- Los arrays y mapas no pueden anidarse dentro de structs.
ARRAY<STRUCT>no es compatible. - Los mapas deben ser columnas de nivel superior con claves de cadena y valores primitivos.
- El nombre de la columna
_idestá reservado. Si la tabla de origen tiene una columna denominada_id, cámbiela antes de crear un índice de BÚSQUEDA DE IA. - No se admiten los permisos de nivel de fila y columna. Sin embargo, puede implementar sus propias ACL de nivel de aplicación mediante la API de filtro.
- No se puede clonar un índice en un área de trabajo diferente. Puede realizar solicitudes entre áreas de trabajo mediante el SDK de Databricks o la API REST.
- La capacidad del índice se aprovisiona en función del tamaño de la tabla de origen en el momento de la creación del índice. A partir de una tabla de origen pequeña, se limita la cantidad que puede aumentar el índice y se pueden producir errores agotados por la capacidad, por lo que se ajusta el tamaño de la tabla de origen para que coincida con el volumen de datos esperado antes de crear el índice.
Limitaciones de los puntos de conexión optimizados para almacenamiento
Las limitaciones de esta sección solo se aplican a los puntos de conexión optimizados para almacenamiento.
- No se admite el modo de sincronización continua.
- No se admiten columnas para sincronizar.
- La dimensión de inserción debe ser divisible por 16.
- El soporte para la actualización incremental es parcial. Cada sincronización debe volver a generar partes del índice de búsqueda de IA.
- En el caso de los índices administrados, las incrustaciones calculadas anteriormente se reutilizan si la fila de origen no ha cambiado.
- Debe prever una reducción significativa de extremo a extremo del tiempo necesario para el proceso de sincronización en comparación con los puntos de conexión estándar. Los conjuntos de datos con 100 millones de incrustaciones deben completar una sincronización en menos de 8 horas. Los conjuntos de datos más pequeños tardarán menos tiempo en sincronizarse.
- No se admiten áreas de trabajo compatibles con FedRAMP.
- Para usar un modelo de inserción personalizado para un índice administrado de Delta Sync, se debe habilitar la versión preliminar de la consulta de IA para modelos personalizados y modelos externos . Consulte Administración de versiones preliminares de Azure Databricks para obtener información sobre cómo habilitar las versiones preliminares.
- Los puntos de conexión optimizados para almacenamiento admiten hasta 1000 millones de inserciones de vectores de 768 dimensiones. Si tiene un caso de uso de escala mayor, póngase en contacto con el equipo de la cuenta.