检索增强生成(RAG)
Last updated
Last updated
向量检索为核心的 RAG 架构已成为解决大模型获取最新外部知识,同时解决其生成幻觉问题时的主流技术框架,并且已在相当多的应用场景中落地实践。
开发者可以利用该技术低成本地构建一个 AI 智能客服、企业智能知识库、AI 搜索引擎等,通过自然语言输入与各类知识组织形式进行对话。以一个有代表性的 RAG 应用为例:
在下图中,当用户提问时 “美国总统是谁?” 时,系统并不是将问题直接交给大模型来回答,而是先将用户问题在知识库中(如下图中的维基百科)进行向量搜索,通过语义相似度匹配的方式查询到相关的内容(拜登是美国现任第46届总统…),然后再将用户问题和搜索到的相关知识提供给大模型,使得大模型获得足够完备的知识来回答问题,以此获得更可靠的问答结果。
为什么需要这样做呢?
我们可以把大模型比做是一个超级专家,他熟悉人类各个领域的知识,但他也有自己的局限性,比如他不知道你个人的一些状况,因为这些信息是你私人的,不会在互联网上公开,所以他没有提前学习的机会。
当你想雇佣这个超级专家来充当你的家庭财务顾问时,需要允许他在接受你的提问时先翻看一下你的投资理财记录、家庭消费支出等数据。这样他才能根据你个人的实际情况提供专业的建议。
这就是 RAG 系统所做的事情:帮助大模型临时性地获得他所不具备的外部知识,允许它在回答问题之前先找答案。
根据上面这个例子,我们很容易发现 RAG 系统中最核心是外部知识的检索环节。专家能不能向你提供专业的家庭财务建议,取决于能不能精确找到他需要的信息,如果他找到的不是投资理财记录,而是家庭减肥计划,那再厉害的专家都会无能为力。
微调(Fine-tuning) vs RAG:在达到相似结果时,RAG 在成本效率和实时性能方面具有显著优势。同时,微调技术对于数据的质量和数量要求很高。并且应用程序在使用微调模型的可能也需要 RAG 技术的支持。
长文本与 RAG:许多研究证实,LLM 在处理分析长文本时仍然面临着一个问题,即随着文本长度的增加,检索的准确性持续下降。因此,在任何情况下,都可以结合高精度搜索系统(RAG)。 LLM 的长文本能力和 RAG 可以完美地结合在一起,并且可以相互学习各自的长处,弥补各自的不足。
整体而言,RAG 允许大模型访问外部最新信息的数据源,从而弥补相关领域的知识缺口,提升输出的回答与知识的相关性。RAG 能够帮助 LLM 与外部来源检索的可验证实时数据相结合,输出更加准确的答案,使结果变得真实可信,降低不必要的风险。