Buenas, esto es BIMPRAXIS, el podcast donde el
BIM se encuentra con la inteligencia artificial.
Exploramos la ciencia, la tecnología y el futuro
desde el enfoque de la arquitectura, ingeniería y
construcción.
¡Empezamos!
Hola, humanas y humanos.
Aquí estamos con un nuevo episodio de BIMPRAXIS.
Hoy continuamos con la serie dedicada a los
RAG, Retrieval Augmented Generation, y los vamos a
comparar con los CAG o Caché Augmented Generation.
Veremos las ventajas, los inconvenientes de un método
y otro, y también la solución híbrida.
Pues sí, la misión de hoy es analizar
una disyuntiva que es fundamental en la arquitectura
de la IA ahora mismo.
Por un lado, el método que ya conocemos,
RAG, que funciona como un investigador que consulta
una biblioteca en tiempo real.
Y por otro, el aspirante.
Por otro, el aspirante, CAG, que es más
como un experto que se ha memorizado la
biblioteca entera antes de empezar.
Vamos a analizar la velocidad, la precisión y,
sobre todo, cómo su combinación podría definir el
futuro de los sistemas de conocimiento en IA.
Un investigador frente a un sabio memorista.
Me gusta la metáfora.
Muy bien, pues vamos a desgranar esto a
fondo.
Para poner a todo el mundo en la
misma página, si te parece, recordemos brevemente que
es RAG.
Ha sido la solución, bueno, la solución de
facto durante el último par de años para
conectar los modelos de lenguaje con información externa,
¿cierto?
Exacto.
RAG, o Generación Aumentada por Recuperación, es un
sistema de dos pasos.
Cuando recibe una pregunta, lo primero, el primer
paso, es la recuperación.
La búsqueda.
La búsqueda, sí.
Un componente del sistema busca en una base
de datos externa, que suele ser una base
de datos vectorial, los fragmentos de información más
relevantes.
Y el segundo paso es la generación.
Vale.
Esos fragmentos recuperados se meten en el prompt
junto a la pregunta original y se le
entrega todo al modelo para que elabore la
respuesta.
Es la forma de anclar al modelo a
la realidad, por así decirlo, para evitar que
invente datos, las famosas alucinaciones.
Precisamente.
Y para asegurar que sus respuestas se basan
en información fresca, no solo en los datos
con los que fue entrenado, que pueden tener
meses o años.
Claro.
Es ideal para bases de conocimiento enormes o
que cambian constantemente.
Piensa en noticias, informes de bolsa, historiales médicos.
Suena como la solución perfecta, pero los documentos
que hemos revisado para este análisis señalan varias
fricciones importantes.
Y aquí es donde la cosa se pone
interesante.
Así es.
A pesar de sus ventajas, RAG tiene tres
inconvenientes principales.
El primero, y más evidente para quien lo
usa, es la latencia.
La espera.
A nadie le gusta ver el cursor parpadeando
mientras el chatbot piensa.
Exacto.
Ese proceso de búsqueda, de recuperación, de codificar
la pregunta, buscar, recuperar, todo eso añade un
retardo de varios segundos.
Y en una conversación eso rompe la experiencia.
Totalmente.
¿Y el segundo problema?
La complejidad de la arquitectura.
Y esa complejidad no es solo un dolor
de cabeza técnico.
Me imagino que también tiene un coste económico,
¿no?
Has dado en el clavo.
Cada uno de esos componentes, la base de
datos vectorial, los modelos de embedding, el sistema
de indexación, todo tiene un coste de mantenimiento,
de computación, de operación.
Más piezas móviles, más puntos de fallo.
Y más facturas a final de mes.
Y eso nos lleva a la tercera y
quizá más crítica fricción, los errores de recuperación.
Vale.
El sistema es tan bueno como su eslabón
más débil, y en RAG ese eslabón suele
ser el recuperador.
¿Puedes ponernos un ejemplo?
No es solo que no encuentre nada, ¿verdad?
Claro.
Hay dos tipos de error.
Podríamos tener un error de baja precisión, donde
el sistema te trae muchos documentos, pero la
mayoría son irrelevantes, son ruido.
Y el modelo se vuelve loco con tanta
información basura.
Exacto.
Y la respuesta se degrada.
O peor, un error de baja exhaustividad, donde
no encuentra el fragmento clave, el que tiene
la respuesta.
Y ahí da igual lo bueno que sea
el modelo, si no le das la materia
prima correcta.
Basura entra, basura sale.
El clásico.
De acuerdo.
Entonces tenemos latencia, una complejidad que es costosa
y el riesgo constante de que el recuperador
falle.
Un caldo de cultivo perfecto para que surja
una alternativa.
Y esa es CAG.
Caché Augmented Generation.
¿En qué consiste?
Pues CAG representa un cambio de mentalidad radical,
y es posible gracias a una evolución espectacular
de los modelos recientes, las ventanas de contexto
gigantescas.
Que cada vez son más y más grandes.
Hablamos de modelos que ya procesan cientos de
miles o millones de tokens de una vez.
Libros enteros.
La idea de CAG es simple pero muy
potente.
En lugar de buscar la información fuera, ¿por
qué no la precargamos toda dentro del modelo
desde el principio?
¿Te refieres a meter toda la base de
conocimiento directamente en el prompt, como un anexo
gigantesco?
Esencialmente sí.
El flujo de trabajo es completamente distinto.
Primero cargas todos los documentos en el contexto
del modelo.
Y luego haces un paso clave.
Precomputas la caché de clave-valor, la KV-Caché.
A ver, explícanos eso un poco más.
Es, a grandes rasgos, el estado interno del
modelo, sus cálculos, después de haber asimilado todo
ese conocimiento.
Es como si el modelo se estudiara todo
el temario de una sentada antes del examen.
Y ese estado de ya me lo he
estudiado se guarda.
La analogía es perfecta.
Ese estudio es un coste computacional que asumes
una sola vez, al principio.
Una vez generada la caché, cada nueva pregunta
simplemente se añade al final de ese contexto
ya procesado.
Con lo cual, no hay búsqueda externa.
Ninguna.
Ya sabe todo el contenido y puede generar
la respuesta casi al instante.
Ese coste único suena importante.
¿Hablamos de un proceso que tarda minutos, horas?
Porque podría ser un cuello de botella.
Es una pregunta muy pertinente.
No es trivial.
Generar la caché para, digamos, unas 300 páginas
puede llevar varios minutos en una GPU de
gama alta.
Es una inversión inicial.
Pero se amortiza.
Se amortiza muy rápido.
Si el sistema va a recibir miles de
consultas, el tiempo que te ahorras en cada
una compensa con creces esa inversión.
Entendido.
Entonces, si aceptamos ese coste, SIG parece que
resuelve de un plumazo los tres grandes problemas
de RAG.
Latencia, complejidad y errores.
Simplemente desaparecen.
En su mayor parte sí, desaparecen.
La latencia de recuperación se evapora porque no
hay recuperación.
La arquitectura se simplifica muchísimo.
Adiós a la base de datos vectorial, al
indexador… Y los errores de recuperación son imposibles.
Imposibles, porque el modelo no tiene que elegir
qué fragmentos ver.
Tiene una visión completa, holística, de todo el
conocimiento desde el primer momento.
Vale, pongámoslos frente a frente.
Si SIG es tan bueno.
La pregunta obvia es, ¿por qué no lo
usamos para todo?
¿Qué dicen los datos de rendimiento que hemos
analizado?
Aquí es donde los resultados son realmente impactantes.
En pruebas con basas de conocimiento como Hotpot
QA, las diferencias de velocidad son abismales.
Un sistema CAG responde de media en 0,85
segundos.
¿0,85?
Sí.
Un sistema RAG comparable tarda unos 9,25 segundos.
Eso es más de 10 veces más rápido,
una diferencia brutal para cualquier aplicación interactiva.
Y se pone mejor.
En conjuntos de datos un poco más grandes,
la diferencia se dispara.
Las fuentes hablan de 2,3 segundos para CAG
frente a unos increíbles 94,3 segundos para RAG.
Un momento, es una mejora de hasta 40
veces.
Hasta 40 veces.
Suena casi demasiado bueno para ser verdad.
En estas comparativas estamos seguros de que se
comparan sistemas optimizados en ambos lados.
O sea, no podría ser un escenario ideal
para CAG contra un RAG que no está
del todo afinado.
Es una dosis de escepticismo muy saludable.
Y aunque la optimización siempre es un factor,
la diferencia aquí es arquitectónica.
RAG implica, por narices, una llamada de red
a una base de datos, una búsqueda… Unos
pasos que no te puedes saltar.
Exacto.
CAG elimina todo eso.
Es la diferencia entre buscar un dato en
un libro que tienes en otra habitación o
tenerlo ya abierto sobre la mesa.
Incluso el RAG más optimizado del mundo tendrá
siempre ese cuello de botella.
Vale, aceptamos la ventaja en velocidad.
Pero la velocidad no sirve de nada si
las respuestas son peores.
¿Qué pasa con la precisión?
Uno podría pensar que darle al modelo cientos
de páginas a la vez podría confundirlo.
Pues, contra toda intuición, ocurre lo contrario.
Aquí también hay sorpresas.
Lejos de confundirse, los estudios muestran que CAAG
suele obtener puntuaciones de precisión ligeramente superiores.
Ah.
Sí.
Por ejemplo, una fuente reporta una puntuación BERT
score de 0,7759 para CAG frente a 0,751
para RAG.
¿Y cuál es la teoría detrás de esa
mejora?
La hipótesis es que, al tener la visión
global de todo el contexto, el modelo puede
realizar razonamientos más complejos.
Puede conectar una idea del documento A con
un detalle del documento Z.
Algo que un RAG solo podría hacer si
el recuperador, por casualidad, trae justo esos dos
fragmentos.
Exactamente.
Si falla en recuperar uno, la conexión se
pierde.
CAG, al tener la panorámica completa, no sufre
esa limitación.
Puede encontrar relaciones sutiles entre distintas partes del
conocimiento.
De acuerdo.
Recapitulo.
Es drásticamente más rápido y, sorprendentemente, un poco
más preciso.
Aquí tiene que estar la trampa.
¿Cuál es el talón de Aquiles de CAG?
Tiene dos, y son muy importantes.
Son las razones por las que RAG no
va a desaparecer.
La primera, el conocimiento es estático.
La caché es una foto fija.
Claro.
Si tu base de datos se actualiza constantemente,
precios de acciones, noticias, el inventario de una
tienda, la caché se queda obsoleta al instante.
Y para actualizarla tendrías que regenerar toda la
caché, con el coste que eso implica.
Inviable para datos en tiempo real.
Exacto.
Y la segunda gran limitación es el propio
tamaño de la ventana de contexto.
Aunque son enormes, tienen un límite.
Una ventana de 128.000 tokens puede albergar unas
300 páginas.
Que es mucho.
Es mucho, pero es insuficiente para bases de
datos a escala de una gran empresa, que
pueden tener millones de documentos.
O sea que, por ejemplo, no podrías cargar
todo el boletín oficial del Estado, o toda
la documentación técnica de una multinacional.
Simplemente no cabe.
Correcto.
RAH, en cambio, tiene un tamaño de corpus
teóricamente ilimitado, porque solo carga los pocos fragmentos
que necesita en cada consulta.
Lo que nos lleva a la conclusión lógica.
No se trata de que una tecnología vaya
a reemplazar a la otra.
Para nada.
Sino de que son herramientas diferentes para problemas
diferentes.
O, como sugieren varias de las fuentes, de
que la solución definitiva podría ser usarlas juntas.
Esa es precisamente la dirección que está tomando
la industria, los sistemas híbridos.
Y la estrategia más común es la de
clasificar los datos como calientes y fríos.
¿Puedes explicar qué significa eso en la práctica?
¿Qué es un dato caliente frente a uno
frío?
Piensa en los datos calientes como el núcleo
de conocimiento estable y de acceso muy frecuente.
Para una empresa, pues sus políticas internas, manuales
de producto, las preguntas frecuentes.
Lo que se pregunta siempre.
Eso es.
Esa información se carga en la capa CAG.
Al estar en la caché, las respuestas a
las preguntas más comunes son instantáneas.
Y supongo que RAG se encarga de todo
lo demás, del conocimiento frío.
Exacto.
El conocimiento frío son los datos de nicho,
los que son muy voluminosos o los que
cambian a gran velocidad.
En un sistema híbrido, el flujo sería así.
Llega la pregunta, el sistema intenta responderla con
la capa CAG.
Que es la rápida.
La rapidísima.
Si encuentra la respuesta, perfecto.
Si no, o si la información no es
suficiente, la consulta se escala y se pasa
a la capa RAG para que haga una
búsqueda en tiempo real en la base de
datos completa.
Demos un ejemplo más para solidificar la idea.
Pensemos en un asistente para una tienda online.
Los datos calientes en la caché de CAG
serían las políticas de devolución, las especificaciones de
los productos más vendidos.
Perfectamente ilustrado.
Y si un cliente pregunta, ¿dónde está mi
pedido con número X?
O, ¿tenéis la talla M de esta camiseta
en stock ahora mismo?
Esa es una consulta fría.
Claro, eso cambia a cada minuto.
El sistema activaría la capa RAG para consultar
en tiempo real la base de datos de
pedidos o el sistema de inventario.
Así combinas la velocidad de CAG para el
80% de las consultas comunes con la flexibilidad
de RAG para el 20% restante.
¿Esto implica que el sistema necesita una especie
de director de orquesta que decida qué camino
tomar con cada pregunta?
Correcto, y esa es un área de investigación
muy activa.
Ya existen mecanismos de enrutamiento inteligente.
Uno de los estudios que revisamos menciona un
sistema llamado Self-Route, que entrena al propio modelo
de lenguaje para que sea él quien decida.
El propio modelo.
Sí, le llega una pregunta y el modelo
predice.
¿Puedo responder esto con la información de mi
caché o necesito pedir ayuda externa?
Así que el modelo se convierte en su
propio controlador de tráfico de conocimiento y eso
requiere un entrenamiento muy específico.
Generalmente requiere un fine tuning para esa tarea
de clasificación.
Se le entrena con miles de ejemplos, pero
lo fascinante es que estos sistemas son muy
eficientes.
El estudio de Selfroot demostró que podía alcanzar
la misma calidad de respuesta, pero usando de
media solo el 38% de los tokens.
Es lo mejor de ambos mundos, entonces.
Velocidad y eficiencia.
Exacto.
Notebooks LM, aunque entre bambalinas del podcast siempre
está Julio Pablo Vázquez, que sigue con su
vigilancia tecnológica en alerta constante para pescar los
mejores temas y de más actualidad.
Además, nos dice que os manda saludos y
que está muy contento porque acaba de desarrollar
un sistema propio con Python y Javascript y,
por supuesto, IA, para automatizar el proceso de
edición, descripción, transcripción, publicación y programación de todos
los episodios.
Ya veis, no solo le vamos a las
parrafadas, también aplicamos el conocimiento a la práctica
diaria.
Gracias a este sistema, que hemos bautizado como
Autopod, ahora podemos dedicar más tiempo al factor
humano y minimizar errores.
Quizá un día le dediquemos un episodio a
contaros cómo creamos cada episodio, porque hay mucha
IA y herramientas implicadas.
¿Os parece interesante?
Y para cerrar, una reflexión final que se
deriva de toda esta discusión.
La tensión entre RAG y CAC, impulsada por
la explosión de las ventanas de contexto, nos
obliga a plantearnos una pregunta de diseño fundamental
para el futuro.
CAC favorece un enfoque monolítico, centralizar todo el
conocimiento posible en un único y masivo prompt,
un gran cerebro precargado.
Mientras que RAG es modular.
RAG, por el contrario, aboga por un enfoque
modular, mantener el conocimiento externo, descentralizado, en una
biblioteca que se consulta sólo cuando es necesario.
La pregunta que debemos hacernos es, ¿qué tipo
de arquitectura de IA queremos construir?
¿Sistemas con un único y enorme cerebro que
lo sabe todo de antemano?
¿O sistemas con un cerebro más ágil y
especializado que es experto en consultar una vasta
red de bibliotecas externas?
Las decisiones que los arquitectos de IA tomen
hoy entre estos dos modelos definirán la flexibilidad,
la escalabilidad y, en última instancia, la robustez
de la inteligencia artificial del mañana.
Y hasta aquí el episodio de hoy.
Muchas gracias por tu atención.
Esto es BIMPRAXIS.
Nos escuchamos en el próximo episodio.
¡Gracias!