Retrieval Augmented Generation (RAG)
Retrieval Augmented Generation (RAG)
RAG(Retrieval Augmented Generation)是现代AI应用中最实用且广泛使用的模式之一。它解决了一个根本问题:语言模型只知道它们被训练过的内容。它们不知道你的特定文档、你的私人数据或最新信息。RAG让它们无需重新训练就能访问这些知识。
思路很简单。当用户提问时,你首先在自己的知识库中搜索相关信息,然后将问题和搜索结果一起交给语言模型。模型利用检索到的信息来回答问题。它不再仅仅依赖训练数据,而是可以访问新鲜、具体且相关的上下文。
检索部分通常使用我们在前一篇文章中讨论的嵌入。你将所有文档嵌入并存储在向量数据库中。当问题进来时,你嵌入问题,找到最相似的文档,并将它们传递给模型。这比试图将所有知识塞进模型的上下文窗口要高效得多。
RAG相比微调有几个优势。它不需要重新训练模型,因此设置更便宜、更快。你可以通过添加或删除文档来即时更新知识库。模型还可以引用其来源,准确显示它用于回答每个问题的文档,这建立了信任并使验证成为可能。
RAG的主要挑战是检索质量。如果搜索找不到正确的文档,即使模型知道答案,也无法正确回答。改进检索涉及选择合适的嵌入模型、适当地切分文档,以及有时使用结合语义和关键词匹配的混合搜索。良好的检索是良好RAG系统的关键。
