Desarrollar un chatbot que pueda abordar preguntas reales y dar respuestas apropiadas y precisas es realmente un trabajo difícil. Si bien ha habido avances notables en los grandes modelos lingüísticos, un desafío abierto es combinar estos modelos con bases de conocimiento para ofrecer respuestas confiables y ricas en contexto.
Los problemas clave casi siempre se reducen a la alucinación (el modelo está creando información incorrecta o inexistente) y la comprensión contextual, donde el modelo es incapaz de comprender las relaciones matizadas entre diferentes piezas de información. Otros han intentado construir sistemas sólidos de preguntas y respuestas sin mucho éxito, ya que los modelos a menudo arrojan respuestas deficientes, aunque están conectados a bases de conocimiento integrales.
Si bien RAG puede reducir las alucinaciones al conectar la respuesta generada con datos del mundo real, responder preguntas complejas con precisión es una taza de té diferente. Los usuarios suelen recibir respuestas como: “El tema xx no se trata explícitamente en el texto recuperado.”incluso cuando la base de conocimientos contiene claramente la información, aunque de manera menos obvia. Aquí es donde GraphRAG (Graph Retrieval-Augmented Generation) resulta útil, ya que mejora la capacidad del modelo para proporcionar respuestas precisas y contextualmente ricas aprovechando gráficos de conocimiento estructurados.
RAG: Uniendo recuperación y generación
RAG representó un paso importante en la combinación de lo mejor de los métodos basados en la recuperación y en la generación. Ante una consulta, RAG recupera documentos o pasajes relevantes de un corpus grande y luego genera la respuesta con esta información. Por lo tanto, podemos estar seguros de que el texto generado puede ser informativo y relevante para el contexto, ya que se basa en datos fácticos.
Por ejemplo, en una pregunta como “¿Cual es la capital de Francia?” El sistema RAG buscará en su corpus documentos relacionados con el país de Francia y la mención de su capital, París. Recuperará pasajes relevantes y responderá generando una respuesta como “La capital de Francia es París.” Este estilo encaja muy bien con una consulta sencilla y respuestas claramente documentadas.
Sin embargo, RAG falla en consultas más complejas, específicamente aquellas en las que es necesario comprender las relaciones entre entidades, cuando estas relaciones no están explícitas en los documentos recuperados. El sistema está llegando al fracaso y a la ruina con preguntas como “¿Cómo influyeron las contribuciones científicas del siglo XVII en la física de principios del siglo XX?” (Más sobre este ejemplo más adelante.).
GraphRAG: Aprovechando el poder de los gráficos de conocimiento
GraphRAG, como se describió por primera vez en el blog de investigación de Microsoft aquí, tiene como objetivo sortear estas limitaciones incorporando mecanismos de recuperación basados en gráficos en el modelo. Básicamente, reorganiza el texto no estructurado de la base de conocimiento en un gráfico de conocimiento estructurado, en el que los nodos representan entidades (por ejemplo, personas, lugares, conceptos) y los bordes representan relaciones entre entidades. Este formato estructurado permite que el modelo comprenda y emplee mejor las interrelaciones entre diferentes piezas de información.
Entremos ahora en un poco de detalle para comprender el concepto de GraphRAG, en comparación con RAG, de la manera más sencilla.
Para empezar, tomemos una base de conocimiento hipotética que comprende oraciones de varios textos científicos e históricos de la siguiente manera:
1. “Albert Einstein desarrolló la teoría de la relatividad, que revolucionó la física teórica y la astronomía”.
2. “La teoría de la relatividad se formuló a principios del siglo XX y ha tenido un profundo impacto en nuestra comprensión del espacio y el tiempo”.
3. “Isaac Newton, conocido por sus leyes del movimiento y la gravitación universal, sentó las bases de la mecánica clásica”.
4. “En 1915, Einstein presentó la teoría general de la relatividad, ampliando su trabajo anterior sobre la relatividad especial”.
5. “El trabajo de Newton en el siglo XVII sentó las bases de gran parte de la física moderna”.
En un sistema RAG, estas oraciones se almacenarían como texto no estructurado. y preguntando “¿Cómo influyeron las contribuciones científicas del siglo XVII en la física de principios del siglo XX?”por ejemplo, podría haber puesto al sistema en una posición difícil si la redacción exacta y la calidad de recuperación de los documentos no se vinculaban la influencia del siglo XVII directamente con la física de principios del siglo XX. RAG podría dar respuestas como “El trabajo de Isaac Newton en el siglo XVII sentó las bases de gran parte de la física moderna. Albert Einstein desarrolló la teoría de la relatividad a principios del siglo XX”, ya que el mecanismo pudo recuperar información relevante pero no puede explicar claramente la influencia de la física del siglo XVII en los desarrollos de principios del siglo XX.
Por el contrario, GraphRAG convierte este texto en un gráfico de conocimiento estructurado. Un gráfico de conocimiento representa cómo se relacionan las diferentes cosas entre sí. Utiliza un conjunto de ontologías, que son un conjunto de reglas para ayudar a organizar la información. De esta manera, puede encontrar conexiones ocultas, no sólo las obvias.
Usando el sistema GraphRAG, la base de conocimientos anterior se transformará en nodos y aristas como los siguientes.
Nodes: Albert Einstein, theory of relativity, theoretical physics, astronomy, early 20th century, space, time, Isaac Newton, laws of motion, universal gravitation, classical mechanics, 1915, general theory of relativity, special relativity, 17th century, modern physics.
Edges:
- (Albert Einstein) - [developed] → (theory of relativity)
- (theory of relativity) - [revolutionized] → (theoretical physics)
- (theory of relativity) - [revolutionized] → (astronomy)
- (theory of relativity) - [formulated in] → (early 20th century)
- (theory of relativity) - [impacted] → (understanding of space and time)
- (Isaac Newton) - [known for] → (laws of motion)
- (Isaac Newton) - [known for] → (universal gravitation)
- (Isaac Newton) - [laid the groundwork for] → (classical mechanics)
- (general theory of relativity) - [presented by] → (Albert Einstein)
- (general theory of relativity) - [expanded on] → (special relativity)
- (Newton's work) - [provided foundation for] → (modern physics)
Cuando se le solicita con el pregunta “¿Cómo influyeron las contribuciones científicas del siglo XVII en la física de principios del siglo XX?” El recuperador basado en GraphRAG puede reconocer la progresión desde el trabajo de Newton hasta los avances de Einstein, destacando la influencia de la física del siglo XVII en el desarrollo de principios del siglo XX. Esta recuperación estructurada permite que la respuesta sea contextualmente rica y precisa.: “Las leyes del movimiento y la gravitación universal de Isaac Newton, formuladas en el siglo XVII, sentaron las bases de la mecánica clásica. Estos principios influyeron en el desarrollo de la teoría de la relatividad por parte de Albert Einstein a principios del siglo XX, que amplió nuestra comprensión del espacio y el tiempo”.