Generación y manejo de embeddings en Chroma con Sentence Transformer
Clase 17 de 26 • Curso de Embeddings y Bases de Datos Vectoriales para NLP
Resumen
¿Cómo crear una base de datos en Chroma sin embeddings predefinidos?
Cuando te enfrentas al manejo de datos, es común trabajar con embeddings, que son representaciones matemáticas de tus documentos. Sin embargo, ¿qué sucede si no cuentas con estos embeddings previamente calculados? Chroma, una herramienta poderosa para la gestión de bases de datos vectoriales, te permite procesar documentos directamente y generar estas representaciones automáticamente.
¿Cómo instanciar una nueva base de datos en Chroma?
Para crear una nueva base de datos en Chroma, primero debes instanciar una nueva base con el cliente que hayas generado previamente. En este caso, estamos trabajando con el cliente Persistent
. Así, puedes crear una nueva colección o base de datos. Digamos que la llamamos MoviesDB.noEmbeddings
.
Usaremos la función de embeddings previamente configurada, Sentence Transformer
, para que, al procesar documentos, Chroma pueda generar automáticamente los embeddings al recibir textos.
# Instanciamos una nueva base de datos
DB_noEmbeddings = client.Persistent.create_database('MoviesDB.noEmbeddings', embedding_function=SentenceTransformerEF)
¿Cómo enviar documentos en lugar de embeddings?
Después de crear la base de datos, el paso siguiente es enviar los datos necesarios. Aun cuando no tengas embeddings predefinidos, puedes enviar los documentos que desees convertir en embeddings. El proceso es simple:
- IDs: Los identificadores únicos son esenciales.
- Documentos: Estos son los textos que deseas procesar; por ejemplo, reseñas o descripciones.
- Metadata: Puedes enviarla tal cual la tenías previamente, lo que facilita contextualizar los datos.
# Enviamos los datos a la base de datos
DB_noEmbeddings.write_documents(
ids=df_ids.to_list(),
documents=text_column,
metadatas=predefined_metadata
)
Chroma detecta que no has enviado embeddings e internamente aplica Sentence Transformer
al texto proporcionado, generando así los embeddings automáticamente.
¿Cómo gestionar y examinar los datos en la base de datos?
Una vez que los documentos se han cargado, puedes explorar y administrar el contenido de tu base de datos. Con comandos básicos, es posible seleccionar, eliminar y consultar registros.
- Selección: Para examinar registros, puedes utilizar
Pick
, que te ayudará a verificar los embeddings generados. - Eliminación: Asegúrate de tener identificadores únicos para gestionar adecuadamente los datos.
Por ejemplo, para eliminar un registro en particular:
# Eliminando un registro con un ID específico
DB_noEmbeddings.delete_document(id='unique_id_of_record_to_delete')
Con estas acciones, puedes no solo verificar que los embeddings se generaron correctamente, sino también gestionar tus datos de manera eficaz.
Motivación para seguir explorando
Entender y gestionar bases de datos vectoriales y embeddings es crucial en muchos ámbitos del análisis de datos. Aunque inicialmente desafiante, con herramientas como Chroma, los procesos se hacen más accesibles. Sigue explorando, experimenta con diferentes tipos de datos y funciones de embeddings, y seguro encontrarás nuevas y sorprendentes maneras de optimizar tus proyectos. ¡No pierdas el entusiasmo por aprender algo nuevo cada día!