检索增强生成 (RAG) 是一种向大型语言模型 (LLM) 添加新数据源的方法,无需重新训练。
阅读本文后,您将能够:
复制文章链接
检索增强生成 (RAG) 是一个优化大型语言模型 (LLM) 使其适用于特定上下文的流程,方法为 LLM 提供与特定上下文相关的知识库,无需完全重新训练。RAG 是一种快速调整 LLM 以适用特定用例的、经济高效的方法。这是开发人员可以用来微调人工智能 (AI)模型的方法之一。
LLM 经过了海量数据训练,但它们可能无法生成某些场景所需的特定信息。虽然它们大致了解了人类语言的工作原理,但并不总是具备特定主题领域的专业知识。RAG 是解决这个问题的一种方法。
想象一下,一名汽车机械师要修理一辆 1964 年的雪佛兰。尽管这名机械师在经过数千小时的实践后,可能掌握了大量的汽车保养专业知识,但他仍然需要车主的《用户手册》才能有效地进行保养。不过,这名机械师无需重新获得机械师认证,他只需要仔细查阅手册,然后运用已有的汽车常识即可。
RAG 与此类似。它为 LLM 提供一份手册或知识库,以便 LLM 可以将通用知识应用于特定用例。例如,通用 LLM 可能能够生成关于 API 查询工作原理的内容,但它不一定能够告诉用户如何查询某个特定应用的 API。而利用 RAG,LLM 可以通过链接到应用的技术文档来调整生成的具体内容,使其适用于该应用。
通常,LLM 收到查询后,它会根据预先存在的参数和训练来处理该查询。
RAG 让 LLM 能够参考“外部数据”,即:LLM 训练数据集中未包含的数据库。因此,与 LLM 的常规工作方式相比,采用 RAG 的 LLM 会使用外部数据来优化答案,因此,得名检索(首先检索外部数据)增强(利用此类数据改进回复)生成(创建答案)。
假设上述示例中的汽车机械师想要使用 LLM,而不是直接查阅车主手册。使用 RAG,LLM 可以将查阅车主手册直接纳入其流程。虽然该 LLM 可能没有接受过经典款汽车手册的训练(或者,如果此类信息包含在训练数据中,那可能也只占很小的比例),但它可以使用 RAG 生成相关且准确的查询。
为了让 LLM 能够使用和查询外部数据源(例如汽车手册),首先会将数据转换为向量,然后将其存储在向量数据库。此过程会使用机器学习模型,生成数据集中项目的数学表示。(每个“向量”都是一个数字数组,例如 [-0.41522345,0.97685323...]。)
用户发送一个提示后,LLM 会将该提示转换为一种向量,然后搜索从外部数据源创建的向量数据库,以查找相关信息。它会将这些信息添加为提示的附加上下文,然后通过典型模型来运行增强提示,以创建答案。
使用 RAG 微调 LLM 的优点包括:
一些潜在的缺点是:
RAG 聊天机器人是一种基于 LLM 的聊天机器人,通过 RAG 专门针对特定用例进行了优化。RAG 连接到一个或多个与聊天机器人运行环境相关的外部数据源。用于汽车修理厂的 RAG 聊天机器人可以访问汽车文档;对于修理厂的机械师来说,这比向通用 LLM 聊天机器人提问更有用。
低秩自适应 (LoRA) 是另一种微调模型的方法,也就是说,无需完全重新训练模型即可适应特定上下文。但是,LoRA 确实需要调整模型参数,而 RAG 则完全不改变模型参数。单击此处,了解关于 LoRA 的更多信息。
AutoRAG 为开发人员设置和管理 RAG 管道。它连接索引、检索和生成所需的工具,并通过定期步数据与索引来保持及时更新所有内容。设置完成后,AutoRAG 会在后台索引内容,并提供实时查询答案。了解 AutoRAG 的工作原理。
入门
人工智能
机器学习
大数据
词汇