Construyendo Sistemas RAG Eficientes: Un Análisis Profundo de devv.ai | Jiayuan (Forrest)

contenido

devv.ai es cómo construir un sistema RAG eficiente 🔎 Prometimos compartir un poco sobre la tecnología subyacente de devv.ai en esta serie de hilos, donde compartiremos nuestras prácticas específicas en este proyecto. Este es el primer artículo. También hemos abierto un repositorio de GitHub específicamente para enviar comentarios y sugerencias. Bienvenidos los comentarios. 🧵github.com/devv-ai/devv

RAG 的全称是:Retrieval Augmented Generation(检索增强生成) 最初来源于 2020 年 Facebook 的一篇论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(是的,你没有看错,2020 年就有这项技术了)。

Este documento aborda un problema muy simple: cómo permitir que un modelo de lenguaje utilice conocimiento externo para la generación. Normalmente, el conocimiento de los modelos pre-entrenados se almacena en los parámetros, lo que hace que el modelo no tenga acceso al conocimiento fuera del conjunto de entrenamiento (por ejemplo, datos de búsqueda, conocimiento de la industria). La práctica anterior implicaba volver a ajustar el modelo pre-entrenado cada vez que se obtenía nuevo conocimiento.

A continuación está el contenido que necesita ser traducido : 'Este tipo de enfoque presenta varios problemas: 1. Se necesita ajustar finamente cada vez que hay un nuevo conocimiento 2. El costo de entrenar el modelo es muy alto. Por lo tanto, este artículo propone el método RAG, donde el modelo pre-entrenado es capaz de comprender nuevos conocimientos, por lo que simplemente le proporcionamos el nuevo conocimiento que queremos que el modelo comprenda a través de un prompt.'

Entonces, un sistema RAG mínimo está compuesto por 3 partes: 1. Modelo de lenguaje 2. Conjunto de conocimientos externos requeridos por el modelo (almacenados en forma de vectores) 3. Conocimientos externos necesarios para el escenario actual

langchain, llama-index 本质上就是做的这套 RAG 系统(当然还包括构建在 RAG 上的 agent)。 如果理解了本质,其实是没有必要再额外增加一层抽象的,根据自己的业务情况来搭建这套系统即可。 例如,我们为了保持高性能,采用了 Go + Rust 的架构,能够支持高并发的 RAG 请求。

'Simplificar el problema, ya sea que esté construyendo cualquier tipo de RAG, optimizar este sistema implica optimizar estos 3 módulos por separado.'

1)El modelo de lenguaje ¿por qué este artículo de 2020 solo se ha vuelto popular este año? Una razón principal es que los modelos base anteriores no eran lo suficientemente capaces. Si el modelo base es tonto, incluso si se le proporciona un conocimiento externo rico, el modelo no puede razonar sobre ese conocimiento. También se puede ver que hay una mejora en algunos benchmarks del artículo, pero no es particularmente significativa.

Resumir
[devv.ai](http://devv.ai/) 是一个构建高效的 RAG(Retrieval Augmented Generation)系统的项目。RAG系统由语言模型、模型所需的外部知识集合和当前场景下需要的外部知识组成。该系统采用了Go + Rust架构,支持高并发的RAG请求。RAG的出现得益于GPT-3模型的出现,以及大量的开源和闭源基座模型的出现。外部知识集合的存储采用了embedding模型和传统的relation db + Elasticsearch。在retrieve阶段,对原始的knowledge数据进行了处理,以保证获取到的数据是结构化的,提升召回的准确率。该系统已经在搜索引擎Perplexity上取得了成功,拥有了大量的流量和高估值。然而,要做到90分并不容易,每一步都需要根据实际业务场景来多次尝试。