学习记录(8):RAG and PAL and ReAct

发布于:2024-08-02 ⋅ 阅读:(37) ⋅ 点赞:(0)

咱就是说 习惯了做笔记
不做笔记 这知识真的是一点记不住啊(实则是脑子笨0.o
那咱就狠狠的来记住这个知识点0.o

参考学习:B站GenJi是真想教会你-《【包教包会】一条视频速通AI大模型原理》


一、RAG:检索增强生成

LLM所拥有的知识受到训练数据的影响,如果训练数据里对某个领域的文本覆盖不多,那么AI学到的也不多,就没办法很好地帮我们回答相关问题。
因此,在小众细分领域上,AI的表现有可能不尽人意。而且,像公司内部数据、个人私密文件等,也都不可能作为公开大语言模型的训练数据。我们没法指望ChatGPT能帮我们回答相关问题。

概念:RAG是一种结合了检索和生成的模型架构。它首先从一个大型文档库中检索相关信息,然后使用生成模型(如GPT-3)基于检索到的信息生成回答。这种方法可以显著提高生成内容的准确性和相关性。

应对策略:我们可以提供外部文档,让模型访问外部知识库,获得实时且正确的数据生成更可靠和准确的回答。
↑上述架构就叫做Retrieval Augmented Generation(RAG)

具体步骤
首先,外部知识文档要先被切分成一个个段落。
因为,大语言模型一次性能接受的文本长度有限,
然后,每个段落会被转成一系列向量。
向量可以被看作是一串固定长度的数字,然后储存进向量数据库里。
当我们提问的时候,这个提示也会被转换为向量,
然后查找向量数据库里,和用户的查询向量最为接近的段落向量。
找到以后,段落信息会和原本的用户查询问题组合到一起,一块传给LLM,LLM就能把外部文档的段落作为上下文,基于里面的信息给出更严谨的回答。
因此,可以对外部文档里任何内容进行提问,即使AI模型从来没有受到过那些内容的训练。

优势: RAG有利于搭建企业知识库或个人知识库

二、PAL:程序辅助语言模型

概念:PAL是一种结合了编程和语言模型的技术。它利用编程语言的逻辑和计算能力来辅助语言模型完成复杂的任务。通过这种方式,PAL可以处理需要精确计算和逻辑推理的问题。

具体步骤
问题分解:将复杂问题分解为可以通过编程解决的子问题。
编程求解:使用编程语言(如Python)解决这些子问题。
语言生成:将编程结果与语言模型结合,生成自然语言回答。

《ChatGPT是无法直接进行计算的》
不让LLM自己生成结果,而是用其他计算工具。

相当于借用了大模型《接收问题的耳朵、思考的脑子、说话的嘴》
以及代码解释器做运算的手

三、ReAct:推理行动结合

LLM天然的缺陷为 局限于训练数据的日期影响。
LLM可以结合搜索引擎,做出实时的回答。
《不专职与搜索引擎结合》

可以借助LangChain工具
在这里插入图片描述
概念:ReAct是一种结合了推理和行动的模型架构。它不仅能够进行复杂的逻辑推理,还能基于推理结果采取行动。这种方法特别适用于需要多步推理和决策的任务。

具体步骤
推理阶段:使用语言模型进行多步推理,逐步接近问题的解决方案。
行动阶段:基于推理结果采取具体行动,如调用API、执行数据库查询等。

例子:假设用户问:“请帮我预订一家明天晚上7点的餐厅。” 系统会先进行推理,确定用户需求,然后采取行动预订餐厅。
在这里插入图片描述