Lleva fácilmente la búsqueda por similitud impulsada por IA a tus datos empresariales sin necesidad de gestionar e integrar múltiples bases de datos ni comprometer la funcionalidad, seguridad y consistencia. AI Vector Search permite buscar datos estructurados y no estructurados por semántica o significado, así como por valores, habilitando aplicaciones de búsqueda impulsadas por IA altamente sofisticadas. Las capacidades nativas de AI Vector Search también pueden ayudar a los modelos de lenguaje de gran tamaño (LLM) a proporcionar resultados más precisos y contextualmente relevantes para casos de uso empresarial mediante retrieval-augmented generation (RAG) sobre los datos de tu negocio.
¿Qué es un vector?
Un vector es una representación matemática de texto, imágenes, audio o video que codifica las características y el significado semántico de los datos, en lugar de representar directamente su contenido, como las palabras o los píxeles que los componen. Un vector está formado por una lista de valores numéricos, conocidos como dimensiones, y se pueden utilizar para operaciones de inteligencia artificial (IA).
¿Cómo se crean los vectores?
Los vectores se generan a partir de distintos tipos de datos de entrada (texto, imágenes, audio, video y otros datos) utilizando modelos de aprendizaje profundo denominados modelos de embeddings. Puedes crear vectores fuera de la base de datos mediante tus propios modelos o servicio de incrustación, o bien puedes crearlos en la base de datos mediante modelos de incrustación importados mediante la función SQL VECTOR_EMBEDDING().
¿Qué formatos de dimensiones se admiten para los vectores?
Oracle AI Vector Search admite los formatos BINARY, INT8, FLOAT32 y FLOAT64. ¿Cuántas dimensiones vectoriales son compatibles? Oracle AI Vector Search admite vectores hasta de 65 535 dimensiones.
¿Qué tamaño tienen los vectores?
El tamaño de un vector es el resultado de multiplicar el número de dimensiones por 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 kilobytes, y un vector con 1024 dimensiones y el formato FLOAT32 (4 bytes) tiene un tamaño de 4 kilobytes.
¿AI Vector Search admite vectores dispersos?
Oracle AI Vector Search admite vectores dispersos, que suelen tener un gran número de dimensiones, aunque solo unas pocas contienen valores distintos de cero. Para un documento determinado, los valores de dimensión distintos de cero del vector corresponden a las palabras clave (y sus variaciones) que aparecen en dicho documento.
¿Qué modelos de embeddings son compatibles con AI Vector Search?
AI Vector Search es compatible con cualquier modelo de embeddings válido que genere vectores en uno de los formatos de dimensiones admitidos y con un máximo de 65 535 dimensiones.
¿Qué modelos de embedding debería considerar usar y dónde puedo obtenerlos?
La elección del modelo de embedding depende de varios factores, como la naturaleza de tus datos, las métricas de rendimiento que priorices y el costo que estés dispuesto(a) a asumir. Los modelos de embedding 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 generar incrustaciones en la base de datos con AI Vector Search. Una fuente popular para encontrar los mejores modelos de embedding de texto es MTEB Leaderboard alojado en Hugging Face. También puedes acudir a proveedores de modelos establecidos, como OpenAI y Cohere.
¿AI Vector Search es compatible con modelos de embeddings de imágenes?
AI Vector Search admite vectores generados por cualquier modelo de embeddings, ya sea para texto, imágenes, audio, video u otros tipos de datos. Oracle AI Database también incluye modelos de incrustación precompilados en ONNX para realizar operaciones de distancia basadas en imágenes con AI Vector Search.
¿Qué operaciones pueden realizarse con los vectores?
Los vectores admiten diversas operaciones matemáticas. La operación más crítica es la función SQL VECTOR_DISTANCE(), que encuentra la distancia matemática entre dos vectores en función de la fórmula de distancia seleccionada. Hay muchas fórmulas de distancia soportadas por Oracle AI Vector Search, entre las que se incluyen euclidiana, euclidiana al cuadrado, similitud de coseno, producto punto, Manhattan, Jaccard y Hamming. La elección de la función de distancia suele estar controlada por el modelo de embedding utilizado para generar los vectores. Sin embargo, la métrica de distancia por defecto en Oracle AI Database 26ai es la similitud coseno.
¿Cómo se utilizan los vectores en la búsqueda por similitud?
Todos los vectores comparten una propiedad fundamental: cuanto más parecidas son dos entidades, menor es la distancia matemática que las separa. 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 integra AI Vector Search con SQL?
AI Vector Search puede integrarse fácilmente en las aplicaciones mediante extensiones de SQL simples e intuitivas. Dado que la distancia vectorial es una medida de similitud, la búsqueda vectorial de IA 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 con fotografías más similares a la imagen 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 con datos empresariales?
AI Vector Search puede integrarse en consultas avanzadas que incorporen filtros, uniones, agregaciones, cláusulas GROUP BY y otros elementos de SQL. Por ejemplo, la siguiente consulta se puede utilizar para encontrar los 10 principales productos coincidentes fabricados en California según una foto cargada por un usuario:
SELECT p.name, p.photo, m.name
FROM product p
JOIN manufacturer m ON (p.mfr_id = m.id)
WHERE m.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 tradicionales de las bases de datos?
Los índices tradicionales de las bases de datos se utilizan para acelerar las búsquedas basadas en valores coincidentes. Por ejemplo, un índice de árbol B acelera las consultas y las exploraciones de rango basadas en valores. Los índices vectoriales, por otro lado, están diseñados para encontrar las mejores coincidencias más similares de K basadas en la similitud semántica en lugar de coincidir exactamente con los valores. Por ejemplo, un índice vectorial se puede utilizar para encontrar las palabras K que más se asemejan al 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 entrada de vector de una columna.
¿Qué son los índices vectoriales de grafos de vecinos en memoria?
Son índices basados en grafos que se mantienen íntegramente en la memoria. Los vértices de la gráfica representan vectores, y los bordes entre los vértices representan la similitud entre los vectores. Oracle AI Vector Search soporta índices vectoriales de gráficos vecinos en memoria del tipo Hierarchical Navigable Small World (HNSW). Los índices HNSW se estructuran utilizando principios de redes mundiales pequeñas y organización jerárquica en capas, lo que los hace extremadamente rápidos y precisos para la búsqueda de similitudes.
¿Qué son los índices vectoriales particionados por vecinos?
Oracle AI Vector Search es compatible con índices vectoriales particionados por vecinos de tipo Inverted File Flat (archivo invertido de estructura plana). Los índices de vectores particionados adyacentes son índices de vectores basados en disco en los que los vectores se agrupan en particiones de tabla en función de la similitud. Son un índice de escalabilidad horizontal eficiente con un soporte transaccional rápido y fluido, lo que te permite equilibrar la búsqueda de alta calidad con una velocidad razonable. Están diseñados para adaptarse a tamaños de datos ilimitados, debido al hecho de que no dependen de la memoria.
¿Qué son los índices vectoriales híbridos y en qué se diferencian de los índices tradicionales de las bases de datos?
Los índices vectoriales híbridos son un nuevo tipo de índice que permite a los usuarios indexar y consultar documentos de forma sencilla mediante la combinación de la búsqueda de texto completo y la búsqueda semántica vectorial, lo que permite obtener resultados de búsqueda de mayor calidad. Soportan una API de consulta unificada que permite a los usuarios ejecutar consultas textuales, de similitud vectorial o híbridas que aprovechan ambos enfoques.
¿Qué lenguajes de programación pueden utilizarse para desarrollar aplicaciones con AI Vector Search?
Además de SQL y PL/SQL, las aplicaciones con AI Vector Search pueden desarrollarse en diversos 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 suele formar parte de un flujo de trabajo de generación aumentada por recuperación (RAG). Proporciona las entradas adicionales necesarias para ajustar la respuesta de un modelo de lenguaje grande (LLM) GenAI. En combinación 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 funciona AI Vector Search?
AI Vector Search puede utilizarse para RAG con cualquier LLM, como modelos de código abierto, por ejemplo, Llama3 y Mistral, así como modelos propietarios de proveedores como OpenAI y Cohere. Además, las API PL/SQL especializadas están disponibles para garantizar una integración perfecta entre AI Vector Search y los LLM para RAG.
¿AI Vector Search es compatible con frameworks y cadenas de integración de IA?
AI Vector Search se integra con LangChain y LlamaIndex. Estos marcos pueden ayudar a integrar datos privados y públicos para aplicaciones de modelos de lenguaje de gran tamaño.
¿Cuáles son los beneficios de la generación aumentada por recuperación (RAG)?
Desempeña un papel clave en la IA generativa (GenAI), ya que aporta importantes beneficios a las aplicaciones de dicha tecnología. Las siguientes son solo tres razones convincentes por las que resulta primordial integrar RAG en la configuración de GenAI:
¿Cómo puedo escalar AI Vector Search para responder al crecimiento de mi aplicación?
Las amplias capacidades de escalabilidad de Oracle, como Parallel Execution, Partitioning, Real Application Clusters (Oracle RAC), Sharding y Exadata, permiten escalar AI Vector Search para manejar prácticamente cualquier tamaño de datos y cantidad de usuarios.
¿Qué beneficios ofrece ejecutar AI Vector Search en Oracle Exadata?
Las amplias capacidades de escalabilidad de Oracle, como Parallel Execution, Partitioning, Oracle Real Application Clusters (Oracle RAC), Sharding y Exadata, permiten escalar AI Vector Search para manejar prácticamente cualquier tamaño de datos y cantidad de usuarios. Oracle Exadata también incluye AI Smart Scan, que descarga las operaciones de consulta de AI Vector Search en Exadata Storage Servers para un rendimiento de consulta sin precedentes.
¿Cómo garantiza Oracle la seguridad de los datos de los vectores?
Oracle AI Vector Search se integra de forma nativa con las avanzadas capacidades de seguridad de bases de datos de Oracle para reducir los riesgos y simplificar el cumplimiento de las normativas. Aprovechando herramientas robustas, como cifrado, enmascaramiento de datos, controles de acceso para usuarios privilegiados, monitoreo de actividad y auditoría, las organizaciones pueden proteger sus datos mientras aprovechan al máximo las capacidades avanzadas de búsqueda con IA. Las funciones en la base de datos, como Database Vault y Virtual Private Database, ayudan a proteger los datos vectoriales y a garantizar que solo los usuarios con los privilegios adecuados puedan acceder a ellos.
Esto significa que Oracle AI Vector Search puede reducir significativamente la huella de la infraestructura vectorial de una empresa. Una única instancia de Oracle AI Database puede abordar las necesidades de varios usuarios diferentes con diferentes permisos de acceso y autorización sin necesidad de duplicar datos ni incurrir en gestiones excesivas, como suele ocurrir con otras bases de datos vectoriales.
¿Cómo proporciona Oracle capacidades de alta disponibilidad y recuperación ante desastres para los vectores?
En Oracle AI Database, los vectores son tipos de datos nativos de primera clase de la base de datos. Esto significa que los vectores heredan implícitamente todas las funciones y capacidades innovadoras que convierten a Oracle en la base de datos empresarial líder en el mundo. La alta disponibilidad (HA) se proporciona al ejecutar búsquedas de similitud en Oracle RAC u Oracle Globally Distributed Database (fragmentación). Data Guard, Active Data Guard y Oracle GoldenGate pueden proporcionar automáticamente recuperación ante desastres.