Artigos

Que son as bases de datos vectoriais, como funcionan e mercado potencial

Unha base de datos vectorial é un tipo de base de datos que almacena datos como vectores de gran dimensión, que son representacións matemáticas de características ou atributos. 

Estes vectores adoitan xerarse aplicando algún tipo de función de incrustación a datos brutos, como texto, imaxes, audio, vídeo e outros.

As bases de datos vectoriais poden ser defidefinido como unha ferramenta que indexa e almacena incrustacións de vectores para unha rápida recuperación e busca de semellanzas, con funcións como o filtrado de metadatos e a escala horizontal.

Tempo estimado de lectura: 9 minutos

Crecente interese dos investidores

Nas últimas semanas, houbo un aumento do interese dos investidores polas bases de datos vectoriais. Desde principios de 2023 observamos que:

Vexamos con máis detalle que son as bases de datos vectoriais.

Vectores como representación de datos

As bases de datos vectoriais dependen en gran medida da incrustación de vectores, un tipo de representación de datos que contén a información semántica fundamental para que a IA adquira comprensión e manteña a memoria a longo prazo para aproveitar cando executa actividades complexas. 

Incrustacións de vectores

As insercións de vectores son como un mapa, pero en lugar de mostrarnos onde están as cousas no mundo, móstranse onde están as cousas en algo chamado espazo vectorial. O espazo vectorial é unha especie de gran parque infantil onde todo ten o seu lugar para xogar. Imaxina que tes un grupo de animais: un gato, un can, un paxaro e un peixe. Podemos crear un vector incrustado para cada imaxe dándolle unha posición especial no parque infantil. O gato pode estar nun recuncho, o can no outro lado. O paxaro podería estar no ceo e os peixes na lagoa. Este lugar é un espazo multidimensional. Cada dimensión correspóndese con diferentes aspectos deles, por exemplo, os peixes teñen aletas, os paxaros teñen ás, os gatos e os cans teñen patas. Outro aspecto deles pode ser que os peixes pertencen á auga, as aves principalmente ao ceo e os gatos e cans ao chan. Unha vez que dispoñemos destes vectores, podemos utilizar técnicas matemáticas para agrupalos en función da súa semellanza. En base á información que temos,

Entón, as incrustacións vectoriais son como un mapa que nos axuda a atopar semellanzas entre as cousas do espazo vectorial. Do mesmo xeito que un mapa axúdanos a navegar polo mundo, as insercións de vectores axudan a navegar polo parque infantil de vectores.

A idea clave é que as insercións que son semanticamente similares entre si teñen unha distancia menor entre elas. Para saber o parecido que son, podemos utilizar funcións de distancia vectorial como a distancia euclidiana, a distancia coseno, etc.

Bases de datos vectoriais vs bibliotecas vectoriais

As bibliotecas vectoriais almacenar incrustacións de vectores en índices na memoria, para realizar buscas de semellanza. As bibliotecas vectoriais teñen as seguintes características/limitacións:

  1. Almacenar só vectores : As bibliotecas vectoriais só almacenan incrustacións de vectores e non os obxectos asociados a partir dos que se xeraron. Isto significa que cando consultamos, unha biblioteca de vectores responderá cos vectores e ID de obxectos relevantes. Isto é limitante xa que a información real almacénase no obxecto e non no id. Para resolver este problema, debemos almacenar os obxectos nun almacenamento secundario. Despois podemos usar os ID devoltos pola consulta e relacionalos con obxectos para comprender os resultados.
  2. Os datos do índice son inmutables : Os índices producidos polas bibliotecas vectoriais son inmutables. Isto significa que unha vez que importamos os nosos datos e creamos o índice, non podemos facer ningún cambio (sen insercións, eliminacións ou cambios novos). Para facer cambios no noso índice, teremos que reconstruílo desde cero
  3. Consulta mentres restrinxe a importación : a maioría das bibliotecas vectoriais non se poden consultar mentres se importan datos. Necesitamos importar todos os nosos obxectos de datos primeiro. Polo tanto, o índice créase despois de importar os obxectos. Isto pode ser un problema para aplicacións que requiren importar millóns ou mesmo miles de millóns de obxectos.

Hai moitas bibliotecas de busca vectorial dispoñibles: FAISS de Facebook, molesta por Spotify e ScanNN por Google. FAISS usa o método de agrupación, Annoy usa árbores e ScanNN usa compresión vectorial. Hai unha compensación de rendemento para cada un, que podemos escoller en función da nosa aplicación e das métricas de rendemento.

CRUD

A principal característica que distingue as bases de datos vectoriais das bibliotecas de vectores é a capacidade de arquivar, actualizar e eliminar datos. As bases de datos vectoriais teñen soporte CRUD completo (crear, ler, actualizar e eliminar) que resolve as limitacións dunha biblioteca vectorial.

  1. Arquivo vectores e obxectos : As bases de datos poden almacenar tanto obxectos de datos como vectores. Dado que ambos están almacenados, podemos combinar a busca vectorial con filtros estruturados. Os filtros permítennos asegurarnos de que os veciños máis próximos coinciden co filtro de metadatos.
  2. Mutabilidade : como bases de datos vectoriais totalmente compatibles crudo, podemos engadir, eliminar ou actualizar facilmente as entradas do noso índice despois de que se crease. Isto é especialmente útil cando se traballa con datos en constante cambio.
  3. Busca en tempo real : A diferenza das bibliotecas vectoriais, as bases de datos permítennos consultar e modificar os nosos datos durante o proceso de importación. Mentres cargamos millóns de obxectos, os datos importados seguen sendo totalmente accesibles e operativos, polo que non tes que esperar a que se complete a importación para comezar a traballar no que xa hai.

En resumo, unha base de datos de vectores proporciona unha solución superior para manexar as incrustacións de vectores abordando as limitacións dos índices vectoriais autónomos, como se comentaba nos puntos anteriores.

Pero que fai que as bases de datos vectoriais sexan superiores ás bases de datos tradicionais?

Bases de datos vectoriais vs bases de datos tradicionais

As bases de datos tradicionais están deseñadas para almacenar e recuperar datos estruturados mediante modelos relacionais, o que significa que están optimizadas para consultas baseadas en columnas e filas de datos. Aínda que é posible almacenar incrustacións de vectores en bases de datos tradicionais, estas bases de datos non están optimizadas para operacións vectoriais e non poden realizar buscas de semellanza ou outras operacións complexas en grandes conxuntos de datos de forma eficiente.

Isto débese a que as bases de datos tradicionais usan técnicas de indexación baseadas en tipos de datos sinxelos, como cadeas ou números. Estas técnicas de indexación non son adecuadas para datos vectoriais, que teñen unha gran dimensionalidade e requiren técnicas de indexación especializadas como índices invertidos ou árbores espaciais.

Ademais, as bases de datos tradicionais non están deseñadas para xestionar as grandes cantidades de datos non estruturados ou semiestruturados que adoitan asociarse coas insercións vectoriais. Por exemplo, un ficheiro de imaxe ou audio pode conter millóns de puntos de datos, que as bases de datos tradicionais non poden manexar de forma eficiente.

As bases de datos vectoriais, por outra banda, están deseñadas especificamente para almacenar e recuperar datos vectoriais e están optimizadas para procuras de semellanza e outras operacións complexas en conxuntos de datos grandes. Usan técnicas e algoritmos de indexación especializados deseñados para traballar con datos de gran dimensión, o que os fai moito máis eficientes que as bases de datos tradicionais para almacenar e recuperar incrustacións de vectores.

Agora que liches tanto sobre bases de datos vectoriais, podes estarte preguntando como funcionan? Botámoslle un ollo.

Como funciona unha base de datos vectorial?

Todos sabemos como funcionan as bases de datos relacionais: almacenan cadeas, números e outros tipos de datos escalares en filas e columnas. Por outra banda, unha base de datos vectorial funciona con vectores, polo que a forma en que se optimiza e consulta é moi diferente.

Nas bases de datos tradicionais, normalmente consultamos as filas da base de datos onde o valor adoita coincidir exactamente coa nosa consulta. Nas bases de datos vectoriais, aplicamos unha métrica de semellanza para atopar un vector que sexa máis parecido á nosa consulta.

Unha base de datos vectorial usa unha combinación de varios algoritmos que participan todos na busca do veciño máis próximo (ANN). Estes algoritmos optimizan a busca mediante hash, cuantización ou busca baseada en gráficos.

Estes algoritmos están ensamblados nunha canalización que proporciona unha recuperación rápida e precisa dos veciños dun vector consultado. Dado que a base de datos vectorial ofrece resultados aproximados, as principais compensacións que consideramos son entre precisión e velocidade. Canto máis preciso sexa o resultado, máis lenta será a consulta. Non obstante, un bo sistema pode proporcionar unha busca ultrarrápida cunha precisión case perfecta.

  • Indexación : A base de datos vectoriales indexa os vectores mediante un algoritmo como PQ, LSH ou HNSW. Este paso asocia os vectores cunha estrutura de datos que permitirá unha busca máis rápida.
  • Pregunta : a base de datos vectorial compara o vector de consulta indexado con vectores indexados no conxunto de datos para atopar os veciños máis próximos (aplicando unha métrica de semellanza utilizada por ese índice)
  • Post-procesamento : Nalgúns casos, a base de datos vectorial obtén os veciños máis próximos finais do conxunto de datos e os procesa posteriormente para devolver os resultados finais. Este paso pode incluír a reclasificación dos veciños máis próximos mediante unha medida de semellanza diferente.

beneficios

As bases de datos vectoriais son unha poderosa ferramenta para procuras de semellanzas e outras operacións complexas en grandes conxuntos de datos, que non se poden realizar de forma eficaz utilizando bases de datos tradicionais. Para construír unha base de datos vectorial funcional, as insercións son esenciais, xa que captan o significado semántico dos datos e permiten buscas de semellanzas precisas. A diferenza das bibliotecas vectoriais, as bases de datos vectoriais están deseñadas para adaptarse ao noso caso de uso, polo que son ideais para aplicacións nas que o rendemento e a escalabilidade son críticos. Co aumento da aprendizaxe automática e da intelixencia artificial, as bases de datos vectoriais son cada vez máis importantes para unha ampla gama de aplicacións, incluíndo sistemas de recomendación, busca de imaxes, semellanza semántica e a lista continúa. A medida que o campo continúa evolucionando, podemos esperar ver aplicacións aínda máis innovadoras de bases de datos vectoriais no futuro.

Ercole Palmeri

Boletín de innovación
Non te perdas as novidades máis importantes sobre innovación. Rexístrese para recibilos por correo electrónico.

Artigos recentes

Editores e OpenAI asinan acordos para regular o fluxo de información procesada pola Intelixencia Artificial

O pasado luns, o Financial Times anunciou un acordo con OpenAI. FT licencia o seu xornalismo de clase mundial...

Abril 30 2024

Pagos en liña: aquí tes como os servizos de streaming che fan pagar para sempre

Millóns de persoas pagan por servizos de streaming, pagando taxas de subscrición mensuais. É unha opinión común que vostede...

Abril 29 2024

Veeam ofrece o soporte máis completo para ransomware, desde a protección ata a resposta e a recuperación

Coveware by Veeam continuará ofrecendo servizos de resposta a incidentes de extorsión cibernética. Coveware ofrecerá capacidades forenses e de remediación...

Abril 23 2024

Revolución verde e dixital: como o mantemento preditivo está a transformar a industria do petróleo e do gas

O mantemento preditivo está a revolucionar o sector do petróleo e do gas, cun enfoque innovador e proactivo para a xestión das plantas...

Abril 22 2024