首页 > 其他分享 >AI大模型原理(通俗易懂版)——武装ChatGPT

AI大模型原理(通俗易懂版)——武装ChatGPT

时间:2024-07-25 17:26:44浏览次数:17  
标签:AI 模型 行动 ReAct 通俗易懂 ChatGPT 推理

ChatGPT之类的AI大语言模型虽然博览群书,但在某些方面也始终存在短板。比如编造事实、计算不准确、数据过时等等。为了应对这些问题,可以借助一些外部工具或数据,把AI武装起来,实现这一思路的框架包括RAG索引增强、PAL程序辅助语言模型、ReAct推理行动结合,这些词是不是晦涩难懂令人头大,没关系我来一个个讲解。

AI大语言模型所拥有的知识受到训练数据的影响,如果训练数据里对某个领域的文本覆盖不多,AI学到的也不多,就没法很好的帮我们回答相关问题。因此在小众细分领域上,AI的表现有可能不尽人意。而且像公司内部数据个人私密文件等也都不可能作为公开大语言模型的训练数据。我们没法指望ChatGPT能帮我们回答相关问题怎么办?一个应对方法就是,我们可以提供外部文档,让模型访问外部知识库,获得实时且正确的数据,生成更可靠和准确的回答。这种架构叫做检索增强生成Retrieval Augmented Generation,简称RAG。

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

因此你可以对外部文档里任何内容进行提问,即使AI模型从来没有受到过那些内容的训练,RAG有利于搭建企业知识库或个人知识库,ChatGPT等一些插件就是基于RAG架构的。官方也推出了上传PDF后对PDF提问的功能,如果你会使用GPT的API,还可以用代码实现自己的增强索引生成。大语言模型还有一个问题是,我们没法把它用作计算器。当我们问它一个数学计算后,它没有真正帮忙做计算,只是在猜下一个最可能出现的token来生成回答。

如果我们想让AI充当网店客服,它虽能巧舌如簧地介绍产品,却也会告诉客户错误的订单总额。这很危险,但是如果我们不要它做计算,而是把计算后的结果告诉它。Program-Aided Language Models程序辅助语言模型,简称PAL。它可以帮助我们应对此类问题。它最早在2022年一篇论文里被提出,它的核心在于我们不让AI直接生成计算结果,而是借助其他善于做计算的工具,比如Python解释器,那我们给AI的要求变成了在涉及计算步骤时,生成得到计算结果所需的代码。

具体来说,首先为了让AI遵循我们的要求,可以借助思维链,如果你不了解思维链可以看上一个篇文章。我们先在提示里通过小样本提示给模型示范如何分步骤思考,写出解决问题所需的变量赋值、数学运算等等代码。让模型照猫画虎,在用户提问后,把用户的问题和我们已有的提示模板进行拼接,一并给到AI,让AI生成代码。接下来把AI返回的回答给到Python解释器,让Python解释器执行并返回计算的结果,这个结果可以再给回到AI,让AI带着计算答案对用户的问题进行妥善回复,那相当于我们借用了大语言模型接收问题的耳朵、思考的脑子、说话的嘴以及代码解释器做运算的手

ChatGPT的Advanced Data Analysis功能可以被看成PAL的一个示例。借助内置的Python解释器ChatGPT能用编程逻辑和代码执行更准确的解答问题。如果会写代码的话,结合GPT的API自行实现程序辅助也是比较容易的。

AI大模型还有一个局限性,那就是他所了解的知识天然受到训练数据日期的影响。比如说模型是去年训练完成的,训练数据里必然不包含今年的新闻。那模型也无从得知训练完成后发生的事情,这被称为知识阶段。那当我们问模型最近发生的事实时,模型要么会回复已经过时的信息,要么会胡编乱造一通,但重新训练模型的成本又是相当高的,也无法彻底解决数据过时的问题。

如果AI能对不了解的知识上网搜索,把找到的答案告诉我们就好了,但他怎么知道要去浏览什么网站、浏览时应该关注什么关键词去找相关信息?2022年一篇标题为ReAct在语言模型中,协同推理与行动的论文提出了ReAct框架。它不是热门前端框架那个React。而是reason和action推理与行动结合的意思。ReAct的核心在于让模型进行动态推理,并采取行动与外界环境互动。它同样可以和思维链结合。我们会用小样本提示展示给模型一个推理与行动结合的框架,也就是针对问题把步骤进行拆分,每个步骤要经过推理行动。观察推理是针对问题或上一步观察的思考,行动是基于推理与外界环境的一些交互。

比如用搜索引擎对关键字进行搜索观察,是对行动得到的结果进行查看。举个例子,如果问一个知识阶段,在2022年1月的AI大语言模型,2022年欧冠的冠军是哪个球队?它是无法回答上来的。但如果把搜索引擎作为AI可交互的工具结合ReAct框架,它得到答案的过程可能会是这样:首先针对问题,它会思考要回答这个问题,需要去查找赛果信息,这个AI能借助Bing,所以它的后续行动是搜索关键字是2022champion,接下来它开始观察行动带来的结果,也正是得到了一系列包含欧冠信息的网页,针对上一步行动的结果,它开始了新一轮推理,某个新闻网站的链接标题提到了决赛,所以可能包含需要的信息,因此对应这一步的行动就是点进那个链接,进入网页后,它观察到有一段话提到了夺冠球队,并且有决赛对手和比分信息,于是针对这些信息,它继续思考,下一步应该进行引用,给用户提供答案,因此最后一步行动就是把查到的信息进行总结,告知用户最终答案。通过ReAct可以看到模型一步步接近答案的任务,解决轨迹与人类很相似了。通过分布推理的思维链模型,不仅可以获得更准确的答案,而且我们也可以通过这些轨迹进行验证。

而且,观察和行动步骤增加了与外界环境的交互,能够帮助模型突破一些固有限制。比如在搜索引擎输入关键字查看网页上的信息等等。可以减少知识阶段带来的影响,Web Browsing功能就是增加了与Bing搜索进行交互的能力,从而能够回答实时信息,这有利于用户对信息来源的可靠性和真实性进行验证。

而且ReAct框架的action行动不专指搜索和浏览网页,而是AI模型所支持的任何行动。比如,如果模型可以和代码解释器交互,那运行代码可以被作为行动选项。如果模型可以访问外部文档,但从文档里查找关键字可以被作为行动选项。如果模型可以调用某个应用的API,那和那个应用交互也可以被作为行动选项。要把不同外部数据和工具为模型所用,用代码实现的话,可以借助LangChain等框架帮助简化构建大语言模型应用程序的流程。 

那希望这篇文章帮助你对生成式AI大语言模型等建立了更多认知,了解了ChatGPT等火爆应用下的技术根基,在他人为层出不穷、眼花缭乱的新应用焦虑时,你能以不变应万变。

标签:AI,模型,行动,ReAct,通俗易懂,ChatGPT,推理
From: https://blog.csdn.net/m0_73672030/article/details/140692402

相关文章