手记

打造MacOS代理第3部分:利用ReAct提示减少幻觉提升可靠性

生成自playgroundai/playground-v2.51024px-aesthetic

让我们学习如何使用ReAct提示。这种高级提示方法减少了错误信息,让大模型更可靠。
《介绍》

从第一部分和第二部分中,我学到了一些新的东西,并且不断完善将“人类的需求”转化为 Bash 脚本的想法。

我觉得用 osascript 不如直接用 bash 更有效,因为 bash 可以做更多的事情。

我也有探索过模型的微调和精简过程,但看起来成本比我想象中的要高一些,作为我的一个额外学习项目。

然后我发现了一个叫“ReAct”的东西!

什么是 ReAct?

ReAct (https://arxiv.org/abs/2210.03629) 是一种流行的技术,它提供了一种有效的方法来编写提示。

简而言之,你就是不断重复生成答案

思考-行动-观察模式

思考过程是LLM(大规模语言模型)推理下一步应该怎么做。

动作就是你采取的行动

观察到的结果就是这个行动的结果

我之前看过了ReAct那篇论文,但一直没搞清楚怎么把它用起来……怎么写提示来解决我的问题。

意外地拉取了LangChain的代码,搞定啦。

我的看法

请注意,论文中的实际实现与LangChain的不同。

该论文中,通过思想、行动和观察反复迭代,在每次迭代时推断出 openai 的结果,并将结果作为下一次迭代的提示。

但在LangChain中引入了一种一次性推理迭代。你马上就会明白我的意思。

让我们从提示开始吧

行了,咱们直接说重点吧。这是我在LangChain找到的一个原始提示:

    问题:你需要回答的输入问题  
    思考:你应该考虑怎样做  
    行动:采取的动作,应该是 [{工具名称}] 中的一个  
    行动输入:该行动的输入  
    观察:该行动的结果是  
    ...(此思考/行动/行动输入/观察可以重复 N 次)  
    思考:现在我知道了最终答案  
    最终答案:对原始问题的最终回答

看看原文:代码

这是我对“Human wish to bash script bot”改编的第一个草稿,适用于敲击脚本的机器人。

     指令:你需要回答的输入指令  
    思考:你应该始终考虑如何用bash命令来操作  
    操作:相应的bash命令  
    验证:检查操作是否成功的命令  
    ...(这个思考/操作/验证可以重复N次)  
    思考:我现在有了最终的答案  
    Bash脚本:执行所有操作的脚本  

    指令:{question}
ReAct 完整版在线

如果你想看看实际的情况,这里就是!

PartRock(帕特洛克)AWS

巴斯赫·派瑞摇滚 AWS (点击这里进入帕科扎的新应用)[https://partyrock.aws/u/pacozaa/WbonnT3dw/new-app-WbonnT3dw]

Huggingface 聊天室

Basher Huggingface 聊天室

我建议你在开始日常使用它作为助手之前,添加几个简短的指令或示例。

如果你想更深入地做这件事,最终结果将被注入到 bash 命令 eval 中,这样我们就需要一个代理将人类的愿望转换成 bash 脚本的命令。

总而言之

ReAct 帮助 LLM 的方式在于将解决步骤拆解成单一动作并检查该动作的结果。这个 LLM 专注于一个具体的小任务,并在验证完结果后再决定下一个动作。

结果

结果很棒,它能极大地提高大语言模型的效果和可靠性,确实效果不错。

继续前进...
或者
更深入地了解...

当然,这种ReAct提示方式对于能调用工具的代理式LLM系统来说是完美的,并得到实际结果。下次再说吧。

0人推荐
随时随地看视频
慕课网APP