- Índices:
- Son la forma de estructurar documentos para que los LLM puedan interactuar con ellos de la mejor forma
- Con lo cual permite optimizar eficiencia y velocidad de las operaciones búsqueda y recuperación de información
- Son un análogo a los índices de libros que permiten localizar rápidamente un contenido específico. De manera similar los indices en langchain permiten a los LLM encontrar rápidamente información relevante sin tener que procesar todos los documentos disponibles.
- Recuperación de información y los índices:
- El uso más común de índices es la recuperación de información en el procesamiento de datos
- Toma la consulta del usuario y devuelve los documentos más relevantes, considerando la siguiente distinción:
- Un índice puede utilizarse para aplicaciones diferentes a la recuperación
- La recuperación puede utilizar otras lógicas además de un índice para encontrar los documentos más relevantes
- La indexación y recuperación de datos no estructurados es la referencia común cuanto se habla de índices y recuperación de información.
Retriver en LangChain
- Es un componente fundamental, su responsabilidad es localizar y devolver documentos relevantes según una consulta específica (como un bibliotecario que sabe exactamente la ubicación de los libros necesario)
- Retriver implementa el método `get_relevant_documents`, la estrategia más eficiente planteado por LangChain se basa en el concepto de Vectorstore, centrándonos en Retriver tipo vectorstore
Vectorstore y los Vectorestore Retriver
- Un vectorstore :
- Es un tipo de base de datos especialmente diseñada para gestionar y manipular vectores de alta dimensionalidad
- Comúnmente utilizado para presentar datos en apredizaje automático y otras aplicaciones de IA
- Si el retriver es el bibliotecario, el vectorstore sería el sistema de clasificación y organización de la biblioteca
- LangChain utiliza como sistema Vectorstore predeterminada a Chroma, el cual es utilizado para indexar y buscar embeddings (vectores que representan documentos en el espacio multidimencional)
- Los embedding son una forma de condensar y representar la información de un documento para que pueda ser fácilmente comparada con otros
- El Retriver tipo Vectorstore primero transforma la consulta en un vector (por medio del embedding), luego busca en la base de datos Vectorstore los documentos cuyos vectores son más cercanos (en términos de distancia coseno u otras métricas) a la consulta vectorizada
- Un LLM puede recordar información de 2 maneras:
- Los datos con los que se entrenó, lo cual es limitado
- Podemos hacer que un LLM recuerde información a partir del contenido que le ingresemos al prompt.
- Para ingresar información al LLM por medio del prompt:
-
La clave está en cómo ingresarle al información al modelo para que este genere la mejor respuesta a las preguntas del usuario o de la usuaria
-
Los índices permiten abordar este tema:
- Permitirán encontrar la información clave que necesitamos.
- Permite cargar la información al LLM desde cualquier tipo de fuente
-
Luego de la carga debemos pasar por todo un proceso:
- Document loaders → cargar información
- Text splitters → embedding que conviertan de texto a número
- Vectorstore → permite crear el índice
Los queries también ingresan a la vectorstore para buscar el fragmento de texto que tiene la mayor probabilidad de responder adecuadamente dicha query. Dichos fragmentos son pasados al modelo como insumo para que de la respuesta la usuario
-
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?