Estrategia
El Regreso de los Grafos de Conocimiento
· 5 min read · Fabián Almenara
Grafos de conocimiento en la era de la Inteligencia Artificial. ¿Por qué han resurgido, por qué son tan necesarios cuando aplicamos RAG?
Mirando al pasado de los Knowledge Graphs
Al final del post algunos recursos. Pero por si quieres leer…
Cuando estudiaba NPL en la universidad, ya lo he dicho varias veces, pensé que era una tarea imposible el poder comunicarse con las máquinas con el lenguaje natural. Reglas infinitas para encontrar entidades y relaciones entre las entidades.
Creo que junto con Criptografía, NPL fue la asignatura más compleja en la que trabajé.
Descomponer información desestructurada en estructurada a través de reglas estadísticas era un quebradero de cabeza y además funcionaba muy bien con documentación Legal, textos formales, etc.
Funcionaba por que sabías que un artículo legal empezaba con Art.
Pero el humano, tu y yo cuando escribimos no usamos todos los formalismos.
Hoy escribes de una forma y mañana escribes de otra. Somos imprecisos y nos comunicamos de diferente forma dependiendo de muchos factores. Yo mismo estoy reescribiendo estas líneas porque no me gustan como las escribí hace un par de meses.
En fin… tarea imposible.
Ese NPL, se basaba en encontrar lo importante. Intentaba estructurar la frase basándose en la gramática. No era un proceso de ir adquiriendo contesto (como hace la IA hoy) sino un encaje de piezas donde mirábamos cadenas de palabras de 2 en 2, después de 3 en 3 para determinar la siguiente palabra.
Antes de seguir, perdóneme los puristas y entendidos. Hablo de memoria.
Siguiendo…. si me baso en las reglas gramaticales ¿Qué pasa cuando ahora me voy a otro idioma? Pues otro berenjenal distinto.
Por eso crear grafos de conocimiento era tan complicado. O al menos uno de los motivos era este. Si ya era dificil encontrar estructuras gramaticales consistentes a lo largo de un texto largo, pues mantener eso en el tiempo era mucho más complejo porque, al menos en la poca experiencia que yo tenía, era sumamente complicado mantener la consistencia y que el algoritmo encontrara las relaciones semánticas de los datos de manera consistente en el tiempo.
La gran diferencia de hoy: El mecanismo de atención
Pero amigos míos, la película ha cambiado. Llegó el Deep Learning, la arquitectura Transformer y los modelos LLM como GPT. De repente, ese famoso mecanismo de atención ha hecho que lo que antes requería un ejército de ingenieros, ahora lo haga un modelo entendiendo el contexto mejor que muchos humanos.
Es cierto que seguimos jugando con probabilidad pero ahora no encajamos piezas del puzle como antiguamente sino que creamos relaciones semánticas entre las palabras.
Los modelos han aprendido tras leerse una enciclopedia que si hablo de de América y aparece la palabra Colon sin tilde, no se refiere al colon del cuerpo humano sino a Colón.
La IA entiende, de manera estadística, la intención mientras que antes se trabajaba la estructura.
Cuando creamos Grafos de Conocimiento, tradicionalmente dábamos dos pasos:
NER: Extraer y clasificar entidades a partir de un texto.
RE: Identificar la relación entre dichas entidades dentro del contexto.
Antes, encontrar entidades y relaciones en un solo párrafo era tedioso y fallaba. Hoy, un LLM procesa ventanas de contexto de libros enteros, y si le tiras un PDF complejo, extrae entidades y relaciones en cuestión de segundos con una exactitud casi del 100%. Las tareas que antes hacíamos por separado, ahora se hacen del tirón con un buen prompt (aunque, por supuesto, siempre se pueden usar técnicas avanzadas combinando modelos pesados y ligeros para extracción y corrección).
Y esto tiene un impacto económico demoledor:
Desarrollo del Grafo: Históricamente, el costo de creación manual de datos estructurados era de varios dólares ($2.25 - $5.71) por cada tripleta o hecho. La IA reduce este esfuerzo a lo mínimo.
Proyectos Piloto: Mientras que validar un caso de uso específico (como búsqueda semántica en licitaciones) podía costar entre $20,000 y $50,000, ahora se pueden ver ofertas en el mercado por 15.000€. Por eso Google, Bancos y en definitiva grandes corporaciones son los que se podían permitir estos gastos.
Vamos a simular el futuro: El Gemelo digital. Caso de uso
Vamos a olvidarnos de NPL por un momento como una herramienta para leer documentos. Creo que en la forma de escribir he tendido a pensar que solo sirve para leer documentos. Vamos a llevarlo todo a un caso de uso real que ya a día de hoy estamos probando en Cubicup.
Os hablo de Gemelos Digitales y de algo que técnicamente llamamos análisis de propagación de retrasos. ¿Suena complejo? Qué va, es lógica de Grafos.
Imaginad que queréis saber qué pasa si un pedido llega tarde. En una base de datos SQL tradicional, unir todas las tablas para ver el impacto real te costaría la vida a base de miles de JOINs.
En un grafo, imaginamos esta estructura directa:
Nodo A (Pedido): Tiene la propiedad de fecha de entrega.
Nodo B (Material): Está contenido en ese Pedido.
Nodo C (Tarea): Necesita ese Material para ejecutarse.
Nodo D (Zona): La Tarea ocurre en esta Zona específica.
La Magia de los Escenarios What-If: Cambio la fecha en el Nodo A (retraso el pedido 3 días) y automáticamente se ilumina el camino hasta el Nodo D. El sistema no me dice simplemente "el pedido llega tarde", sino: "Oye, la Zona D se va a quedar parada el martes porque la Tarea C no tiene material".
Pasamos de la gestión reactiva (apagar fuegos) a la proactiva (evitar que se enciendan).
Para concluir
Este libro. Aunque es muy denso tiene un capítulo corto sobre Knowledge Graphs. Explica de manera muy sencilla cómo funcionan, que es eso del NER y RE y cómo usar un buen prompt para que LLM extraiga la información.
A partir de ese libro y es ejemplo en concreto construí esta herramienta cuyo código está en este repositorio y donde además (dentro del repositorio) encuentras el link a Google AI Studio para que la puedas toquetear. Dado que usa la API de Gemini no te va a funcionar porque desde que cambiaron los planes de precios tuve que dejar de ser tan bondadoso ;-)
Inicialmente la herramienta la cree para extraer información relevante de Expedientes de Obra en Cubicup. Básicamente:
Le subía un expediente de Obra
Le explicaba que relaciones quería buscar o podía dejar al LLM que buscara lo que considerara.
El resultado un Grafo de conocimiento y el CYPHER que para ejecutar en una Base de Datos de Grafos.