E050_Empieza la serie sobre RAG
Ep. 50

E050_Empieza la serie sobre RAG

Episode description

Retrieval Augmented Generation (RAG) es la arquitectura esencial que resuelve las limitaciones de los grandes modelos de lenguaje (LLMs), como las alucinaciones y la desactualización de su conocimiento. Profundizamos en la mecánica de RAG, explicando la analogía de la “biblioteca” personalizada y el proceso técnico detrás de la fragmentación (chunking), la vectorización de datos y el uso de bases de datos vectoriales. Descubra cómo esta tecnología proporciona respuestas verificables y fiables, además de explorar técnicas avanzadas de optimización como el re-ranking, la fragmentación consciente del contexto y el RAG agéntico. Una guía fundamental para construir sistemas de IA transparentes y precisos, cruciales en entornos técnicos como la AEC (Arquitectura, Ingeniería y Construcción).

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

BIMPRAXIS.

0:41

Hoy llegamos al número 50.

0:43

50 ya, felicidades.

0:45

Gracias.

0:46

Y para celebrar este número tan redondo, vamos

0:48

a comenzar una nueva serie dedicada a una

0:51

tecnología que está, bueno, en boca de todos.

0:54

El RAG, Retrieval Augmented Generation.

0:57

Exacto.

0:58

Hoy vamos a ver qué es eso de

1:00

los RAG.

1:01

Porque, a ver, a menudo oímos que los

1:03

grandes modelos de lenguaje, los LLMs, a veces

1:06

se inventan cosas, ¿no?

1:07

O dan información que ya está anticuada.

1:10

Totalmente.

1:11

¿Y si hubiera una forma de darles, no

1:14

sé, como una biblioteca personalizada y que estuviera

1:17

siempre al día?

1:18

Pues es que has dado justo en el

1:19

clavo.

1:20

Ese es uno de los mayores desafíos de

1:22

los LLMs ahora mismo.

1:24

Claro.

1:24

Y RAG es precisamente la solución a ese

1:27

problema.

1:28

Es una arquitectura que permite que un modelo,

1:30

antes de responder, pueda consultar fuentes de información

1:33

muy específicas y, sobre todo, actualizadas.

1:36

Bien, pues vamos a desgranar esto.

1:39

La analogía de la biblioteca me parece muy,

1:41

muy potente.

1:42

Sí, funciona muy bien.

1:44

O sea, es como tener un asistente virtual

1:47

al que, en lugar de confiar solo en

1:48

lo que aprendió durante su entrenamiento hace meses

1:51

o años, que se queda viejo enseguida.

1:54

le damos acceso a una biblioteca en tiempo

1:56

real.

1:57

Eso es.

1:58

El proceso, a grandes rasgos, es bastante elegante

2:00

y se puede dividir como en tres pasos.

2:03

A ver.

2:04

Primero, la búsqueda.

2:06

El sistema recibe la pregunta y, en lugar

2:08

de lanzarse a responder, lo que hace es

2:10

usar esa pregunta para buscar en una base

2:12

de datos de conocimiento que hemos creado nosotros.

2:14

Una base de datos con nuestros propios documentos,

2:17

¿no?

2:18

PDFs, manuales, lo que sea.

2:22

Justo, lo que necesitemos.

2:24

Una vez que ha buscado, llega el segundo

2:26

paso, la recuperación.

2:28

De todo lo que encuentra, el sistema elige

2:30

sólo los fragmentos de información más relevantes, los

2:34

trocitos de texto que de verdad parecen contener

2:36

la respuesta.

2:37

Ok, busca, recupera lo importante y… El tercer

2:41

paso, la generación.

2:43

Y aquí es donde está la magia.

2:45

El modelo de lenguaje, el LLM, recibe dos

2:48

cosas, la pregunta original y, además, esos fragmentos

2:52

que hemos recuperado.

2:54

Ah, como contexto adicional.

2:56

Exacto.

2:56

Es como si le dijéramos, oye, responde a

2:59

esto, pero por favor, basándote en esta información

3:01

que te estoy dando ahora mismo.

3:03

Aquí es donde se pone realmente interesante para

3:05

mí.

3:06

Quiero entender bien ese viaje de los datos.

3:09

O sea, ¿cómo se construye esa biblioteca?

3:12

Claro.

3:13

Porque hablamos de PDFs, documentos de Notion, Excel.

3:16

¿Cómo transformamos, por ejemplo, un manual de 500

3:19

páginas en algo que una máquina pueda consultar

3:22

así de rápido?

3:23

Esa es la pregunta del millón, porque ahí

3:25

está el núcleo de un buen sistema RAG.

3:27

Hay dos fases muy claras.

3:29

La primera es la preparación de los datos.

3:31

Que se hace solo una vez, imagino.

3:34

Eso es, al principio.

3:36

Y lo primero dentro de esa preparación es

3:37

lo que llamamos chunking o fragmentación.

3:41

Trocear los documentos.

3:42

Exacto.

3:44

No le puedes dar al modelo las 500

3:45

páginas de golpe.

3:46

Sería un caos.

3:49

Así que lo divides en chunks, en fragmentos

3:51

más pequeños, más manejables.

3:53

¿Y hay un tamaño ideal para esos trozos?

3:56

¿Una frase?

3:57

¿Un párrafo?

3:58

Uf, no hay una fórmula mágica.

4:00

Ahí empieza un poco el arte de esto,

4:01

¿sabes?

4:02

Depende totalmente del caso de uso.

4:04

Un chunk muy pequeño puede no tener contexto.

4:07

Y uno muy grande puede tener demasiado ruido,

4:09

información que no viene al caso.

4:11

Justo.

4:12

El siguiente paso es clave, porque los modelos,

4:14

como bien decías, no entienden texto, entienden números.

4:18

Claro.

4:19

Así que hay que traducir.

4:21

Y eso se llama crear embeddings, o vectorizar.

4:24

Cada uno de esos chunks de texto se

4:26

convierte en una representación numérica, en un vector.

4:29

Como una coordenada en un mapa de significados,

4:32

¿no?

4:32

Me gusta esa analogía.

4:33

Es exactamente eso.

4:35

Cada trozo de texto tiene su propia coordenada.

4:38

Y estas coordenadas se guardan en una base

4:39

de datos especial, una base de datos vectorial.

4:42

Vale, que está pensada para buscar por similitud,

4:45

no por palabras exactas.

4:47

Eso es.

4:47

Hay soluciones muy complejas, pero muchas veces basta

4:50

con una base de datos postgres de toda

4:52

la vida con una extensión como PG Vector.

4:54

Entendido.

4:55

Entonces, esa es la fase de preparación.

4:58

La biblioteca está lista.

5:00

Ahora llega una pregunta de un usuario.

5:02

¿Qué pasa?

5:03

Pues se repite el proceso, pero a la

5:04

inversa.

5:05

La pregunta del usuario también se convierte en

5:07

un vector, en una coordenada en ese mismo

5:09

mapa.

5:10

Usando el mismo modelo de traducción, supongo.

5:13

El mismo, sí.

5:14

Y con esa coordenada, el sistema va a

5:16

la base de datos vectorial y le dice,

5:19

encuéntrame los 5 o 10 fragmentos que estén

5:21

más cerca de este punto.

5:23

Y esos fragmentos son los que se le

5:25

dan al ELM junto a la pregunta original.

5:27

Exacto.

5:28

Ese es el contexto.

5:30

Así es como aumentamos su conocimiento para que

5:32

dé una respuesta precisa y, sobre todo, basada

5:35

en nuestros datos.

5:36

Vale.

5:37

El proceso técnico queda claro.

5:39

Pero, vamos a la práctica.

5:42

¿Qué significa todo esto para una empresa?

5:44

Pues significa un cambio radical.

5:46

Piensa en un chatbot de servicio al cliente.

5:48

¿El que recomendaba productos de la competencia?

5:51

Ese mismo.

5:52

Con RAH, ese chatbot podría consultar en tiempo

5:55

real los manuales de producto y guiar a

5:57

una persona paso a paso para solucionar un

5:59

problema.

6:00

¿Citando la página exacta del manual?

6:02

Por ejemplo.

6:03

O un asistente para un equipo de médicos

6:05

que esté al día con las últimas investigaciones

6:07

publicadas la semana pasada, no hace dos años.

6:11

Un tutor virtual que pueda citar fuentes académicas

6:14

actualizadas para un estudiante.

6:16

Las aplicaciones son enormes.

6:18

Lo son.

6:19

Y las ventajas son muy claras.

6:22

Primero, la información está siempre actualizada.

6:25

Segundo, las respuestas son mucho más fiables.

6:28

Se reducen las alucinaciones a casi cero.

6:30

Y tercero, que para mí es crucial, son

6:32

respuestas verificables.

6:34

Se puede saber de dónde ha salido la

6:36

información.

6:36

Eso da una confianza brutal.

6:38

Y luego está el coste.

6:40

Reentrenar un modelo entero, lo que se conoce

6:42

como fine tuning, es lentísimo y carísimo.

6:46

Mientras que actualizar una base de datos es

6:48

mucho más ágil y barato.

6:50

Muchísimo más.

6:51

Ahora, bueno, tampoco es una solución mágica, tiene

6:54

sus desafíos.

6:55

Claro, no todo va a ser perfecto.

6:57

La implementación puede tener su complejidad técnica.

7:00

Y esa base de datos hay que mantenerla,

7:02

hay que actualizarla.

7:03

Y luego está la latencia.

7:05

El tiempo de respuesta, ¿no?

7:07

Porque hay más pasos.

7:08

Exacto.

7:08

Puede tardar un poquito más.

7:10

Y el coste por consulta.

7:12

Al pasarle más texto al modelo, puede ser

7:15

un poco más alto.

7:16

Hay que buscar un equilibrio.

7:18

Entendido.

7:19

O sea, el RAG básico es un punto

7:21

de partida genial.

7:22

Pero la conversación de verdad está en cómo

7:24

optimizarlo, ¿no?

7:26

Veo que a menudo se combinan varias estrategias.

7:28

Sí, aquí es donde entramos ya en la

7:30

parte avanzada.

7:31

Por ejemplo, una técnica muy común es el

7:34

re-ranking.

7:35

Reordenar, supongo.

7:36

Sí, es un enfoque de dos pasos.

7:38

En lugar de pedirle a la base de

7:40

datos los cinco mejores resultados, le pides, no

7:43

sé, 50.

7:44

Pero, espera, darle 50 fragmentos al LLM no

7:48

es contraproducente.

7:50

¿Lo puedes aturar?

7:51

Claro.

7:52

Por eso está el segundo paso.

7:54

Se usa un modelo mucho más pequeño y

7:56

especializado, un re-ranker, cuya única misión es coger

8:00

esos 50 fragmentos y reordenarlos por relevancia real.

8:04

Ah, vale.

8:05

Y solo después de ese filtro le pasas

8:08

al LLM grande los cinco mejores de verdad.

8:11

La calidad de la respuesta mejora una barbaridad.

8:14

Inteligente.

8:15

Primero una búsqueda amplia y luego un filtro

8:18

preciso.

8:19

Me gusta.

8:20

También he leído sobre la fragmentación consciente del

8:23

contexto.

8:24

Context-aware chunking.

8:25

Exacto.

8:27

Va de la mano con lo que decíamos

8:28

antes.

8:29

No vale con cortar un texto cada mil

8:31

caracteres y ya.

8:32

Hay que respetar la estructura.

8:33

Hay que buscar los límites naturales del documento.

8:37

El final de un párrafo, un título, el

8:39

pie de una tabla… Se trata de preservar

8:41

el sentido.

8:43

Es que la calidad de lo que metes

8:44

en la base de datos tiene un impacto

8:46

directo en la calidad de lo que sacas.

8:48

Basura entra, basura sale.

8:50

De toda la vida.

8:51

Así es.

8:52

Luego, hay otra estrategia muy potente.

8:55

El agentic RAG.

8:57

El ra-agéntico.

8:59

Esto ya suena a ciencia ficción.

9:01

Bueno, un poco.

9:03

Es darle al sistema la capacidad de razonar

9:05

sobre cómo tiene que buscar.

9:07

O sea, que no siga siempre los mismos

9:09

pasos.

9:10

Eso es.

9:11

El agente analiza la pregunta y decide.

9:13

Si es una pregunta muy concreta, como cuál

9:15

fue el beneficio en 2023, pues hace una

9:17

búsqueda muy específica.

9:19

Pero si es algo más abierto, como cuáles

9:21

son los riesgos estratégicos de la empresa.

9:23

Pues a lo mejor decide que es más

9:25

útil recuperar y leerse el informe anual completo,

9:28

para tener una visión global.

9:30

Es más flexible, pero también menos predecible.

9:33

Claro, hay que programarlo con mucho cuidado para

9:36

que tome buenas decisiones.

9:37

Desde luego.

9:38

Y ya por último, una que a mí

9:40

me parece fascinante, que es el fine tuning

9:43

de los embeddings.

9:44

O sea, afinar al traductor.

9:46

Exacto.

9:47

El modelo que convierte texto en vectores suele

9:49

ser genérico, pero podemos reentrenarlo con datos de

9:53

un dominio muy específico, legal, médico, financiero, para

9:57

que entienda la jerga y los matices de

9:59

ese campo.

10:00

Y lo que se consigue es que un

10:02

modelo de embeddings pequeño, pero muy especializado, supera

10:06

a modelos gigantescos y genéricos en esas tareas

10:08

concretas.

10:09

La comprensión del dominio es mucho más profunda.

10:12

Es increíble.

10:13

Esto me recuerda a un ejemplo que leí.

10:15

Entrenar un modelo no para que busque por

10:17

similitud de significado, sino por sentimiento.

10:20

Sí, es un caso de uso genial.

10:22

De forma que una frase como el pedido

10:24

llegó roto se considere muy similar a la

10:27

web siempre dice que no hay stock.

10:29

No porque usen las mismas palabras, sino porque

10:32

ambas expresan frustración.

10:33

Ese es el poder de la técnica.

10:35

Te permite redefinir qué significa similar para tu

10:38

problema.

10:39

La personalización es total.

10:41

Entonces, si lo unimos todo, queda claro que

10:44

el RAGE no es solo una mejora técnica,

10:46

¿no?

10:46

Es un paso hacia una inteligencia artificial, no

10:49

sé, más transparente, más fiable.

10:51

Totalmente.

10:52

Es que pasamos de una IA que es

10:54

como un sabelotodo que a veces patina… ¿Y

10:57

que no sabes de dónde saca las cosas?

10:59

A una IA que se comporta como una

11:00

investigadora experta, que consulta, contrasta y cita sus

11:04

fuentes.

11:05

Y para una empresa o un gobierno, eso

11:07

es infinitamente más valioso.

11:09

Por eso se está convirtiendo en la arquitectura

11:11

por defecto para resolver problemas del mundo real.

11:14

Y esto me lleva a una reflexión final,

11:16

una pregunta que me queda en el aire.

11:17

A ver, dispara.

11:18

Todas estas estrategias se centran en encontrar información

11:22

que es semánticamente similar a una pregunta.

11:25

Pero, ¿qué pasa cuando la respuesta más útil,

11:28

la más creativa, no está en un pasaje

11:31

que suena parecido, sino en un dato que

11:34

a primera vista no parece tener relación?

11:37

¿Cómo podrían los futuros sistemas aprender a dar

11:40

esos saltos, a conectar piezas de información dispares

11:43

dispares para resolver un problema como hace la

11:47

intuición de una persona experta.

11:50

Llegamos al final por hoy.

11:51

El podcast de BIMPRAXIS está dirigido por un

11:54

humano, Julio Pablo Vázquez.

11:56

Te esperamos en el próximo episodio.

12:09

Y hasta aquí el episodio de hoy.

12:11

Muchas gracias por tu atención.

12:22

Esto es BIMPRAXIS.

12:25

Nos escuchamos en el próximo episodio.

12:43

Música