在生成式人工智能领域,每天都会出现一个新的缩略语。其中最近的一个热词是RAG,含义是检索增强生成(retrieval augmented generation)。它不仅仅是一个缩略语,还代表了LLM领域的一个重大突破。但它到底是什么呢?
RAG之所以受到欢迎,是因为它结合了检索模型和生成模型的优点。基本上,RAG是将一个新的数据库附加到基本模型上,让模型从中检索新的信息,然后生成信息。
这有助于减少模型中的幻觉。大多数情况下,这是一个向量数据库,或者在某些情况下,比如GPT-4,它是互联网。
SpringtownAI的创始人兼首席执行官Dhruv Motwani还讨论和演示了RAG的使用,并探讨了其架构和功能。参与者能够在其AWS账户上部署应用程序并测试模型的幻觉,在使用RAG时幻觉较小。
“我们目前最常见的标准RAG流程完全不了解你的数据的上下文。在不查阅数据的情况下,它将把查询加上原始查询发送给GPT,”Arcee.ai的联合创始人Mark McQuade表示。
McQuade和他的团队在主LLM之上构建了一个名为DALM的End2End RAG系统。他说,最佳的使用方式是将其与专门领域的模型配对使用,而不是与大量不必要数据的较大模型配对使用。
在深入研究RAG之前,了解AI开发人员在使用AI模型时的选择是非常重要的。他们可以从头开始构建模型,对现有模型进行微调,或者采用检索增强生成的方法。每种方法都有其优缺点,模型越大,出现幻觉的可能性越大。
从头开始构建可能是一项昂贵而耗时的工作。例如,OpenAI投资了超过1亿美元来训练其GPT-4模型。另一方面,使用额外数据对现有模型进行微调是一个可行的选择,但它存在模型“遗忘”部分原始训练数据的风险。
RAG将检索模型和生成模型结合起来,提供有上下文意识的回答。检索模型用于访问来自现有知识源(如数据库或在线文章)的信息。然后,生成模型将这些检索到的信息综合成连贯、与上下文相关的回答。
RAG的关键优势在于它能够提供准确且独特的回答,类似于人类语言,而不仅仅是总结检索到的数据。
在本质上,RAG实质上是高级的提示工程。它的重点是保持模型稳定,并优化其使用文本“填充”上下文窗口以回答特定问题的能力。这种方法对于需要学习AI工程技能并掌握一组基本提示来构建RAG/Agent系统的提示工程师尤其有益。
在更复杂的RAG/Agent系统中,不仅仅是一个单一的提示;它涉及一系列协同工作的提示,以提供准确和具有上下文意识的回答。
一些研究人员认为,与较长的上下文窗口相比,RAG可能没有那么有优势,因为两者都提供相同的结果。一项名为“Retrieval meets Long Context Large Language Models”的最新研究比较了RAG和更长的上下文窗口LLM。
这篇论文发现,开源的嵌入模型/检索器的表现优于OpenAI模型。将简单的RAG与4k LLM相结合,可以达到长上下文LLM的性能。
虽然RAG带来了显著的好处,但需要考虑检索信息时可能出现不良回应的情况。Hugging Face的技术负责人Philipp Schmid质疑是否可以教会LLM更加准确和可靠,并引入了Self-RAG。这是一种新颖的方法,用于教授模型何时检索信息以及如何有效地使用它。
Self-RAG涉及创建一个“评论”数据集,以确定何时适合检索信息以及哪些信息是相关的。通过使用检索指南创建“评论”数据集,开发人员可以在合成数据集上训练评论模型。使用提示、评论模型和检索器,开发人员可以生成一个RAG数据集。
在将LLM训练为包含特殊标记以指示模型何时检索或生成回答的RAG数据集后,在推理过程中,模型根据查询自适应地生成特殊标记,以确定是否需要检索。
看来幻觉还会持续一段时间。但就像提示工程一样,现在是学习下一个人工智能工程技能,并赶上流行语了,这次是为RAG系统构建一套基本提示。