Bases de datos vectoriales para sistemas de embeddings

Introducción a las incrustaciones con la OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Limitaciones del enfoque actual

  • Cargar todos los embeddings en memoria (1536 floats ~ 13 kB/embedding)
  • Recalcular embeddings en cada nueva consulta
  • Calcular distancias coseno para cada embedding y ordenar es lento y escala linealmente

Un diagrama que muestra cómo los documentos y la consulta se convierten en embeddings en cada consulta sin solución de almacenamiento.

Introducción a las incrustaciones con la OpenAI API

Bases de datos vectoriales

  • Los documentos embebidos se almacenan y se consultan en la base de datos vectorial

Un diagrama que muestra cómo se usa una base de datos vectorial para almacenar embeddings de documentos y devolver resultados al usuario basados en una consulta embebida.

Introducción a las incrustaciones con la OpenAI API

 

Base de datos NoSQL
  • Estructura más flexible que permite consultas más rápidas

Ejemplos de esquemas de bases de datos NoSQL, incluidos clave:valor, documento y grafo.

 

Base de datos SQL/relacional
  • Datos estructurados en tablas, filas y columnas

Tablas con columnas y filas en una base de datos SQL o relacional.

Introducción a las incrustaciones con la OpenAI API

Componentes a almacenar

 

  • Embeddings
  • Textos fuente
  • Metadatos
    • IDs y referencias
    • Datos extra útiles para filtrar resultados

 

Consejo: ¡No guardes el texto fuente como metadatos!

Un icono de base de datos vectorial.

Introducción a las incrustaciones con la OpenAI API

El panorama de las bases de datos vectoriales

Muchas de las soluciones de bases de datos vectoriales más populares, clasificadas por si son de código cerrado o abierto y si están dedicadas a vectores o no.

1 Crédito de la imagen: Yingjun Wu
Introducción a las incrustaciones con la OpenAI API

¿Qué solución es mejor?

 

  • Gestión de la base de datos:
    • Gestionada → más cara pero reduce la carga de trabajo
    • Autogestionada → más barata pero requiere tiempo y conocimientos
  • ¿Código abierto o comercial?
    • Código abierto → flexible y rentable
    • Comercial → mejor soporte, más funciones avanzadas y cumplimiento

 

  • Modelos de datos: ¿el tipo de datos favorece un tipo concreto de base?
  • Funciones específicas: ¿tu caso de uso depende de funciones como almacenamiento multimodal?

Logotipo de Chroma.

Introducción a las incrustaciones con la OpenAI API

¡Vamos a practicar!

Introducción a las incrustaciones con la OpenAI API

Preparing Video For Download...