Problema
- Para la búsqueda semántica/en lenguaje natural y RAG, es necesario hacer embeddings vectoriales
- La mayoría de los modelos de embedding tienen un límite de longitud de entrada
- Ajustar una longitud de entrada adecuada está directamente relacionado con la calidad de la búsqueda
- Debido a ese límite, en la mayoría de los casos se terminan separando y almacenando los párrafos
- Al almacenar el texto original por partes, un solo documento termina dividido en varios documentos
- La mayoría de los documentos no están compuestos solo por un único bloque de texto; también incluyen metadatos y otros campos extensos
- Para guardar los datos divididos, es necesario duplicar el texto separado y la información adicional, o bien almacenarlos en colecciones (o tablas) separadas
- La duplicación provoca ineficiencia por el aumento en el espacio de almacenamiento, y las colecciones separadas incrementan la complejidad del proceso de búsqueda con joins, cálculo de puntajes, conteo de documentos, etc.
- Este es un problema que aparece con frecuencia al usar la mayoría de los almacenes vectoriales
Solución
- Se buscó una forma distinta de no dividir el texto original
- Se modificaron la base de datos y las librerías relacionadas para que el campo donde se almacenan los datos de embedding pueda recibir datos bidimensionales
- Esto permite almacenar datos vectoriales de longitud variable por documento, divididos en una o más partes, sin que el texto original se separe
- Con este método, el texto original y los datos vectoriales separados pueden coexistir sin dividir la colección, lo que simplifica la gestión de datos y las consultas
Aún no hay comentarios.