E052_Grafos_de_conocimiento_aplicados_a_los_RAG
Ep. 52

E052_Grafos_de_conocimiento_aplicados_a_los_RAG

Episode description

Episodio 52: Grafos de Conocimiento y RAG

Exploramos la tecnología de grafos de conocimiento y su aplicación en los sistemas RAG (Retrieval Augmented Generation), permitiendo la estructuración de información desestructurada en mapas visuales que muestran conexiones y relaciones. Analizamos cómo esta tecnología, impulsada por los grandes modelos del lenguaje, está cambiando las reglas del juego en la recuperación y síntesis de conocimiento.

Download transcript (.srt)
0:10

Buenas, esto es BIMPRAXIS, el podcast donde el

0:15

BIM se encuentra con la inteligencia artificial.

0:20

Exploramos la ciencia, la tecnología y el futuro

0:23

desde el enfoque de la arquitectura, ingeniería y

0:26

construcción.

0:28

¡Empezamos!

0:37

Hola de nuevo a un episodio más de

0:38

BIMPRAXIS.

0:40

Hoy traemos para este episodio 52, dentro de

0:43

nuestra serie dedicada a los RAG, a los

0:45

Retrieval Augmented Generation, todo un hallazgo súper potente.

0:49

Los grafos como estrategia para estructurar la base

0:52

de conocimiento.

0:53

La idea de partida, la verdad, es de

0:55

esas que te atrapan.

0:56

Y si pudiéramos coger un montón de texto

0:58

desestructurado, un libro entero, un fajo de artículos,

1:02

una página de Wikipedia, y casi por arte

1:05

de magia, transformarlo en un mapa visual, un

1:08

mapa que nos muestre cómo está todo conectado.

1:10

Vamos, parece ciencia ficción.

1:12

Pero es que ya está aquí.

1:14

Y el objetivo de hoy es precisamente ese,

1:16

analizar cómo esta tecnología, que ha recibido un

1:20

impulso brutal gracias a los grandes modelos del

1:22

lenguaje, está cambiando las reglas del juego.

1:26

Y en particular, ¿cómo puede llevar a los

1:27

sistemas RAG que venimos explorando a un nivel,

1:31

bueno, a un nivel completamente nuevo?

1:33

Pues empecemos por lo más básico, porque el

1:35

término grafo de conocimiento puede sonar un poco

1:38

intimidante.

1:39

A mí se me ocurre una analogía que

1:41

creo que ayuda mucho a visualizarlo.

1:43

Imagina que tienes que explicarle la trama de

1:45

Juego de Tronos a alguien.

1:46

¡Uf, qué reto!

1:48

Menudo reto.

1:49

Podrías darle un resumen de mil páginas o

1:51

podrías mostrarle un mapa con los personajes, las

1:53

casas, sus alianzas, sus traiciones, las batallas.

1:57

Claro.

1:58

Con un solo vistazo, esa persona entendería la

2:00

red de relaciones que es, en realidad, el

2:02

corazón de la historia.

2:04

Es la analogía perfecta.

2:05

Porque eso es, en esencia, un grafo de

2:08

conocimiento.

2:09

Formalmente, diríamos que es una representación de entidades,

2:13

que son los nodos, y las relaciones que

2:15

hay entre ellas, que son las aristas.

2:18

Pero en la práctica es exactamente eso, un

2:20

mapa de conexiones.

2:22

Un nodo puede ser Jaime Lannister, otro Cersei

2:25

Lannister, y la arista que los une es

2:27

la relación hermano de, y también amante de.

2:31

Es una forma increíblemente intuitiva de representar el

2:34

conocimiento.

2:34

Espera, que aquí me surge la primera duda.

2:37

A primera vista, esto me suena a una

2:39

base de datos relacional de toda la vida,

2:42

pero muy compleja.

2:44

¿Qué es lo que realmente lo diferencia?

2:47

¿No podríamos con suficientes tablas y uniones conseguir

2:49

algo parecido?

2:51

Sospecho que la respuesta es no, pero no

2:53

veo claramente dónde está el límite.

2:54

Es la pregunta clave, y la diferencia es

2:57

fundamental.

2:59

Las bases de datos tradicionales, con sus tablas,

3:02

filas y columnas, son una estructura que llamamos

3:05

plana.

3:06

Son fantásticas para almacenar datos muy estructurados, como

3:09

un listado de clientes, por ejemplo.

3:12

Pero cuando intentas modelar relaciones complejas y, sobre

3:15

todo, heterogéneas como las de Juego de Tronos,

3:18

la cosa se dispara.

3:19

Necesitarías decenas de tablas, uniones complejísimas y las

3:23

consultas se volverían lentísimas e inmanejables.

3:26

Se convertiría en un monstruo.

3:27

Un monstruo, exactamente.

3:29

Un grafo, en cambio, nace para representar redes.

3:32

Su estructura nativa son los nodos y las

3:35

conexiones.

3:36

Esto no solo lo hace más visual, sino

3:38

computacionalmente mucho más eficiente para responder a ciertas

3:42

preguntas.

3:42

Preguntas como ¿cuáles?

3:43

Pues preguntas como ¿cuál es el camino más

3:45

corto entre este personaje y este otro?

3:48

O ¿quién es la persona más influyente de

3:50

esta red, la que tiene más conexiones importantes?

3:54

Esas son operaciones matemáticas que en un grafo

3:57

son naturales y en una base de datos

3:59

tradicional una auténtica pesadilla.

4:02

Entendido.

4:03

O sea, el grafo piensa en relaciones, la

4:06

base de datos en registros.

4:08

Y lo curioso es que, aunque suene a

4:09

tecnología de nicho, la estamos usando todos los

4:12

días sin darnos cuenta.

4:14

El ejemplo más claro es Google.

4:16

Buscas Albert Einstein y a la derecha no

4:18

solo te salen enlaces, te aparece esa caja

4:21

de información.

4:22

¿El Knowledge Panel?

4:23

Sí.

4:24

Exacto, con su foto, fechas y lo más

4:27

importante, datos conectados, su conyugue, sus hijos, los

4:31

premios que ganó, las universidades donde trabajó.

4:34

Totalmente.

4:35

Esa caja es la punta del iceberg del

4:37

gigantesco grafo de conocimiento de Google.

4:40

Es lo que le permite entender que Einstein

4:42

no es solo una cadena de texto, sino

4:45

una entidad conectada a teoría de la relatividad,

4:49

premio Nobel y física teórica.

4:50

Le permite dar respuestas factuales y con contexto,

4:53

no solo una lista de páginas que contienen

4:55

una palabra.

4:57

Y ver cómo Google lo usa para conectar

4:59

hechos me lleva directamente a los problemas que

5:01

hemos visto en los RAG tradicionales.

5:03

Un RAG estándar es como un bibliotecario muy

5:05

rápido.

5:06

Le pides algo sobre Apple Inc.

5:07

y te trae todos los documentos que lo

5:09

mencionan.

5:10

Es útil, sí, pero si le pides algo

5:12

como, ¿cuáles son los cinco temas estratégicos principales

5:16

de Apple discutidos en estos informes anuales de

5:18

la última década?

5:18

Se queda en blanco.

5:20

No puede sintetizar.

5:21

No ve el bosque.

5:22

Exacto.

5:23

El RAG tradicional es bueno encontrando agujas en

5:27

un pajar, pero no puede decirte cómo se

5:29

relacionan todas las agujas entre sí.

5:32

Se le escapan esas consultas que requieren conectar

5:35

ideas o eventos a través de múltiples documentos.

5:38

documentos.

5:39

Entonces, es aquí donde los grafos entran como

5:41

el súper bibliotecario que sí ve el panorama

5:44

completo.

5:45

Precisamente.

5:46

Aquí es donde nace el concepto de GraphRag.

5:49

El proceso cambia por completo.

5:52

En lugar de limitarnos a indexar fragmentos de

5:55

texto, el primer paso es construir un grafo

5:57

de conocimiento a partir de toda la documentación.

6:00

Un LLM lee todos los informes, artículos y

6:03

noticias e identifica automáticamente las entidades clave, personas,

6:08

productos, empresas, tecnologías, y extrae las relaciones entre

6:12

ellas.

6:13

O sea, que extrae cosas como Steve Jobs

6:16

cofundó Apple o Apple adquirió Next.

6:19

Justo.

6:21

O el iPhone revolucionó la industria móvil.

6:24

Todas esas conexiones.

6:25

O sea, primero creamos ese mapa de Juego

6:28

de Tronos, pero con los datos de la

6:30

empresa.

6:30

Exacto.

6:32

Y una vez tienes ese mapa, el juego

6:34

cambia.

6:35

Cuando un usuario pregunta por Apple, el sistema

6:38

ya no busca solo la palabra Apple.

6:41

Recupera el nodo Apple Inc.

6:43

y todo el subgrafo de información que está

6:45

conectado a él.

6:46

Ah, claro.

6:48

El LLM ya no recibe fragmentos de texto

6:50

sueltos, sino que recibe un contexto ya estructurado.

6:54

Se ancla, por así decirlo, en la estructura

6:56

del grafo.

6:57

Y supongo que eso le permite responder a

6:59

esas preguntas complejas que antes no podía.

7:02

De forma espectacular.

7:03

Para responder a tu pregunta de cuáles son

7:05

los cinco temas principales, el sistema puede analizar

7:09

el grafo, ver los clústeres o comunidades de

7:11

nodos más densos.

7:13

Clústeres.

7:13

Sí, grupos de nodos muy interconectados.

7:17

Podría encontrar un clúster sobre litigios de patentes,

7:20

otro sobre la cadena de suministro en China,

7:23

otro sobre el desarrollo del Vision Pro, y

7:25

a partir de ahí sintetizar una respuesta coherente

7:28

y estructurada.

7:29

Ya veo.

7:30

Pasamos de la recuperación de información a la

7:33

síntesis de conocimiento.

7:34

Es un salto cualitativo brutal.

7:36

Suena increíble en teoría, pero también me parece

7:39

que podría ser computacionalmente carísimo.

7:41

Construir y luego consultar un grafo así no

7:44

es mucho más lento que una simple búsqueda

7:45

semántica.

7:45

Es una objeción muy razonable.

7:48

La construcción inicial del grafo, el parsing de

7:51

todos los documentos, es un proceso intensivo que

7:54

se hace una sola vez o de forma

7:56

periódica.

7:57

Pero una vez construido, las consultas sobre el

8:00

grafo son, para muchas de estas preguntas complejas,

8:02

muchísimo más rápidas y eficientes que intentar que

8:05

un LLM razone sobre miles de fragmentos de

8:08

texto inconexos en tiempo real.

8:10

O sea, inviertes más al principio para ganar

8:13

velocidad y precisión después.

8:15

Exacto.

8:15

Y no solo se aplica a RAH.

8:17

Piensa en la detección de fraude, analizando redes

8:20

de transacciones para encontrar patrones anómalos, o en

8:23

el descubrimiento de fármacos, mapeando las relaciones entre

8:26

genes, proteínas y enfermedades.

8:29

Si son tan potentes, la pregunta es obligada.

8:31

¿Por qué estamos hablando de esto como una

8:33

revolución ahora?

8:35

¿Por qué no se usaban de forma masiva

8:36

hace 10 años?

8:38

Porque antes, construir uno era un trabajo de

8:40

chinos.

8:41

Era un proceso casi artesanal.

8:43

Requería equipos de expertos en un dominio concreto,

8:45

historiadores, biólogas, financieros, leyendo miles de documentos y

8:50

extrayendo manualmente cada entidad y cada relación.

8:53

Un cuello de botella carísimo en tiempo y

8:56

dinero.

8:56

Se intentarían crear atajos, supondo.

8:59

Claro.

8:59

Primero con sistemas basados en reglas, pero eran

9:02

muy rígidos.

9:02

Si cambiaba un poco el formato del texto,

9:05

todo se rompía.

9:06

Frágiles.

9:07

Muy frágiles.

9:08

Luego llegaron los primeros modelos de Machine Learning,

9:11

que mejoraron las cosas, pero tenían un alcance

9:14

limitado.

9:15

Funcionaban bien para textos muy específicos, casi siempre

9:17

en inglés, y se perdían con la ambigüedad

9:20

y los matices del lenguaje.

9:21

Y entonces llegaron los LLMS modernos y lo

9:25

cambiaron todo.

9:26

Cambiaron las reglas del juego por completo.

9:28

Un modelo como GPT-4O puede leer texto en

9:32

múltiples idiomas, entender el contexto, el sarcasmo, las

9:37

relaciones implícitas y hacer ese trabajo de extracción

9:40

de forma automática y a una escala que

9:42

antes era impensable.

9:43

Es que esto es lo que lo cambia

9:45

todo.

9:45

Totalmente.

9:46

Recuerdo haber intentado hacer algo parecido hace años

9:48

para un proyecto personal, mapeando personajes de novelas.

9:52

Fue un trabajo manual de semanas y lo

9:54

abandoné por pura extenuación.

9:56

Ver que ahora se puede hacer con un

9:57

clic es un poco deprimente y alucinante a

10:00

la vez.

10:00

Te entiendo perfectamente.

10:02

Vi una demostración con una herramienta de NeoFatch

10:05

que era casi insultante, de lo fácil que

10:07

parecía.

10:08

Se pegaba el texto de la Wikipedia de

10:10

Juego de Tronos y al instante tenías en

10:12

pantalla un grafo interactivo.

10:14

En el centro, Juego de Tronos, y conectados

10:17

a él nodos de colores con datos.

10:18

el número de episodios, los premios, los libros.

10:23

Se podía explorar toda la saga visualmente.

10:26

Era una pasada.

10:26

Esa demostración es el ejemplo perfecto de la

10:29

democratización de esta tecnología.

10:31

Lo que antes costaba meses de trabajo de

10:34

un equipo de doctorandos, ahora se puede prototipar

10:36

en segundos con las herramientas adecuadas.

10:39

Vale, pues vamos a meternos un poco más

10:41

en la parte técnica para quienes les gusta

10:43

trastear con el código.

10:45

El proceso de convertir, por ejemplo, el primer

10:47

párrafo de la Wikipedia de Einstein en un

10:50

grafo.

10:51

¿Cómo funciona por debajo?

10:52

Pues mira, principalmente hay dos maneras de pedirle

10:55

a un LLM que haga esto.

10:56

La primera es la más directa.

10:58

Le escribes un prompt muy detallado pidiéndole extrae

11:01

todas las personas, lugares y conceptos de este

11:04

texto y devuélvemelos en formato JSON con nodos

11:06

y relaciones.

11:08

Es el enfoque basado en prompts.

11:10

¿Y el problema es?

11:11

Que los LLMs a veces son un poco

11:13

creativos, digamos.

11:14

Exacto.

11:15

No tienes ninguna garantía de que la salida

11:17

sea siempre un JSON válido y con la

11:19

estructura exacta que necesitas.

11:21

A veces puede añadir un comentario, olvidar una

11:23

coma y tu código se rompe.

11:26

Es inconsistente.

11:27

¿Y la alternativa más robusta?

11:29

La alternativa es el enfoque de salida estructurada,

11:31

o lo que a veces se llama function

11:33

calling, que soportan los modelos más avanzados.

11:36

Es la diferencia entre dar instrucciones vagas y

11:38

entregar un plano detallado.

11:40

A ver, en lugar de pedirle un texto,

11:42

defines un esquema formal.

11:44

La salida debe ser una lista de objetos

11:47

nodo y cada nodo debe tener un ID

11:51

de tipo string y un tipo de tipo

11:53

string.

11:55

Y lo mismo para las relaciones.

11:56

Ah, vale.

11:57

O sea, obligas al modelo a rellenar tu

11:59

plantilla.

12:00

Justo.

12:00

Lo fuerzas a seguir tu esquema.

12:03

El resultado es una salida increíblemente fiable y

12:06

consistente, lista para ser usada por tu programa

12:09

sin miedo a errores de formato.

12:11

Siempre que se pueda, es el camino a

12:13

seguir.

12:13

Para los que no queremos pelearnos con todo

12:15

eso, existen librerías como Landchain con herramientas como

12:19

el LLM Graph Transformer, que básicamente es una

12:22

caja negra a la que le das texto

12:23

y te devuelve el grafo ya hecho.

12:25

Es una maravilla de abstracción.

12:27

Esa herramienta mira qué LLM estás usando y

12:30

decide por ti.

12:31

Si soporta salida estructurada, la usa.

12:34

Si no, utiliza un sistema de prompts muy

12:36

robusto por debajo.

12:38

Te quita toda la complejidad.

12:39

O sea que el proceso es tan simple

12:40

como… ¿Cómo lo describes?

12:43

Instalas las librerías, configuras tu LLM con tu

12:46

clave de API, le pasas el texto de

12:48

Einstein al transformador y ya está.

12:51

Y lo que te devuelve es una lista

12:52

de nodos como Albert Einstein, tipo persona, y

12:55

una lista de relaciones como sujeto Albert Einstein,

12:59

relación, desarrolló objeto, teoría de la relatividad.

13:03

Exacto, y con eso ya puedes usar una

13:06

librería como PyBIS para pintar ese mapa interactivo

13:09

de la vida de Einstein, con las personas

13:11

en azul, las organizaciones en verde.

13:13

Es cuando lo ves visualmente que el concepto

13:15

realmente hace clic, lo que me lleva a

13:17

un problema práctico.

13:19

El primer grafo que generé para probar esto,

13:21

sobre Einstein, era un poco caótico.

13:24

Una bola de pelo, como se suele decir,

13:26

de nodos y líneas, con muchísima información.

13:29

¿Qué pasa si solo me interesan, por ejemplo,

13:31

sus afiliaciones académicas y no su vida personal?

13:34

¿Cómo evitamos que el grafo se llene de

13:36

ruido?

13:37

Es un punto fundamental.

13:39

Un grafo no es mejor por tener más

13:41

nodos.

13:42

Es mejor por tener los nodos y relaciones

13:44

correctos para tu objetivo.

13:47

La solución es guiar y restringir al LLM

13:50

durante la extracción.

13:52

¿Cómo?

13:53

¿Añadiendo más instrucciones al prompt?

13:56

Exactamente.

13:57

En herramientas como la de LandChain puedes pasarle

13:59

parámetros muy específicos.

14:01

Por ejemplo, una lista de Allowed Nodes.

14:05

¿Nodos permitidos?

14:06

Vale.

14:06

Y ahí le dices, solo me interesan los

14:09

nodos de tipo persona, universidad y publicación.

14:13

Todo lo demás lo ignoras.

14:16

Y puedes ser aún más precisa con las

14:18

relaciones.

14:19

Puedes definir una lista de Allowed Relationships y

14:23

especificar patrones completos.

14:25

Por ejemplo, solo quiero relaciones que sigan la

14:28

estructura Persona trabajó en universidad o Persona publicó

14:32

publicación.

14:33

Ah, claro.

14:35

De esa forma, en lugar del mapa completo

14:37

de la vida de Einstein, creas un grafo

14:39

específico y enfocado en su carrera académica, mucho

14:43

más limpio y útil.

14:44

Precisamente.

14:46

Y para un sistema RAG, este paso de

14:48

refinamiento es absolutamente crucial.

14:51

Si alimentas al RAG con un grafo ruidoso

14:54

y lleno de conexiones irrelevantes, sus respuestas serán

14:57

igual de ruidosas y desenfocadas.

15:00

Curar el grafo es curar la calidad de

15:02

las respuestas futuras.

15:03

Entonces, si recapitulamos el viaje, hemos pasado de

15:07

un simple bloque de texto a un mapa

15:08

de conocimiento estructurado, interactivo y, sobre todo, útil.

15:13

Y esto no es solo un adorno visual,

15:14

Es una forma radicalmente más potente de estructurar

15:17

el conocimiento para que sistemas de IA como

15:20

los RAG puedan razonar sobre él.

15:23

Si lo conectamos con la idea general, estamos

15:25

presenciando el paso de la recuperación de información

15:28

a la síntesis de conocimiento.

15:30

Ya no buscamos documentos, buscamos respuestas, conexiones, patrones.

15:35

Estamos construyendo un cerebro digital sobre nuestros datos,

15:39

una capa de inteligencia que entiende las relaciones

15:41

que hay en ellos.

15:42

Construir un cerebro digital sobre nuestros datos es

15:45

una idea muy potente.

15:46

Y nos deja con una reflexión final.

15:49

Si esta técnica nos permite mapear los conceptos

15:52

de un libro o de todo un campo

15:53

científico, ¿qué pasaría si la aplicáramos a nuestros

15:56

propios datos?

15:58

A nuestras notas personales, a los correos electrónicos

16:00

del trabajo, a los documentos de un proyecto.

16:03

¿Qué conexiones ocultas sobre nuestras propias ideas, sobre

16:07

la forma en que colaboramos, podríamos descubrir?

16:10

Quizás el próximo gran avance no venga de

16:12

encontrar nueva información, sino de entender por fin

16:15

las relaciones profundas que ya existen en la

16:18

información que generamos cada día.

16:20

Llegamos al final por hoy.

16:22

El podcast BIMPRAXIS está dirigido por un humano,

16:25

Julio Pablo Vázquez.

16:26

Os esperamos en el próximo episodio.

16:39

Y hasta aquí el episodio de hoy.

16:41

Muchas gracias por tu atención.

16:53

Esto es BIMPRAXIS.

16:55

Nos escuchamos en el próximo episodio.

17:18

¡Suscríbete al canal!