Buen punto, sin duda… no hay una respuesta sencilla en mi opinión.
Supongo que esto depende del caso de uso.
RAG funciona bien para algunas aplicaciones, pero para otros casos objetivo bastante deterministas (por ejemplo, preguntas y respuestas de clientes, pagos, medicina, etc.), yo y otros hemos tenido problemas para obtener una buena precisión con la búsqueda vectorial RAG durante el último año. Es decir, el bot omitirá cosas o inventará cosas (bajo recall, baja precisión en términos de IR), lo cual está bien documentado por Stanford, Google, etc.
Entonces surge la pregunta… ¿por qué lanzar un montón de fragmentos al LLM si se le puede dar todo el corpus? Al menos con la inyección de contexto, cuando el LLM no es preciso, tienes menos cosas que ajustar.
Ok, no va a funcionar para vastas bibliotecas de documentos/código… pero para bases de contenido pequeñas y moderadas parece funcionar muy bien hasta ahora… estoy trabajando en un proyecto que está probando formalmente esto. ¡Más pronto… gracias!
PD. → Para hacer las cosas aún más interesantes… he tenido buena suerte con la inyección de contexto + ajuste fino… ¡y hay enfoques emergentes que combinan RAG e inyección de contexto! … etc. etc.
también ver: