Base de datos de vectores

Una base de datos de vectores, un almacén de vectores o un motor de búsqueda de vectores es una base de datos que puede almacenar vectores (listas de números de longitud fija) junto con otros elementos de datos. Las bases de datos vectoriales generalmente implementan uno o más algoritmos búsqueda aproximativa del vecino más próximo (ANN), [1][2]​ para que uno pueda buscar en la base de datos con un vector de consulta (query en inglés) y recuperar los vectores de la base de datos que sean más similares o estén más cercanos del vector de consulta.

Base de datos vectoriales
(Almacenes de vectores)

Vectores o embeddings representados en forma de puntos.

Los vectores son representaciones matemáticas de datos en un espacio de dimensiones muy grandes. En este espacio, cada dimensión corresponde a una característica de los datos, y el número de dimensiones oscila entre unos pocos cientos y decenas de miles, según la complejidad de los datos que se representan. La posición de un vector en este espacio representa sus características. Se pueden crear vectores a partir de palabras, frases o documentos completos, así como imágenes, audio y otros tipos de datos. [3]

Estos vectores de características se pueden calcular a partir de datos sin procesar utilizando métodos de aprendizaje automático, como algoritmos de extracción de características, embeddings de palabras [4]​ o redes de aprendizaje profundo . El objetivo es que los elementos de datos semánticamente similares reciban vectores de características cercanos entre sí.

Las bases de datos vectoriales se pueden utilizar para búsqueda de similitudes, búsqueda multimodal, motores de recomendaciones, modelos de lenguaje grandes (siglas en inglés LLM), etc. [5]

Las bases de datos vectoriales también se utilizan a menudo para implementar la recuperación aumentada generativa (siglas en inglés RAG), un método para mejorar las respuestas específicas de dominio de modelos de lenguaje grandes. El componente de recuperación de un RAG puede ser cualquier sistema de búsqueda, pero normalmente se implementa como una base de datos vectorial. Se recopilan documentos de texto que describen el dominio de interés y, para cada documento o sección de documento, se calcula un vector de características (conocido como "embedding"), normalmente utilizando una red de aprendizaje profundo, y se almacena en una base de datos de vectores. Dada una instrucción de usuario (prompt en inglés) , se calcula el vector de características de la instrucción y se consulta la base de datos para recuperar los documentos más relevantes. A continuación, estos se agregan automáticamente a la ventana de contexto del LLM, y éste procede a generar una respuesta basada en la instrucción dada y en su contexto. [6]

Técnicas

editar

Las técnicas más importantes para la búsqueda de similitudes en vectores de dimensiones muy grandes incluyen:

y combinaciones de estas técnicas.[cita requerida]

En evaluaciones comparativas recientes, las implementaciones basadas en el HNSW se encuentran entre las de mayor rendimiento. [7][8]​ Conferencias como International Conference on Similarity Search and Applications, SISAP y la Conference on Neural Information Processing Systems (NeurIPS) organizan competiciones sobre búsqueda de vectores en grandes bases de datos.

Implementaciones

editar
Name License
AllegroGraph[9][10] Proprietary (Managed Service)
Apache Cassandra[11][12] Apache License 2.0
Chroma[13][14] Apache License 2.0[15]
Azure Cosmos DB[16] Proprietary (Managed Service)
Couchbase[17][18] BSL 1.1[19]
Elasticsearch[20] Server Side Public License, Elastic License[21]
HDF5 Query Indexing[22] BSD 3-Clause[23]
Lantern[24] BSL 1.1[25]
LlamaIndex[26] MIT License[27]
Milvus[28][29] Apache License 2.0
MongoDB Atlas[30] Server Side Public License (Managed service)
Neo4j[31][32] GPL v3 (Community Edition)[33]
OpenSearch[34][35][36] Apache License 2.0[37]
Pinecone[38] Proprietary (Managed Service)
Postgres with pgvector[39] PostgreSQL License[40]
Qdrant[41] Apache License 2.0[42]
Redis Stack[43][44] Redis Source Available License[45]
Snowflake[46] Proprietary (Managed Service)
SurrealDB[47] BSL 1.1[48]
Typesense[49] GPL v3 (Community Edition)[50]
Vespa[51] Apache License 2.0[52]
Weaviate[53] BSD 3-Clause[54]

Ver también

editar

Referencias

editar
  1. Roie Schwaber-Cohen. «What is a Vector Database & How Does it Work». Pinecone. Consultado el 18 November 2023. 
  2. «What is a vector database». Elastic. Consultado el 18 November 2023. 
  3. «Vector database». learn.microsoft.com. 26 de diciembre de 2023. Consultado el 11 de enero de 2024. 
  4. Evan Chaki (31 de julio de 2023). «What is a vector database?». Microsoft. «A vector database is a type of database that stores data as high-dimensional vectors, which are mathematical representations of features or attributes.» 
  5. «Vector database». learn.microsoft.com. 26 de diciembre de 2023. Consultado el 11 de enero de 2024. 
  6. Lewis, Patrick; Perez, Ethan; Piktus, Aleksandra; Petroni, Fabio; Karpukhin, Vladimir; Goyal, Naman; Küttler, Heinrich (2020). «Retrieval-augmented generation for knowledge-intensive NLP tasks». Advances in Neural Information Processing Systems 33: 9459-9474. arXiv:2005.11401. 
  7. Aumüller, Martin; Bernhardsson, Erik; Faithfull, Alexander (2017), «ANN-Benchmarks: A Benchmarking Tool for Approximate Nearest Neighbor Algorithms», en Beecks, Christian; Borutta, Felix; Kröger et al., eds., Similarity Search and Applications (Cham: Springer International Publishing) 10609: 34-49, ISBN 978-3-319-68473-4, doi:10.1007/978-3-319-68474-1_3, consultado el 19 de marzo de 2024  .
  8. Aumüller, Martin; Bernhardsson, Erik; Faithfull, Alexander (2017). «ANN-Benchmarks: A Benchmarking Tool for Approximate Nearest Neighbor Algorithms». En Beecks, Christian; Borutta, Felix, eds. Similarity Search and Applications. Lecture Notes in Computer Science (en inglés) 10609. Cham: Springer International Publishing. pp. 34-49. ISBN 978-3-319-68474-1. doi:10.1007/978-3-319-68474-1_3. 
  9. «AllegroGraph 8.0 Incorporates Neuro-Symbolic AI, a Pathway to AGI». TheNewStack (en inglés estadounidense). 29 de diciembre de 2023. Consultado el 6 de junio de 2024. 
  10. «Franz Inc. Introduces AllegroGraph Cloud: A Managed Service for Neuro-Symbolic AI Knowledge Graphs». Datanami (en inglés estadounidense). 18 de enero de 2024. Consultado el 6 de junio de 2024. 
  11. «5 Hard Problems in Vector Search, and How Cassandra Solves Them». TheNewStack (en inglés estadounidense). 22 de septiembre de 2023. Consultado el 22 de septiembre de 2023. 
  12. «Vector Search quickstart». Consultado el 21 de noviembre de 2023. 
  13. Palazzolo, Stephanie. «Vector database Chroma scored $18 million in seed funding at a $75 million valuation. Here's why its technology is key to helping generative AI startups.». Business Insider (en inglés estadounidense). Consultado el 16 de noviembre de 2023. 
  14. MSV, Janakiram (28 de julio de 2023). «Exploring Chroma: The Open Source Vector Database for LLMs». The New Stack (en inglés estadounidense). Consultado el 16 de noviembre de 2023. 
  15. «chroma/LICENSE at main · chroma-core/chroma». GitHub (en inglés). 
  16. «Vector database». learn.microsoft.com. 26 December 2023. Consultado el 10 de enero de 2024. 
  17. «Couchbase aims to boost developer database productivity with Capella IQ AI tool». VentureBeat (en inglés estadounidense). 30 de agosto de 2023. 
  18. «Investor Presentation Third Quarter Fiscal 2024». Couchbase Investor Relations (en inglés estadounidense). 6 de diciembre de 2023. 
  19. Anderson, Scott (26 de marzo de 2021). «Couchbase Adopts BSL License». The Couchbase Blog (en inglés estadounidense). Consultado el 14 de febrero de 2024. 
  20. Kerner, Sean (23 de mayo de 2023). «Elasticsearch Relevance Engine brings new vectors to generative AI». VentureBeat. Consultado el 18 November 2023. 
  21. «elasticsearch/LICENSE.txt at main · elastic/elasticsearch». GitHub (en inglés). 
  22. «HDF5 Query Indexing». GitHub. 27 de septiembre de 2019. Consultado el 3 de mayo de 2024. 
  23. «HDFGroup/COPYING at master · HDFGroup/hdf5». GitHub (en inglés). Consultado el 29 de octubre de 2023. 
  24. «Lantern» (en inglés estadounidense). 5 de abril de 2024. Consultado el 5 de abril de 2024. 
  25. «lantern/LICENSE at main /lanterndata/lantern». GitHub (en inglés). Consultado el 10 de abril de 2024. 
  26. Wiggers, Kyle (6 de junio de 2023). «LlamaIndex adds private data to large language models». TechCrunch (en inglés estadounidense). Consultado el 29 de octubre de 2023. 
  27. «llama_index/LICENSE at main · run-llama/llama_index». GitHub (en inglés). Consultado el 29 de octubre de 2023. 
  28. «Open Source Vector Database – Milvus – LFAI & DATA». Consultado el 29 October 2023. 
  29. Liao, Ingrid Lunden and Rita (24 de agosto de 2022). «Zilliz raises $60M, relocates to SF». TechCrunch (en inglés estadounidense). Consultado el 29 de octubre de 2023. 
  30. «Introducing Atlas Vector Search: Build Intelligent Applications with Semantic Search and AI Over Any Type of Data». MongoDB (en inglés estadounidense). 22 de junio de 2023. 
  31. «Neo4j enhances its graph database with vector search». itbrief (en inglés australiano). 22 de agosto de 2023. 
  32. «Vector search indexes». neo4j (en inglés estadounidense). 
  33. «Neo4j licensing». 
  34. «Using OpenSearch as a Vector Database». OpenSearch.org (en inglés estadounidense). 2 de agosto de 2023. Consultado el 7 de febrero de 2024. 
  35. Pan, James Jie; Wang, Jianguo; Li, Guoliang (21 de octubre de 2023), Survey of Vector Database Management Systems .
  36. «AWS debuts new AI-powered data management and analysis tools». SiliconANGLE (en inglés estadounidense). 26 de julio de 2023. Consultado el 7 de febrero de 2024. 
  37. «OpenSearch license». github. 
  38. «Pinecone leads 'explosion' in vector databases for generative AI». VentureBeat (en inglés estadounidense). 14 de julio de 2023. Consultado el 29 de octubre de 2023. 
  39. «pgvector». GitHub (en inglés estadounidense). Consultado el 27 de noviembre de 2023. 
  40. «pgvector/License». GitHub (en inglés estadounidense). Consultado el 27 de noviembre de 2023. 
  41. Sawers, Paul (19 de abril de 2023). «Qdrant, an open-source vector database startup, wants to help AI developers leverage unstructured data». TechCrunch (en inglés estadounidense). Consultado el 29 de octubre de 2023. 
  42. «qdrant/LICENSE at master · qdrant/qdrant». GitHub (en inglés). Consultado el 29 de octubre de 2023. 
  43. «Using Redis as a Vector Database with OpenAI | OpenAI Cookbook». cookbook.openai.com (en inglés). Consultado el 10 de febrero de 2024. 
  44. «Redis as a vector database quick start guide». Redis (en inglés). Consultado el 31 de enero de 2024. 
  45. «Search and query». Redis (en inglés). Consultado el 10 de febrero de 2024. 
  46. «Vector data type and vector similarity functions — General Availability». Snowflake (en inglés estadounidense). 17 de mayo de 2024. Consultado el 17 de mayo de 2024. 
  47. Wiggers, Kyle (4 de enero de 2023). «SurrealDB raises $6M for its database-as-a-service offering». TechCrunch (en inglés estadounidense). Consultado el 19 de enero de 2024. 
  48. «SurrealDB | License FAQs | The ultimate multi-model database». SurrealDB (en inglés). Consultado el 14 de febrero de 2024. 
  49. Martinez, Miguel (20 de junio de 2024). «Typesense Homepage». Typesense (en inglés estadounidense). Consultado el 20 de junio de 2024. 
  50. «Typesense licensing». 
  51. Riley, Duncan (4 October 2023). «Yahoo spins off AI scaling engine Vespa as an independent company». siliconANGLE. Consultado el 18 November 2023. 
  52. «vespa/LICENSE at master · vespa-engine/vespa». GitHub (en inglés). 
  53. «Weaviate reels in $50M for its AI-optimized vector database». SiliconANGLE (en inglés estadounidense). 21 de abril de 2023. Consultado el 29 de octubre de 2023. 
  54. «weaviate/LICENSE at master · weaviate/weaviate». GitHub (en inglés). Consultado el 29 de octubre de 2023. 

Enlaces externos

editar