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.
Se aplica a: SQL Server 2025 (17.x)
Base de datos SQL de Azure SQL Database
deAzure SQL Managed Instance
en Microsoft Fabric
Este artículo contiene preguntas frecuentes sobre vectores e incrustaciones en el motor de base de datos de SQL.
Nota:
Las funcionalidades vectoriales están disponibles en Instancia Administrada de Azure SQL configurada con la directiva Always-up-to-date.
¿Cómo puedo mantener la incrustación actualizada?
Actualice los embeddings cada vez que los datos subyacentes que representan cambian. Esta práctica es especialmente importante para escenarios en los que los datos son dinámicos, como el contenido generado por el usuario o las bases de datos actualizadas con frecuencia. Para obtener más información sobre varias estrategias para mantener actualizadas las incrustaciones, consulte Database and AI: solutions for keeping embeddings updated.
¿Cuál es el almacenamiento y procesamiento adicional en la búsqueda de vectores?
La sobrecarga para la búsqueda de vectores implica principalmente el almacenamiento del tipo de datos vectorial y los recursos computacionales necesarios para la indexación y la búsqueda. El tipo de datos vectorial está diseñado para ser eficaz en términos de almacenamiento, pero la sobrecarga exacta puede variar en función del tamaño ( el número de dimensiones) de los vectores almacenados.
Para obtener más información sobre cómo elegir el tamaño de vector correcto, consulte Inserción de modelos y dimensiones: optimización de la relación de uso de recursos de rendimiento.
Una página de datos de SQL Server puede contener hasta 8060 bytes, por lo que el tamaño del vector afecta al número de vectores que se pueden almacenar en una sola página. Por ejemplo, si tiene un vector con 1,024 dimensiones, y cada dimensión es un float de precisión simple (4 bytes), el tamaño total del vector es de 4,104 bytes en total (carga de 4,096 bytes + 8 bytes de encabezado). Este tamaño limita el número de vectores que caben en una sola página a una.
¿Qué modelo de inserción debo usar y cuándo?
Hay muchos modelos de inserción disponibles. La elección depende de su caso de uso específico y del tipo de datos que está procesando. Algunos modelos admiten varios idiomas, mientras que otros admiten datos multimodales (texto, imágenes, etc.). Algunos modelos solo están disponibles en línea, mientras que otros pueden ejecutarse localmente.
Además del propio modelo, tenga en cuenta el tamaño del modelo y el número de dimensiones que genera. Los modelos más grandes pueden proporcionar una mayor precisión, pero requieren más recursos computacionales y espacio de almacenamiento. En muchos casos, tener más dimensiones no cambia significativamente la calidad de los casos de uso comunes.
Para obtener más información sobre cómo elegir el modelo de inserción adecuado, consulte Inserción de modelos y dimensiones: optimización de la relación de uso de recursos de rendimiento.
¿Cómo puedo decidir cuándo usar valores de punto flotante de precisión única (4 bytes) frente a valores de punto flotante de media precisión (2 bytes) para vectores?
Al almacenar vectores de incrustación en una base de datos, a menudo debe equilibrar la eficacia del almacenamiento con la fidelidad numérica al elegir entre floats de precisión simple (float32) y de media precisión (float16).
Afortunadamente, las incrustaciones normalmente no son muy sensibles a pequeños cambios en la precisión.
Las incrustaciones son representaciones vectoriales densas que se usan en tareas como búsqueda semántica, sistemas de recomendaciones y procesamiento de lenguaje natural. Estos vectores suelen provenir de redes neuronales, que son intrínsecamente tolerantes a pequeñas variaciones numéricas. Como resultado, reducir la precisión desde float32 hasta float16 normalmente tiene un impacto mínimo en la calidad de las comparaciones de similitud o tareas subsiguientes, en particular durante la inferencia.
El uso float16 de puede reducir significativamente el uso de almacenamiento y memoria, lo que resulta especialmente beneficioso al trabajar con conjuntos de datos de inserción a gran escala.
¿Y los vectores dispersos?
Actualmente, el tipo de datos vectorial del motor de base de datos SQL está diseñado para vectores densos. Estos vectores son matrices de números de punto flotante donde la mayoría de los elementos son distintos de cero. Los vectores dispersos, que contienen un número significativo de cero elementos, no se admiten de forma nativa.
¿Cuáles son algunas pruebas comparativas de rendimiento para la búsqueda de vectores de SQL?
El rendimiento puede variar ampliamente en función del caso de uso específico, el tamaño del conjunto de datos y la complejidad de las consultas. Sin embargo, las funcionalidades de búsqueda vectorial de SQL Server son eficaces y escalables. Usan técnicas de indexación para optimizar el rendimiento de la búsqueda.
¿Qué ocurre si tengo más de una columna que quiero usar para generar incrustaciones?
Si tiene varias columnas que desea usar para generar incrustaciones, tiene dos opciones principales:
- Cree una inserción para cada columna o
- Concatene los valores de varias columnas en una sola cadena y, a continuación, genere una sola inserción para esa cadena concatenada.
Para obtener más información sobre estas dos opciones y las consideraciones de diseño de base de datos relacionadas, consulte Inserción de modelos eficientes y elegantes.
¿Qué tal reordenar?
La nueva clasificación mejora la relevancia de los resultados de búsqueda mediante la nueva evaluación de los resultados iniciales en función de criterios o modelos adicionales. En el motor de base de datos de SQL, puede implementar una nueva clasificación mediante la combinación de la búsqueda de vectores con búsqueda de texto completo (que proporciona la clasificación BM25) o mediante consultas SQL adicionales o modelos de aprendizaje automático para refinar los resultados en función de una lógica empresarial o preferencias de usuario específicas.
Para obtener más información, vea Mejorar las funcionalidades de búsqueda con la búsqueda híbrida y la nueva clasificación de RRF.
Una técnica de nueva clasificación más refinada se denomina re-clasificación semántica. La nueva clasificación semántica se basa en un modelo especializado (a menudo un codificador cruzado o un enfoque de interacción tardía) para comparar cada pasaje candidato con la consulta y asignar una puntuación de relevancia detallada. Al reevaluar estos pasajes, los rerankers garantizan que los resultados más precisos, útiles y relevantes se ubican en los primeros lugares.
Para obtener un ejemplo de uso de un modelo de reordenamiento, consulte Reclasificación semántica con Azure SQL, SQL Server 2025 y modelos de reordenamiento de Cohere.
¿Cuándo debo usar AI Search (ahora AI Foundry) frente al uso de SQL para escenarios de búsqueda de vectores?
AI Search (ahora AI Foundry) es un servicio especializado diseñado para escenarios de búsqueda avanzada, como búsqueda de vectores, procesamiento de lenguaje natural e información controlada por IA. Proporciona un conjunto completo de características para crear aplicaciones de búsqueda inteligente, como la compatibilidad integrada con varios modelos de inteligencia artificial, algoritmos de clasificación avanzados e integración con otros servicios de inteligencia artificial.
El motor de base de datos SQL proporciona la capacidad de almacenar cualquier tipo de datos y ejecutar cualquier tipo de consulta: estructurado y no estructurado. Puede realizar la búsqueda de vectores en esos datos. Es una buena opción para escenarios en los que necesita buscar en todos estos datos juntos y no quiere usar un servicio independiente para la búsqueda que complicaría la arquitectura. El motor de base de datos sql ofrece características de seguridad empresariales críticas para asegurarse de que los datos estén siempre protegidos, como la seguridad de nivel de fila (RLS), el enmascaramiento dinámico de datos (DDM), Always Encrypted, las tablas de libro de contabilidad inmutables y el cifrado de datos transparente (TDE).
Este es un ejemplo de una sola consulta que se puede ejecutar en Azure SQL o SQL Server que combina datos vectoriales, geoespaciales, estructurados y no estructurados a la vez. La consulta de ejemplo recupera los 50 restaurantes más relevantes en función de la descripción del restaurante, la ubicación del restaurante y las preferencias del usuario. Usa la búsqueda vectorial para la descripción y la búsqueda geoespacial de la ubicación, el filtrado también por números de estrella, número de revisiones, categoría y otros atributos.
DECLARE @p AS GEOGRAPHY = GEOGRAPHY::Point(47.6694141, -122.1238767, 4326);
DECLARE @e AS VECTOR(1536) = AI_GENERATE_EMBEDDINGS('I want to eat a good focaccia' USE MODEL Text3Embedding);
SELECT TOP (50) b.id AS business_id,
b.name AS business_name,
r.id AS review_id,
r.stars,
r.review,
VECTOR_DISTANCE('cosine', re.embedding, @e) AS semantic_distance,
@p.STDistance(geo_location) AS geo_distance
FROM dbo.reviews AS r
INNER JOIN dbo.reviews_embeddings AS re
ON r.id = re.review_id
INNER JOIN dbo.business AS b
ON r.business_id = b.id
WHERE b.city = 'Redmond'
AND @p.STDistance(b.geo_location) < 5000 -- 5 km
AND r.stars >= 4
AND b.reviews >= 30
AND JSON_VALUE(b.custom_attributes, '$.local_recommended') = 'true'
AND VECTOR_DISTANCE('cosine', re.embedding, @e) < 0.2
ORDER BY semantic_distance DESC;
En el ejemplo anterior, la búsqueda Exact Nearest Neighbor (ENN) busca las revisiones más relevantes en función de la distancia semántica de las incrustaciones, al tiempo que filtra por distancia geoespacial y otros atributos empresariales. Esta consulta muestra la eficacia de combinar la búsqueda vectorial con las funcionalidades tradicionales de SQL para crear una experiencia de búsqueda enriquecida y eficaz.
Si desea usar la búsqueda de vecino más cercano (ANN), puede crear un índice vectorial en la reviews_embeddings tabla y usar la VECTOR_SEARCH función para realizar la búsqueda.
¿Dónde puedo encontrar un laboratorio autodirigido para obtener más información sobre las inserciones y la búsqueda de vectores?
Revise el laboratorio autodirigido de Azure SQL Cryptozoology AI Embeddings.
Contenido relacionado
- Tipo de datos vectorial
- Funciones de vector
- VECTOR_DISTANCE (Transact-SQL)
- VECTOR_SEARCH (Transact-SQL) (versión preliminar)
- CREATE VECTOR INDEX (Transact-SQL)
- Ejemplos de búsqueda de vectores de Azure SQL Database
- Aplicaciones inteligentes e inteligencia artificial
- Preguntas más frecuentes sobre aplicaciones inteligentes e inteligencia artificial (P+F)