E055_RAG_2.0. Usando vectores + grafos
Ep. 55

E055_RAG_2.0. Usando vectores + grafos

Episode description

Episodio de BIMPRAXIS: Avances en Retrieval Aumented Generation (RAG)

La serie de RAG sigue avanzando con una potente combinación de técnicas que permiten a las IAs razonar de verdad. El enfoque clásico de RAG se basa en la búsqueda vectorial, pero surge una nueva perspectiva con el concepto de Agent X RAG, que da a las IAs la capacidad de razonar sobre cómo explorar la base de conocimiento, utilizando herramientas como grafos de conocimiento para capturar relaciones entre entidades. Esto abre un nuevo camino en la investigación y el desarrollo de sistemas de IA más autónomos y eficientes.

Download transcript (.srt)
0:09

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:36

¡Hola, humanas y humanos!

0:39

Aquí estamos con un episodio nuevo de BIMPRAXIS.

0:42

En el episodio de hoy seguimos con la

0:45

serie dedicada a los RAG, los Retrieval Aumented

0:48

Generation.

0:49

Hoy traemos una potente combinación de técnicas.

0:53

Una combinación muy, muy potente, sí.

0:55

Vamos a ver cómo estos sistemas están empezando

0:57

a, bueno, a razonar de verdad.

1:00

Exacto.

1:00

El objetivo de los RAG, para poner un

1:02

poco de contexto, es dar a las IAs

1:05

la capacidad de buscar en nuestro propio conocimiento,

1:08

en nuestros documentos, vaya.

1:10

Pero claro, no todas las formas de buscar.

1:12

Son iguales.

1:13

Y creo que lo mejor es empezar por

1:15

la más básica, la que a veces llaman

1:17

RAG vainilla o RAG ingenuo.

1:19

Sí, es el punto de partida de todo

1:21

esto.

1:21

El RAG, digamos, clásico.

1:24

Venga, pues explícanos ese flujo tradicional.

1:26

A ver, es bastante lineal.

1:28

Primero, coges tus documentos, lo que sea, PDFs,

1:32

webs, da igual.

1:33

Y los partes en trocitos más pequeños.

1:35

Se les suele llamar chunks.

1:37

Claro, porque no puedes meter un informe de

1:39

100 páginas de golpe en el computador.

1:42

En el contexto del modelo no cabe.

1:44

Ni cabe ni es eficiente.

1:46

Una vez tienes esos fragmentos, creas una representación

1:49

vectorial de cada uno.

1:51

Un embedding.

1:52

O sea, lo traduces a números que la

1:54

máquina entiende.

1:55

Precisamente.

1:55

Y esos vectores, esos números, los guardas en

1:58

una base de datos vectorial.

2:00

El ejemplo de la fuente, de hecho, usa

2:02

PostgreSQL con la extensión pgVector, que es muy

2:05

popular para esto.

2:06

Vale.

2:07

Conocimiento troceado y convertido en vectores.

2:10

Y ahora llega la pregunta del usuario.

2:12

Y se repite el proceso.

2:13

La pregunta también se convierte en un vector.

2:16

Y entonces lo que hace el sistema es

2:18

buscar en la base de datos qué fragmentos

2:21

tienen los vectores más parecidos, más cercanos al

2:24

de la pregunta.

2:24

Y esos fragmentos son los que se usan

2:27

como contexto para que el LLM, el modelo

2:30

de lenguaje, genere la respuesta final.

2:32

Exacto.

2:33

Se le dice.

2:35

Responde a esto, pero usando esta información.

2:38

Suena bastante lógico.

2:39

Entonces, ¿dónde está el problema?

2:41

¿Cuál es la pega?

2:42

Pues mira, la principal debilidad es su inflexibilidad.

2:46

Es una tubería totalmente rígida.

2:49

¿Una tubería?

2:50

Sí.

2:50

El contexto se recupera y se inyecta la

2:53

fuerza en el prompt del LLM.

2:55

El agente de IA no tiene ninguna opción.

2:58

Ah, vale.

2:58

Debe usar ese contexto.

3:00

Sí o sí.

3:01

Le guste o no le guste, sea relevante

3:03

o no.

3:04

Es como si no pudiera levantar la mano

3:06

y decir, oye, esto que me has dado

3:07

no me sirve.

3:08

Justo.

3:09

No puede refinar su búsqueda ni pensar en

3:11

una estrategia mejor.

3:12

Ni consultar otras fuentes si las tuviera.

3:14

Es un receptor pasivo.

3:16

Vale.

3:16

Entonces necesitamos darle más autonomía, más iniciativa.

3:20

Aquí es donde entra en juego el concepto

3:23

de Agent X RAG, ¿no?

3:25

Exactamente.

3:25

Ahí está el cambio de paradigma.

3:27

La idea central es dar a la gente

3:30

la capacidad de razonar sobre cómo explora la

3:33

base de conocimiento.

3:34

Que deje de ser un simple ejecutor de

3:36

órdenes.

3:37

Eso es.

3:37

En lugar de ese paso previo forzado, el

3:40

agente ahora puede, por ejemplo, formular sus propias

3:43

consultas para buscar.

3:44

O sea, reformular mi pregunta para que la

3:47

base de datos la entienda mejor.

3:48

Sí.

3:49

O puede decidir si necesita buscar más información

3:51

o refinar la búsqueda que ya ha hecho.

3:54

Y lo más importante, puede elegir entre diferentes

3:56

herramientas o fuentes de conocimiento si las tiene

3:59

disponibles.

4:00

Es un cambio fundamental, vaya.

4:02

De ser un receptor pasivo de contexto a

4:05

ser un explorador activo de la información.

4:07

Totalmente.

4:08

¿Qué pasa de ser un bibliotecario que solo

4:10

busca en el fichero?

4:11

¿Qué le dicen a ser un investigador que

4:13

decide qué libros consultar?

4:15

Y aquí es donde se pone realmente interesante.

4:19

Porque el material que analizamos no se queda

4:22

solo en darle autonomía a la gente, sino

4:25

que le da una herramienta completamente diferente.

4:28

Los grafos de conocimiento.

4:30

Y esto es crucial.

4:32

Porque no es solo darle a elegir, es

4:34

darle opciones que son conceptualmente distintas.

4:37

A ver, explícanos la diferencia.

4:39

¿Base de datos vectorial?

4:41

¿Oltragrafo de conocimiento?

4:43

Mira, la base de datos vectorial es ideal

4:45

para encontrar información por similitud semántica.

4:48

Lo que hablábamos.

4:49

Responde genial a preguntas como, ¿qué iniciativas de

4:53

IA tiene Google?

4:54

Buscará textos que usen palabras parecidas a Google,

4:57

IA, iniciativas.

4:59

Correcto.

5:00

Pero un grafo de conocimiento, un knowledge graph,

5:03

juega en otra liga.

5:04

Su fuerte no es la similitud, son las

5:07

relaciones, las conexiones entre entidades.

5:10

¿No almacena solo datos?

5:11

No, no almacena solo datos, sino cómo se

5:13

conectan esos datos.

5:14

Ahí está la clave.

5:16

Usa ejemplos muy claros en la fuente.

5:18

Por ejemplo, no tienes solo un nodo Amazon

5:21

y un nodo Anthropic.

5:23

Tienes el nodo Amazon que se relaciona con

5:25

el nodo Anthropic a través de un enlace,

5:28

una relación, que dice ha invertido en.

5:32

¡Ostras!

5:32

¡Claro!

5:33

O el nodo Microsoft que se relaciona con

5:36

OpenAI a través de relaciones como son socios

5:39

o usa exclusivamente Azure.

5:42

Captura la estructura, el esqueleto del conocimiento.

5:45

Lo veo.

5:45

El agente ahora tiene dos formas muy distintas

5:48

de ver la misma información.

5:50

Una es semántica y la otra es...

5:54

Relacional.

5:55

Una es una biblioteca y la otra es

5:57

un mapa de conexiones.

5:58

Y eso le da una potencia increíble.

6:01

Vamos a llevar esto a la práctica, que

6:02

creo que es como mejor se va a

6:03

entender.

6:04

La fuente describe un agente que tiene acceso

6:06

a las dos herramientas.

6:08

Y lo interesante es ver cómo elige una

6:10

u otra según la pregunta.

6:11

Sí.

6:12

La demostración es muy, muy clara.

6:14

Ponen tres ejemplos.

6:15

El primero, una pregunta sencilla.

6:17

¿Cuáles son las iniciativas de IA de Google?

6:21

La que ya hemos dicho.

6:22

Un caso de libro para la búsqueda vectorial.

6:24

Y el agente lo pilla al vuelo.

6:26

Su razonamiento interno es algo como...

6:28

A ver, la pregunta va sobre una única

6:30

entidad, Google.

6:31

No necesito explorar relaciones complejas.

6:34

No hay que conectar puntos, vaya.

6:36

Exacto.

6:36

Así que su acción es clara.

6:38

Elige usar la búsqueda vectorial.

6:40

¿Recupera los fragmentos sobre Google?

6:41

¿Recupera los fragmentos sobre Google y responde?

6:42

¿Eficiente y directo?

6:44

Vale.

6:44

Fácil.

6:45

Segundo escenario.

6:46

La segunda pregunta es, ¿cómo se relacionan OpenAI

6:50

y Microsoft?

6:51

Ah, amigo.

6:52

Aquí la palabra clave es relacionan.

6:55

Es una pista enorme.

6:56

Es un dispararar total.

6:57

El agente detecta que la pregunta va explícitamente

7:00

sobre la conexión entre dos entidades.

7:02

Con lo cual...

7:03

Con lo cual, elige usar la búsqueda en

7:05

el grafo.

7:06

Ignora la biblioteca de textos y se va

7:08

directo al mapa de conexiones.

7:10

Sigue el enlace entre el nodo OpenAI y

7:13

el nodo Microsoft y extrae la información de

7:16

esa relación.

7:17

Es mucho más preciso.

7:18

Te evitas el ruido de encontrar un artículo

7:20

que las mencione a las dos de pasada,

7:22

pero sin explicar nada.

7:24

Va directo al grano.

7:25

Y el tercer caso es el que lo

7:27

une todo.

7:28

La pregunta es, ¿cuáles son las iniciativas de

7:31

Microsoft y cómo se relacionan con Anthropic?

7:34

Interesante.

7:34

Es una pregunta doble.

7:36

Efectivamente.

7:37

Una parte es descriptiva, sobre Microsoft.

7:40

Y la otra es relacional, sobre su conexión

7:42

con Anthropic.

7:43

Y el agente es capaz de darse cuenta,

7:45

supongo.

7:45

Sí.

7:46

Y de descomponer la pregunta.

7:48

Su razonamiento es, vale, necesito dos tipos de

7:51

información.

7:52

Por un lado, info general de Microsoft.

7:54

Para eso lo mejor es la búsqueda vectorial.

7:57

Por otro, analizar una relación.

7:59

Para eso el grafo es la herramienta.

8:01

Con lo que decide usar las dos.

8:04

Exacto.

8:05

Lanza una consulta a la base de datos

8:07

vectorial para lo de Microsoft.

8:09

Y otra a la base de datos vectorial.

8:10

Al grafo, para ver la conexión con Anthropic.

8:12

Y luego junta los dos resultados para dar

8:14

una respuesta completa.

8:16

Y lo más importante, y creo que este

8:18

es el punto clave, no es el usuario

8:20

quien elige la herramienta.

8:21

Es el agente quien razona y toma la

8:25

decisión.

8:25

Ese es el salto cualitativo.

8:27

Pasamos de un sistema que busca a un

8:29

sistema que investiga.

8:30

Esto suena muy potente, pero también me da

8:32

la sensación de que es complejo de implementar.

8:35

¿Qué piezas se necesitan para montar un sistema

8:37

así?

8:38

Bueno, no es trivial.

8:39

Pero las herramientas son cada vez más accesibles.

8:41

La fuente menciona su tech stack, su pila

8:44

tecnológica.

8:45

A ver.

8:46

Usan Vosgres con PG Vector para los vectores,

8:49

como dijimos.

8:50

Para el grafo de conocimiento usan Neo4, que

8:53

es como el estándar de la industria.

8:55

Y todo el cerebro de la gente lo

8:57

montan con una librería de Python que se

8:59

llama Pydantic A, servido con FastTP.

9:02

Vale.

9:02

Son herramientas más o menos conocidas en el

9:05

mundillo.

9:06

Sí, no es nada esotérico.

9:08

¿Qué es lo que se usa para montar

9:09

un sistema así?

9:09

La tecnología es solo una parte.

9:10

Lo que más me intriga es cómo le

9:13

dices a la gente cuándo usar cada herramienta,

9:16

cómo se le dan esas instrucciones, esas reglas.

9:19

Esa es la pregunta del millón.

9:20

Y la respuesta está en lo que se

9:22

llama el System Prompt.

9:24

¿El Prompt de Sistema?

9:26

¿Las instrucciones iniciales?

9:28

Justo.

9:29

Es el conjunto de instrucciones que guían todo

9:31

el comportamiento de la gente.

9:33

Es como su constitución.

9:34

El desarrollador define ahí las reglas de razonamiento.

9:38

Dame un ejemplo.

9:39

¿Qué es una de esas reglas?

9:40

La fuente cita uno muy claro de su

9:42

propio proyecto.

9:43

Le dicen algo como, usa el grafo de

9:46

conocimiento solo cuando el usuario pregunte por dos

9:48

empresas en la misma pregunta.

9:50

En caso contrario, usa la base de datos

9:52

vectorial.

9:53

Combina ambas solo si se te pide explícitamente.

9:56

O sea que es bastante explícito.

9:58

No es magia.

9:59

Para nada.

10:00

Es un trabajo de ingeniería de prompts muy

10:03

cuidadoso.

10:04

Tienes que pensar en los casos de uso

10:06

y traducirlos a instrucciones claras para la IA.

10:09

Y este prompt, claro, tienes que adaptarlo a

10:11

tus datos y a tu problema concreto.

10:13

Claro.

10:13

Me imagino que es un punto muy delicado.

10:16

Si el prompt es ambiguo o te dejas

10:18

fuera un caso importante, el agente puede tomar

10:21

una decisión equivocada.

10:22

Totalmente.

10:23

Es un proceso iterativo.

10:25

Pruebas, ves dónde fallar y refinas las instrucciones.

10:28

No hay una solución universal.

10:29

Y como apunte final, hay un detalle en

10:32

el material que es fascinante.

10:35

Sobre cómo se construyó este proyecto.

10:37

¿Ah, sí?

10:39

Es una capa meta que te deja pensando,

10:40

la verdad.

10:42

Cuéntalo.

10:42

El autor del proyecto comenta que para crear

10:45

gran parte del agente, utilizó un asistente de

10:48

codificación de IA.

10:49

Usó Cloud Code.

10:51

Espera, ¿me estás diciendo que usó una IA

10:53

para programar esta otra IA?

10:55

Una IA construyendo a otra IA.

10:57

Pero lo increíble no es solo eso, es

10:59

cómo lo hizo.

11:00

¿Cómo?

11:00

No le fue dando órdenes paso a paso

11:03

en plan, ahora escribe esta función.

11:04

No.

11:05

El propio proceso de desarrollo fue agéntico.

11:08

¿Qué quieres decir?

11:09

¿Qué quieres decir con eso?

11:09

Pues que le dio al asistente de codificación

11:11

un plan de alto nivel, una lista de

11:13

tareas y unas reglas generales.

11:15

¿Y con eso?

11:15

¿Lo dejó trabajar solo?

11:17

Lo dejó trabajar solo durante largos periodos.

11:19

La fuente habla de una sesión de 35

11:21

minutos seguidos en la que la IA estuvo

11:23

escribiendo código, creando las bases de datos, validando

11:26

su trabajo.

11:27

¡Madre mía!

11:28

Es un agente de IA que, de forma

11:30

autónoma, construye otro agente de IA.

11:33

Es una muñeca rusa de inteligencia artificial.

11:36

Así que, ¿cuál es…?

11:39

¿Cuál es la gran conclusión de todo esto,

11:42

la idea con la que nos tenemos que

11:43

quedar?

11:44

Pues yo diría que la idea principal es

11:46

que estamos yendo más allá de la simple

11:48

recuperación de información.

11:50

La combinación de este enfoque agéntico, con múltiples

11:54

formas de ver el conocimiento, vectores y grafos,

11:57

permite a las IAs no sólo recuperar datos,

12:00

sino hacerlo de una forma mucho más inteligente.

12:03

¿Mucho más humana?

12:04

Eligiendo la herramienta adecuada para cada tarea, como

12:07

haría un experto.

12:08

Exacto.

12:09

Ya no se trata sólo de buscar, se

12:11

trata de investigar.

12:13

Y esto me lleva a una reflexión final,

12:15

un pensamiento un poco provocador.

12:18

Si un agente de IA ya puede aprender

12:21

a elegir la mejor herramienta para buscar en

12:24

la información que le damos… ¿Qué pasará cuando

12:27

empiece a cuestionar la calidad de esas fuentes

12:30

que le proporcionamos?

12:31

¿Cuándo pasará de ser un recuperador de datos

12:34

a un evaluador crítico del conocimiento?

12:38

Nos despedimos por hoy, recordándoos que las voces

12:41

que escuchas han sido generadas por una IA,

12:44

Notebook LM.

12:45

Aunque el podcast no carece del factor humano,

12:48

porque en la trastienda está Julio Pablo Vázquez,

12:50

que investiga buscando temas interesantes que traeros prácticamente

12:54

todos los días.

12:55

Os manda saludos.

12:56

Hasta el próximo episodio, queridos humanos.

13:09

Y hasta aquí el episodio de hoy.

13:11

Muchas gracias por tu atención.

13:23

Esto es BIMPRAXIS.

13:26

El próximo episodio.