Preguntas frecuentes sobre Oracle AI Vector Search

Temas de las preguntas frecuentes

Preguntas generales

¿Qué es un vector?

Un vector es una representación numérica de texto, imágenes, audio o video que codifica las características / significado semántico de los datos, en lugar de los contenidos reales, como las palabras subyacentes o píxeles. Un vector es una lista de valores numéricos, conocidos como dimensiones, con un formato especificado.

¿Cuántas dimensiones vectoriales son compatibles?

Oracle AI Vector Search admite vectores hasta de 65 535 dimensiones.

¿Qué formatos de número se admiten para los vectores?

AI Vector Search admite los formatos INT8, FLOAT32 y FLOAT64.

¿Qué tamaño tienen los vectores?

El tamaño de un vector es el producto del número de dimensiones y el tamaño de cada dimensión.

Por ejemplo, un vector con 2048 dimensiones y el formato INT8 (1 byte) tiene un tamaño de 2 KB. Un vector con 1024 dimensiones y el formato FLOAT32 (4 bytes) tiene un tamaño de 4 KB.

¿Cómo se crean los vectores?

Los vectores se crean a partir de diferentes tipos de datos de entrada (texto, imágenes, audio, video, etc.) mediante modelos de aprendizaje profundo conocidos como modelos de inserción. Puedes crear vectores fuera de la base de datos mediante tus propios modelos de incrustado o servicio de incrustado, o bien puedes crearlos en la base de datos mediante modelos de incrustado importados mediante la función SQL VECTOR_EMBEDDING().

¿Con qué modelos de integración funciona AI Vector Search?

AI Vector Search debería funcionar con cualquier modelo de incrustación válido que genere vectores con uno de los formatos soportados y 65 535 o menos dimensiones.

¿Qué modelos de incrustado debo considerar utilizar y dónde puedo obtenerlos?

La elección del modelo de integración depende de muchos factores, como la naturaleza de tus datos, las métricas de rendimiento que priorizas y el costo que estás dispuesto a pagar. Los modelos de incrustación de código abierto gratuitos, como varios transformadores de oraciones, se pueden encontrar en Hugging Face y sitios similares. Estos modelos se pueden convertir a ONNX para ejecutarse en la base de datos con AI Vector Search. Además, una fuente popular para los mejores modelos de inserción de texto es la Tabla de clasificación MTEB que aloja Hugging Face. También puedes acudir a proveedores de modelos establecidos, como OpenAI y Cohere.

¿Qué operaciones se admiten en vectores?

Existen múltiples operaciones matemáticas admitidas en los vectores, pero la operación más importante es la función SQL VECTOR_DISTANCE(), que encuentra la distancia matemática entre dos vectores basándose en la fórmula de distancia seleccionada. Hay muchas fórmulas de distancia compatibles con Oracle AI Vector Search, que incluyen distancia euclidiana, similitud de coseno y distancia de Hamming. La elección de la función de distancia normalmente se basa en el modelo de incrustación utilizado para generar los vectores.

¿Cómo se utilizan los vectores en la búsqueda de similitudes?

Todos los tipos de vectores comparten la misma propiedad: cuanto más similares sean las dos entidades, menor será la distancia matemática entre ellas. Por ejemplo, los vectores de "manzana" y "naranja" están más cerca que los vectores de "manzana" y "perro". Esta propiedad de los vectores les permite ser utilizados para buscar datos por similitud semántica.

¿Cómo se realiza la búsqueda de AI Vector Search con SQL?

Hay extensiones SQL sencillas e intuitivas que permiten que AI Vector Search se incorpore fácilmente dentro de sus aplicaciones. Dado que la distancia vectorial es una medida de similitud, la búsqueda vectorial de IA simplemente implica ordenar el conjunto de vectores candidatos en función de su distancia de un vector de búsqueda y devolver los primeros K coincidencias más cercanas. Por ejemplo, la siguiente consulta encuentra los 10 productos principales cuyas fotos coinciden más estrechamente con la foto de búsqueda del usuario:

SELECT product_name, product_photo
FROM Product
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;

¿Cómo puedo utilizar AI Vector Search en consultas complejas relacionadas con datos de negocio?

AI Vector Search se puede utilizar en consultas sofisticadas que implican filtros, uniones, agregaciones, agrupar por, etc. Por ejemplo, la siguiente consulta se puede utilizar para encontrar los 10 principales productos coincidentes por foto para productos fabricados en el estado de California.

SELECCIONE Product.name, Product.photo, Manufacturer.name
FROM Product p JOIN Manufacturer m ON (p.mfr_id = m.id)
WHERE Manufacturer.state = 'CA'
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;

¿Qué son los índices vectoriales y en qué se diferencian de los índices de base de datos tradicionales?

Los índices de base de datos tradicionales se utilizan para acelerar las búsquedas basadas en valores coincidentes. Por ejemplo, un índice de árbol B acelera las consultas basadas en valores y las exploraciones de rango basadas en valores. Los índices vectoriales, por otro lado, están diseñados para encontrar las coincidencias más similares de K superiores basadas en la similitud semántica en lugar de exactamente los valores coincidentes. Por ejemplo, un índice vectorial se puede utilizar para encontrar las palabras K superiores que son más similares en el significado de "manzana" en un corpus de palabras existentes. El uso de un índice vectorial da como resultado una búsqueda aproximada que intercambia cierta precisión de búsqueda para un rendimiento hasta 100X mayor, ya que evita examinar cada vector dentro de una columna.

¿Qué lenguajes de programación se pueden utilizar para desarrollar aplicaciones de AI Vector Search?

Además de SQL y PL/SQL, las aplicaciones AI Vector Search se pueden crear en una variedad de lenguajes de programación. AI Vector Search incluye soporte de controlador nativo para vectores en lenguajes populares como Java, Python, JavaScript y C#.

¿Qué papel desempeña AI Vector Search en la IA generativa?

AI Vector Search se puede utilizar en el conocido flujo de trabajo de generación aumentada de recuperación (RAG) para ayudar a mejorar la precisión y la relevancia contextual de las conversaciones en lenguaje natural con el modelo de lenguaje grande (LLM) GenAI. Con la RAG, la pregunta de un usuario se convierte primero en un vector y luego se asigna a los documentos más relevantes dentro de la base de datos a través de AI Vector Search. A continuación, la pregunta del usuario y los documentos pertinentes de apoyo se transmiten al LLM para que pueda generar una respuesta informada basada tanto en su propio conocimiento general como en el conocimiento especializado del almacén de vectores.

¿Con qué LLM opera AI Vector Search?

AI Vector Search se puede utilizar para RAG con LLM de código abierto como Llama2 o Llama3, así como LLM de proveedores como OpenAI y Cohere.

¿AI Vector Search admite LangChain?

AI Vector Search está integrado con LangChain, que es un marco de código abierto muy popular para crear soluciones basadas en RAG.

¿Cómo puedo ampliar la búsqueda vectorial de IA para satisfacer las crecientes necesidades de mi aplicación?

Todos los amplios mecanismos de escalabilidad de Oracle, como la ejecución en paralelo, la partición, RAC, la partición y Exadata, se pueden utilizar para escalar verticalmente AI Vector Search a prácticamente cualquier tamaño de datos y número de usuarios.

Chatbot de Oracle
Disconnected