Es difícil saber si la gente odia amar RAG o ama odiar RAG.
Según discusiones recientes en X y HN, RAG debería estar muerto, otra vez. Esta vez, las críticas se centran en la sobre-ingeniería de la mayoría de los frameworks RAG, que, como demostraron @jeremyphoward @HamelHusain @Yampeleg, podría lograrse con 20 líneas de código Python.
La última vez que tuvimos esta vibra fue poco después del lanzamiento de Claude/Gemini con una ventana de contexto súper larga. Lo que hace que esta vez sea peor es que incluso el RAG de Google genera resultados graciosos como mostraron @icreatelife @mark_riedl, lo cual es irónico porque en abril, en Google Next en Las Vegas, Google presentó RAG como la solución de fundamentación.
tagDos problemas de RAG
Veo dos problemas con los frameworks y soluciones RAG que tenemos hoy.
tagSolo alimentación hacia adelante
Primero, casi todos los frameworks RAG implementan solo una ruta de "alimentación hacia adelante" y carecen de una ruta de "retropropagación". Es un sistema incompleto. Recuerdo a @swyx, en uno de los episodios de @latentspacepod, argumentando que RAG no será eliminado por la ventana de contexto largo de los LLMs ya que:
- el contexto largo es costoso para los desarrolladores y
- el contexto largo es difícil de depurar y carece de descomponibilidad.
Pero si todos los frameworks RAG se centran solo en la ruta de avance, ¿cómo es más fácil de depurar que un LLM? También es interesante ver cuántas personas se emocionan demasiado con los resultados automágicos de RAG de algunas pruebas de concepto aleatorias y olvidan completamente que agregar más capas de avance sin ajuste hacia atrás es una idea terrible. Todos sabemos que agregar una capa más a tus redes neuronales expande su espacio paramétrico y, por lo tanto, la capacidad de representación, permitiéndole hacer más cosas potenciales, pero sin entrenamiento, esto no es nada. Hay algunas startups en el Área de la Bahía trabajando en evaluación—esencialmente tratando de evaluar la pérdida de un sistema de alimentación hacia adelante. ¿Es útil? Sí. Pero ¿ayuda a cerrar el ciclo de RAG? No.
Entonces, ¿quién está trabajando en la retropropagación de RAG? Hasta donde sé, no muchos. Estoy más familiarizado con DSPy, una biblioteca de @stanfordnlp @lateinteraction que establece su misión en eso.
Pero incluso para DSPy, el enfoque principal está en optimizar demostraciones de pocos ejemplos, no el sistema completo (o al menos desde el uso comunitario). Pero ¿por qué es difícil este problema? Porque la señal es muy escasa, y optimizar un sistema de pipeline no diferenciable es esencialmente un problema combinatorio—en otras palabras, extremadamente difícil. Aprendí algo de optimización submodular durante mi doctorado, y tengo la sensación de que esta técnica será bien utilizada en la optimización de RAG.
tagLa fundamentación en estado salvaje es difícil
Estoy de acuerdo en que RAG es para fundamentación, a pesar de los divertidos resultados de búsqueda de Google. Hay dos tipos de fundamentación: fundamentación de búsqueda, que utiliza motores de búsqueda para extender el conocimiento mundial de los LLMs, y fundamentación de verificación, que utiliza conocimiento privado (por ejemplo, datos propietarios) para hacer verificación de hechos.
En ambos casos, cita conocimiento externo para mejorar la factualidad del resultado, siempre que estos recursos externos sean confiables. En el divertido resultado de búsqueda de Google, uno puede ver fácilmente que no todo en la web es confiable (¡sí, gran sorpresa, ¿quién lo hubiera pensado!), lo que hace que la fundamentación de búsqueda se vea mal. Pero creo que solo puedes reírte de esto por ahora. Hay algunos mecanismos de retroalimentación implícitos detrás de la interfaz de usuario de Google Search que recopilan las reacciones de los usuarios a esos resultados y ponderan la credibilidad del sitio web para una mejor fundamentación. En general, debería ser bastante temporal, ya que este RAG solo necesita superar el arranque en frío, y los resultados mejorarán con el tiempo.



RAG fue presentado como una solución de grounding en la conferencia Google Next.
tagMi Opinión
RAG no está ni muerto ni vivo; así que dejen de discutir sobre ello. RAG es solo un patrón algorítmico que puedes usar. Pero si lo conviertes en el algoritmo y lo idolatras, entonces estás viviendo en una burbuja que tú mismo creaste, y esa burbuja explotará.