协同推理和行动 ReAct --LLM高级提示词方法工程

一、引言

大语言模型(Large Language Models, LLMs),如 GPT-3.5 Turbo/GPT-4,已在语言理解和交互式决策任务上表现出强大的能力。然而,在 ReAct 出现之前,LLMs 在推理(如思维链提示)和行动(如行动计划生成)方面的能力是被孤立地研究和应用的。(但现在,LLMs 和基于 LLM 的 Agent 的研究正在迅速发展。)

ReAct 当时首次对这个问题给出了答案:当这两种基本能力结合在一起时,会产生什么效果?

本章将详细介绍 ReAct 框架,ReAct 是由 Reason(推理)和 Action(行动)组成的缩写,ReAct = Reason + Action = 推理 + 行动。我们通过深入阐述关键原理和提供实际代码示例,旨在帮助读者全面掌握 ReAct 的关键原理和实际应用。阅读本章后,读者将能够更专业、准确地理解并应用 ReAct 框架。

二、ReAct 框架的核心要点

2.1 ReAct 的关键原理

你知道我们人类在做事情的时候,会先想一想(推理),然后再去做(行动),对吧?比如说,你想要搭积木,你可能会先想一想,我要搭一个什么样的积木,需要什么颜色的积木块,然后你才会去找这些积木块,开始搭建。这就是我们人类的智能,我们可以把想和做紧密地结合在一起。

现在,有一种叫做 ReAct 的方法,它就是想在计算机里模拟我们人类这种把想和做结合在一起的智能。它会让计算机先想一想(生成推理文本),然后再去做(检索信息或者调用工具)。这样,计算机就可以更好地回答问题,也可以更好地适应复杂的环境。

就像你在玩一个新的游戏,你可能会先想一想规则,然后再去玩。如果游戏中出现了一些新的情况,你也可以根据你之前的想法,来调整你的行动。这就是 ReAct 方法的核心思想,它让计算机也能像我们人类一样,先想后做,从而更好地完成任务。

2.2 ReAct 的提示设计

ReAct 提示设计的一个关键点是:few-shot task-solving 轨迹,其本质在于充分利用上下文学习和提供好的演示(Demonstrations)。这些轨迹由人工编写的文本推理和操作序列以及相应操作环境的观察结果构成。下面是一个 ReAct 提示的示例(摘自论文):

 ```python ``问题 科罗拉多造山带东部区域延伸到的区域的海拔范围是多少?``思考 1 我需要搜索科罗拉多造山带,找到科罗拉多造山带东段延伸的区域,然后找到该区域的海拔范围。``操作 1 搜索 [科罗拉多造山带]``观察 1 科罗拉多造山带是科罗拉多及其周边地区造山运动的一段。``思考 2 它没有提到东部地区。所以我需要查一下东部地区。``操作 2 查找 [东部地区]``观察 2 (结果 1 / 1) 东部区域延伸至高平原,称为中原造山带。``思考 3 科罗拉多造山运动的东部区域延伸到高平原。所以我需要搜索高平原,找到它的海拔范围。``操作 3 搜索 [高平原]``观察 3 高平原指的是两个截然不同的陆地区域之一。``思考 4 我需要搜索高平原(美国)``操作 4 搜索 [高平原(美国)]``观察 4 高平原是大平原的一个分区。从东到西,高平原的海拔从 18007000 英尺 (5502130) 不等。[3]``思考 5 高平原海拔高度从 18007000 英尺,所以答案是 18007000 英尺。``操作 5 结束 [18007000 英尺]``...`` ```

在 LangChain 中,您可以找到封装好的 ReAct 模块的源码,其中包含更详细的 Prompt 模板和 Demonstrations:https://github.com/langchain-ai/langchain/tree/c4e9cca2959e2cf756fc499b7c6f35d8786e143/libs/langchain/langchain/agents/react

ReAct 的提示设计直观、灵活,并在各种任务中实现了最先进的少样本性能。研究论文表明,ReAct 的有效性在四个基准测试中进行了评估,包括问题解答和事实验证任务(如 HotpotQA 和 Fever),以及交互式决策任务(如 ALFWorld 和 WebShop)。在这些不同的领域中,ReAct 在多个方面都优于纯推理和纯行为基线方法,显示了集成推理-行动系统的潜力。

三、ReAct 应用示例

注意:我使用的测试环境是 Anaconda + Python 3.8.10。Python 的版本要求 Python 3.7+。

开始实验之前,我们需要安装好本次实验所需的第三方依赖库:

- openai:OpenAI Python 库提供了一个便捷的途径,让任何 Python 3.7+ 应用程序可以访问 OpenAI REST API。您可以通过运行以下命令来安装:`pip install openai==1.10.0`。

- langchain:LangChain 是一个基于语言模型开发应用程序的框架。您可以通过运行以下命令来安装:`pip install langchain==0.1.5`。

- numexpr:NumExpr 是一个高效的数值表达式计算器,用于在利用 LLM 进行数学计算时提高性能。您可以通过运行以下命令来安装:`pip install numexpr==2.8.6`。

此外,我们还需要获取一个名为 `SERPAPI_API_KEY` 的 API 密钥,并用 pip 安装 `google-search-results==2.4.2` 包。您可以在官方网站上获得密钥和更多信息:https://serpapi.com/dashboard

SerpApi 是一个强大且可靠的工具,用于获取搜索引擎结果。SerpApi API 可用于访问 Google 搜索结果,为开发者处理代理、解决验证码,并解析所有丰富的结构化数据。功能:快速、简单、完整的 API,可从 Google 和其他搜索引擎中获取数据;支持的搜索引擎包括 Google、Bing、Yandex 等。可以集成到主流编程语言(如 Python、Java、Go、Rust、Node.js 等)或直接在 Google Sheets 中使用。

SerpApi 特点

(1)实时和真实的结果:每个 API 请求立即运行,无需等待结果。此外,每个 API 请求在完整的浏览器中运行,我们甚至会解决所有验证码,完全模仿人类的操作,确保您获得用户真正看到的内容。

(2)丰富的结构化数据:提供常规的有机搜索结果,以及地图、本地信息、故事、购物、直接答案和知识图谱。每个结果都有许多结构化数据,包括链接、地址、推文、价格、缩略图、评级、评论、丰富片段等。

import os``import warnings``from openai import OpenAI``from langchain_openai import ChatOpenAI``from langchain.agents import AgentType``from langchain.agents import load_tools``from langchain.agents import initialize_agent``   ``   ``   ``   ``warnings.filterwarnings("ignore")``os.environ["SERPAPI_API_KEY"] = "a08df44c......be59"``   ``   ``# 从环境变量中获取 OpenAI API Key 或者直接赋值``OPENAI_API_KEY = os.environ['OPENAI_API_KEY']``OPENAI_API_KEY = "sk-...你的 OpenAI API Key"``   ``   ``# 如果您使用的是官方 API,就直接用 https://api.openai.com/v1 就行。``BASE_URL = "https://api.openai.com/v1"``# 如果您使用的不是官方 API,而是通过代理进行请求,请设置您的代理 URL。``# BASE_URL = "https://api.xxx.../v1"``   

实验 :连接搜索引擎和数学计算工具,对比使用和不用 ReAct 的生成结果。

给定任务 :“强化学习教程(蘑菇书)现在的价格是多少?如果我在此基础上降价 15% 卖出,应该如何定价?用中文输出结果。”

# 使用 load_tools 方法加载工具 "serpapi""llm-math"``tools = load_tools(["serpapi", "llm-math"], llm=llm)``   ``   ``agent_ReAct = initialize_agent(tools, llm, verbose=True,``agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION``)``# 查看所用到的提示模板``print(agent_ReAct.agent.llm_chain.prompt.template)``   
Answer the following questions as best you can. You have access to the following tools:``Search: A search engine. Useful for when you need to answer questions about current events. Input should be a search query.``Calculator: Useful for when you need to answer questions about math.``Use the following format:``Question: the input question you must answer``Thought: you should always think about what to do``Action: the action to take, should be one of [Search, Calculator]``Action Input: the input to the action``Observation: the result of the action``... (this Thought/Action/Action Input/Observation can repeat N times)``Thought: I now know the final answer``Final Answer: the final answer to the original input question``Begin!``Question: {input}``Thought:{agent_scratchpad}

没有使用 ReAct,直接 Prompting

prompt = "强化学习教程(蘑菇书)现在的价格是多少?如果我在此基础上降价 15% 卖出,应该如何定价?用中文输出结果。"``result_no_ReAct = get_completions(prompt, "gpt-3.5-turbo-0125")``print(f"\n生成结果-中文:\n{result_no_ReAct}")``   

使用 ReAct

# 使用 ReAct 的生成结果  中文``   ``question_Chinese = "强化学习教程(蘑菇书)现在的价格是多少?如果我在此基础上降价 15% 卖出,应该如何定价?用中文输出结果。"``result_Chinese = agent_ReAct.run(question_Chinese)``   ``print(f"\n生成结果-中文:\n{result_Chinese}")``   
> Entering new AgentExecutor chain...``我需要使用搜索引擎来查找“强化学习教程(蘑菇书)价格”。``Action: Search``Action Input: "强化学习教程(蘑菇书)价格"``Observation: ['蘑菇书正版Easy RL 强化学习教程蘑菇书深度学习机器. ¥66.90. 约SGD $12.66. 价格可能因优惠活动发生变化. 优惠. 该商品提供多种优惠. 淘宝网现提供跨境集运、跨境直送 ...', 'Easy RL 强化学习教程蘑菇书深度强化学习落地指南机器学习人工智能导论神经网络与深度学习编程入门电脑书籍人民邮电出版社. ¥46.17. 约SGD $8.74. 价格可能因优惠活动 ...', '京东是国内专业的强化学习网上购物商城,本频道提供强化学习价格表,强化学习报价行情、强化学习多少钱等信息,为您选购强化学习提供全方位的价格参考,提供愉悦的网上 ...', '京东是国内专业的强化学习网上购物商城,本频道提供强化学习价格表,强化学习报价行情、强化学习多少钱等信息,为您选购强化学习提供全方位的价格参考,提供愉悦的网上 ...', '此外,为了教程的完整性,我们整理了周博磊老师的《强化学习纲要》、李科浇老师的《世界冠军带你从零实践强化学习》以及多个强化学习的经典资料作为补充。对于想入门强化 ...', 'Easy RL 强化学习教程蘑菇书深度学习机器学习书籍神经网络机器学习实战西瓜书南瓜书李宏毅周博磊李科浇开源教程书籍 ; 20.80. 成交2408; 13.93. 成交127; 7.59. 成交2.', '优惠时效有限,需要的朋友抓紧购买吧! 《Easy RL 强化学习教程(easyrl蘑菇书)(异步图书 ... 价格砍掉近一半,从500 万压到300 万!我把小梁叫来,当着他的 ...', '本书结合了李宏毅老师的“深度强化学习”、周博磊老师的“强化学习纲要”、李科浇老师的“世界冠军带你从零实践强化学习”公开课的精华内容,在理论严谨的基础上深入浅出地介绍 ...', '蘑菇书《Easy RL》介绍了强化学习的基础知识和Markov决策过程,以及Q网络的一些特性和优化方法。文章还讨论了延迟的策略更新和目标策略平滑等内容。']Thought:我需要计算降价15%后的价格。``Action: Calculator``Action Input: 66.90 * 0.85Observation: Answer: 56.865Thought:我现在知道了降价15%后的价格是56.865。``Final Answer: 56.865> Finished chain.生成结果-中文:``56.865

分析实验结果

- 针对给定的问题:“强化学习教程(蘑菇书)现在的价格是多少?如果我在此基础上降价 15% 卖出,应该如何定价?”。推理思路应为:首先需要确定这本书的具体价格,然后才能准确地计算出基于此降价 15% 的价格。

- 当使用 ReAct 并输入中文提示时,gpt-3.5-turbo-0125 能够给出准确的答案:“我现在知道了强化学习教程(蘑菇书)的价格是 66.90 元,降价 15% 后的定价应为 56.865 元。”

分析表明,在实际应用中,如果是中文环境,参考 ReAct 的源代码并根据特定需求定制中文的 Prompt 模板和演示是有价值的。

- 通过观察 ReAct 的执行过程,我们发现它以交错的方式生成推理轨迹和任务特定操作,这增强了 LLM 的可解释性。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值