Saltar al contenido

Puede hacerlo mejor que tener solo una base de datos vectorial

6 de mayo de 2023

En el pasado reciente, el mercado de bases de datos está experimentando una proliferación de bases de datos vectoriales especiales. Las empresas que compran estos sistemas de administración de bases de datos y los conectan a sus arquitecturas de datos pueden tener esperanzas inicialmente sobre su capacidad para consultar la similitud de vectores. Pero la emoción de corta duración finalmente se convierte en arrepentimiento por traer otro componente a su entorno de aplicación.

Los vectores y la búsqueda de vectores son solo un tipo de datos y un enfoque de procesamiento de consultas, no una base para una nueva forma de procesar datos. El uso de una base de datos de vectores especializados (SVDB) conducirá a los problemas habituales que vemos y seguiremos resolviendo una y otra vez. Los clientes ya utilizan normalmente varios sistemas especializados: datos redundantes, movimiento de datos excesivo, falta de acuerdo sobre los valores de los datos entre los componentes distribuidos, gastos de mano de obra adicionales para habilidades especializadas, costos de licencia adicionales, poder de lenguaje de consulta limitado, capacidad de programación y extensibilidad, integración de herramientas limitada, Integridad y disponibilidad de datos deficientes en comparación con un verdadero sistema de administración de bases de datos (DBMS).

En lugar de utilizar una SVDB, creemos que los desarrolladores de aplicaciones que utilizan la búsqueda por similitud de vectores obtendrán un mejor servicio si crean sus aplicaciones en una plataforma de datos moderna y general que cumpla con todos los requisitos de su base de datos, no solo con uno.

Caso de estudio

La historia de una startup de IA generativa: Obtener resultados precisos de un chatbot con tecnología GPT

Esta historia está inspirada en hechos reales.

Érase una vez una startup que creaba bots finamente ajustados para ayudar a los desarrolladores con contenido altamente técnico. Requería un sistema que pudiera realizar las siguientes tareas:

  • Procese y convierta rápidamente datos semiestructurados en vectores
  • Emplee coincidencias de similitud para encontrar documentos indexados localmente que coincidan con las consultas de los usuarios.
  • Mejore los resultados coincidentes con contexto adicional y vuelva a ordenarlos
  • Transmitir el contexto a GPT-4, recibir la respuesta generada y presentarla al usuario
Recomendado:  El coche de Apple es ahora oficialmente un proyecto de inteligencia artificial

Los flujos operativos básicos para esta aplicación se enumeran en el siguiente diagrama. Sin embargo, el factor clave que distingue a las bases de datos vectoriales no es simplemente la capacidad de coincidencia de similitudes, sino también la capacidad de enriquecer los resultados de la coincidencia con información complementaria y, en última instancia, reordenar los resultados y obtener la respuesta más precisa de GPT.

Desafíos con una base de datos de vectores especializados

Inicialmente, la startup usaba una SVDB, pero pronto se dio cuenta de que tenía sus limitaciones. SVDB solo podía proporcionar resultados similares para un texto o pregunta específicos y tenía una cantidad muy pequeña de etiquetas que cada incrustación puede almacenar, mientras que el enfoque de la startup requería iterar a escala y volver a clasificar con frecuencia. Por ejemplo, poder clasificar según el contexto específico de un usuario (como hacer una pregunta sobre una versión particular del software) fue una característica crucial para brindar soporte personalizado a los desarrolladores.

A medida que su arquitectura de datos se volvió más compleja, tuvieron que complementar la SVDB con una base de datos de ElasticSearch. Los comentarios y eventos de los usuarios se almacenaron en PostgreSQL y se incorporaron a ElasticSearch para refinar la clasificación. Esencialmente, SVDB se convirtió en una característica (costosa) de una base de datos.

El problema de depender únicamente de la capacidad de similitud de vectores de SVDB era que solo podía proporcionar una identificación de registro y una puntuación, lo que no era suficiente para ofrecer resultados precisos. Los registros debían combinarse con Elasticsearch para proporcionar una versión más precisa con contexto, que luego podría enviarse a GPT.

Acerca de SingleStoreDB

SingleStoreDB es un DBMS SQL moderno, escalable y de alto rendimiento y un servicio en la nube que admite múltiples modelos de datos, incluidos datos estructurados, datos semiestructurados basados ​​en JSON, series temporales, texto completo, datos espaciales, clave-valor y vectoriales. Nuestro subsistema de base de datos vectorial, disponible por primera vez en 2017 y posteriormente mejorado, permite la búsqueda extremadamente rápida del vecino más cercano para encontrar objetos que son semánticamente similares, fácilmente usando SQL. Además, la llamada función de «filtrado de metadatos» (que los proveedores de SVDB anuncian como una virtud) disponible en SingleStoreDB es mucho más poderosa y general que sus alternativas, simplemente mediante el uso de filtros SQL, uniones y otras capacidades.

Recomendado:  Inteligencia artificial para COVID-19: ¿salvador o saboteador?

La belleza de SingleStoreDB para la gestión de bases de datos vectoriales es que se destaca en las operaciones basadas en vectores y es verdaderamente un sistema moderno de gestión de bases de datos. Tiene todos los beneficios que uno espera de un DBMS, incluidos ANSI SQL, transacciones ACID, alta disponibilidad, recuperación ante desastres, recuperación puntual, programabilidad, extensibilidad y más. Además, es rápido y escalable, y admite análisis y procesamiento de transacciones de alto rendimiento en un único sistema distribuido.

Compatibilidad con SingleStoreDB para vectores

SingleStoreDB admite vectores y búsqueda de similitud de vectores mediante funciones de producto punto (para similitud de coseno) y distancia euclidiana. Nuestros clientes utilizan estas funciones para aplicaciones que incluyen reconocimiento facial, búsqueda visual de fotografías de productos y búsqueda semántica basada en texto. [Aur23]. Con la explosión de la tecnología de IA generativa, estas capacidades forman una base sólida para los chatbots de IA basados ​​en texto, como nuestro propio SQrL.

El motor de base de datos de vectores SingleStore utiliza instrucciones Intel SIMD para implementar coincidencias de similitud de vectores de manera extremadamente eficiente.

Por qué SingleStoreDB es la solución de base de datos vectorial definitiva

Para ofrecer resultados más precisos a un menor costo por pregunta respondida, SingleStore DB requería una arquitectura optimizada que admitiera la búsqueda semántica mientras coincidía con la reclasificación y el refinamiento de los análisis requeridos.

SingleStoreDB ofreció la solución óptima, ya que proporcionó un rendimiento superior para procesar y analizar datos semiestructurados como JSON. SingleStoreDB también puede indexar texto, almacenar y hacer coincidir vectores, volver a clasificar y refinar los resultados de coincidencia en función del contexto adicional.

Recomendado:  Poppy Gustafsson: el magnate de Darktrace en la nueva era de la ciberseguridad | OPI

Por cierto, SingleStoreDB ya puede hacer exacto la búsqueda del vecino más cercano es increíblemente rápida a través de un filtrado de metadatos indexado eficiente, escaneos paralelos distribuidos y una sola instrucción y flujo de datos múltiples (SIMD). También puede realizar una búsqueda ANN de una manera que no requiera buscar en todos los vectores, con un poco de trabajo adicional, creando grupos y examinando solo los vectores en grupos cercanos a un vector de consulta. Además, el cliente puede crear fácilmente la mayoría de las integraciones de socios sobre SingleStoreDB porque son integraciones del lado de la aplicación del cliente que usan servicios de socios y luego simplemente interactúan con el DBMS a través de SQL.

¿Qué puede hacer SingleStoreDB para habilitar sus aplicaciones de bases de datos vectoriales? Pruébelo gratis en la nube o autohospedado hoy y descúbralo.


DATOS DEL AUTOR:

Eric Hanson: Eric Hanson es director de gestión de productos en SingleStore y es responsable de las áreas de características de extensibilidad, almacenamiento y procesamiento de consultas. Se unió al equipo de gestión de productos de SingleStore en 2016.

Cometa Arnaud: Arnaud Comet es Director de Gestión de Producto en SingleStore. Se unió a la gestión de productos de SingleStore en 2022 y tiene más de 10 años de experiencia impulsando el crecimiento de los servicios en la nube.