Nodos Gaia con conocimientos a largo plazo
La aplicación LLM requiere tanto memoria a largo plazo como a corto plazo. La memoria a largo plazo incluye conocimientos factuales, hechos históricos, relatos de fondo, etc. Para mantener la coherencia interna de los conocimientos, es mejor añadirlos al contexto en forma de capítulos completos en lugar de pequeños fragmentos de texto.
RAG es una técnica importante para inyectar conocimiento contextual en una aplicación LLM. Mejora la precisión y reduce la alucinación de los LLM. Una aplicación RAG eficaz combina la memoria a corto plazo (chunks) en tiempo real y específica del usuario con la memoria a largo plazo estable (capítulos) en el contexto del prompt.
Dado que la memoria a largo plazo de la aplicación es estable (incluso inmutable), la empaquetamos en una base de datos vectorial estrechamente acoplada al LLM. La aplicación cliente ensambla la memoria a corto plazo en el prompt y se complementa con la memoria a largo plazo en el servidor LLM. Llamamos a este enfoque "RAG del lado del servidor".
La larga duración de los contextos que permiten los LLM modernos es especialmente adecuada para los conocimientos a largo plazo que se representan mejor mediante capítulos de texto.
Un nodo Gaia es un servicio LLM compatible con OpenAI que se basa en el conocimiento a largo plazo en el lado del servidor. La aplicación cliente puede simplemente chatear con él o proporcionar memoria en tiempo real / a corto plazo, ya que el LLM ya conoce el dominio o el fondo.
Por ejemplo, si preguntas a ChatGPT qué es la capa 2, la respuesta es que la capa 2 es un concepto de la red informática. Sin embargo, si preguntas a una persona de blockchain, te responde que la Capa 2 es una forma de escalar la red original de Ethereum. Esa es la diferencia entre un LLM genérico y los LLM complementados con conocimientos.
Cubriremos la preparación del conocimiento externo y cómo un LLM complementado con conocimiento completa una conversación. Si ha aprendido cómo funciona una aplicación GAR, vaya a Construir una aplicación GAR con Gaia para empezar a construir una.
- Cree incrustaciones para sus propios conocimientos como memoria a largo plazo.
- Ciclo de vida de una consulta de usuario en un LLM complementado con conocimientos.
Para esta solución, utilizaremos
- un modelo de chat como Llama-3-8B para generar respuestas al usuario.
- un modelo de incrustación de texto como nomic-embed-text para crear y recuperar incrustaciones.
- una base de datos vectorial como Qdrant para almacenar incrustaciones.
Flujo de trabajo para crear incrustaciones de conocimientos
El primer paso consiste en crear incrustaciones para nuestra base de conocimientos y almacenarlas en una base de datos vectorial.
En primer lugar, dividimos el texto largo en secciones (es decir, trozos). Todos los LLM tienen una longitud máxima de contexto. El modelo no puede leer el contexto si el texto es demasiado largo. La regla más utilizada para un nodo Gaia es juntar el contenido en un capítulo. Recuerde, inserte una línea en blanco entre dos chunks. También puede utilizar otros algoritmos para trocear su texto.
Una vez fragmentado el documento, podemos convertir estos fragmentos en incrustaciones aprovechando el modelo de incrustación. El modelo de incrustación está entrenado para crear incrustaciones basadas en el texto y buscar incrustaciones similares. Utilizaremos esta última función en el proceso de consulta del usuario.
Además, necesitaremos una base de datos vectorial para almacenar las incrustaciones y poder recuperarlas rápidamente en cualquier momento.
En un nodo de Gaia, obtendremos una instantánea de la base de datos con los embeddings para utilizarlos finalmente. Comprueba cómo crear tus incrustaciones usando la herramienta web de Gaia, desde un archivo de texto plano y desde un archivo markdown.
Ciclo de vida de una consulta de usuario en un LLM complementado con conocimientos
A continuación, vamos a aprender el ciclo de vida de una consulta de usuario en un LLM complementado con conocimiento. Tomaremos como ejemplo un Nodo Gaia con conocimiento Gaia.
Formule una pregunta
cuando envíes una pregunta en lenguaje humano al nodo, el modelo de incrustación convertirá primero tu pregunta en incrustación.
Recuperar incrustaciones similares
A continuación, el modelo de incrustación buscará todas las incrustaciones almacenadas en la base de datos vectorial Qdrant y recuperará las incrustaciones que sean similares a las incrustaciones de la pregunta.
Respuesta a la consulta del usuario
El nodo de incrustación devolverá las incrustaciones recuperadas al modelo de chat. El modelo de chat utilizará las incrustaciones recuperadas más tus preguntas de entrada como contexto para responder finalmente a tus consultas.