Preguntas frecuentes sobre vectores y representaciones vectoriales (FAQ)

Se aplica a: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceBase de datos SQL en Microsoft Fabric

Este artículo contiene preguntas frecuentes sobre vectores e incrustaciones en el Motor de base de datos de SQL.

¿Cómo puedo mantener las inserciones actualizadas?

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 la sobrecarga de almacenamiento y procesamiento para la búsqueda de vectores?

La sobrecarga para la búsqueda de vectores implica principalmente el almacenamiento de los datos vectoriales 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 Database 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 lenguajes de programación, mientras que otros admiten datos multimodelo (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 en sql Motor de base de datos 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 SQL, se puede implementar la reordenación combinando la búsqueda vectorial con la búsqueda de texto completo (que proporciona la clasificación Best Matching 25 (BM25)), o bien mediante consultas SQL adicionales o modelos de aprendizaje automático para refinar los resultados en función de una lógica empresarial o de preferencias específicas de los usuarios.

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 Microsoft Foundry frente a usar SQL para escenarios de búsqueda de vectores?

Microsoft Foundry (anteriormente AI Search o AI Foundry) es un servicio especializado diseñado para escenarios de búsqueda avanzada, incluida la búsqueda de vectores, el procesamiento de lenguaje natural y la información basada en inteligencia artificial. 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.

Sql Motor de base de datos proporciona la capacidad de almacenar y consultar datos estructurados y no estructurados. 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 puede ejecutar en cualquier plataforma Azure SQL o SQL Server que combine 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.