前言
大模型是被训练出来的,它可以结合本地知识库,也可以调用搜索或在线API来增强自身的能力。这些都不是大模型内部的数据,我们称为外部工具。
当大模型需要通过自主判断调用外部工具来进一步完成任务时,LangChain给我们提供了Agent(代理)模块。
Agents
Agent是一个抽象概念,当LLM无法根据自身数据回复用户即将不得不正儿八经说假话时,Agent帮我们找来一个外部工具,解决之。除了代理的概念外,LangChain
提供了一系列常用的Agent,比如我们在[LangChain实战: 老喻干货店TextToSql]一文学习到的create_sql_agent
等。除了单个agent外,我们还可以同时使用多个agents,并且一个agent的输出可以做为另一个agent的输入。便于将复杂任务分步细致的解决好。
我们要把握agent,可以从以下几方面入手:
- 大模型
大模型自身有些问题解决不了,求援于Agent调用外部工具解决。在Agents的工作过程中,LLM提供逻辑的引擎,负责生成预测和处理输入。
- 外部Tools
接口调用、文件处理、搜索引擎等
- 控制交互的代理
这是代理的管家,当有多个代理时,负责调度。如果我们要搞清楚,Agent是如何决定去本地知识库中搜索,或是调用哪一个外部工具,得到一个工具的输出后,怎么自主决定调用哪一个agent,我们需要停下来学习ReAct框架
ReAct思维框架
比如,老喻干货店,很多货品会随着很多情况的变化而改变售价,我们可以开发一款Agent来为货品智能定价。我们通过推理干货的价格,来理解Agent的底层思想。
我们可以在批发网上找到今天的干货成本价(行动),然后我们观察这个价格的高低(观察),来决定加价多少(思考),最后计算出一个售价(行动)。
哎, 一边写着代码, 一边挂念着山东的大蒜子…
我们平时也是边观察,边思考 ,再行动。观察和思考统称推理(Reasoning), 推理可以指导我们的行动(Acting)。React框架就来源于行动和推理的协同,它将人类学习新任务并做出决策或再推理的能力交给LLM借鉴。
大家可以来看下使用ReAct思维,帮助大模型找到胡椒瓶。
LangChain
的Agent
类,对ReAct进行了封装和实现。自此,大模型获得了极大的自主性,除了基于内部知识可以进行对话聊天,还可以成为使用工具的智能代理。
干货定价Agent DEMO
我们要开发一个agent, 帮我们找到大蒜子的当前市场价格,并加价20%做出销售价格
- 安装依赖
!pip install langchain
!pip install openai
!pip intall google-search-results
这里我们使用了SerpAPI,它是等下Agent需要的Google搜索工具,找出大蒜子的价格。
- 配置OpenAI和SerpAPI的api_key
import os
os.environ["OPENAI_API_KEY"]='Your OpenAI API KEY'
os.environ["SERPAPI_API_KEY"]='our SerpAPI API Key'
- 导入库
# 加载工具
from langchain.agents import load_tools
# 初始agent 工具
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
- 实例化llm, 加载工具, 生成agent
llm = OpenAI(temperature=0)
# serpapi 负责搜索,llm-math 负责计算20%
tools = load_tools(["serpapi", "llm-math"], llm=llm)
# ZERO_SHOT_REACT_DESCRIPTION 的意思是使用react思维框架、不使用样本
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
- 执行并拿到结果
agent.run("目前市场上大蒜子的平均价格是多少?如果我在此基础上加价20%卖出,应该如何定价?")
大模型根据ReAct框架,开始了推理和行动:
> Entering new chain...
I need to find the current market price of garlic and then calculate the new price with a 20% markup.
Action: Search
Action Input: "Average price of garlic"
Observation: According to the study, the average price for garlic in Shandong is 4.2.
Thought: I need to calculate the new price with a 20% markup.
Action: Calculator
Action Input: 4.2 * 1.2
Observation: Answer:
Thought: I now know the final answer.
Final Answer: The new price with a 20% markup would be 5.04.
> Finished chain.
总结
- 驱动Agent工作的是ReAct思想框架
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓