“
一篇非常基础非常基础的Agent博客
https://huggingface.co/blog/open-source-llms-as-agents
introducton
大型语言模型(LLMs)经过causal language modeling训练后,可以处理各种任务,但它们通常在逻辑、计算和搜索等基本任务上表现不佳。最糟糕的情况是,它们在某个领域(如数学)表现不佳,但仍然试图自行处理所有计算。
为了克服这一弱点,除了其他方法,可以将LLM集成到一个系统中,使其能够调用工具:这样的系统称为LLM Agent。
在本文中,我们将解释ReAct代理的内部工作原理,然后展示如何使用最近集成到LangChain中的ChatHuggingFace类来构建它们。最后,我们将对比几个开源LLM与GPT-3.5和GPT-4。
What are agents?
LLM Agent的定义非常广泛:LLM Agent是所有利用LLM作为引擎并可以根据环境产生的observation产生action的系统。它们可以使用感知⇒反思⇒行动循环的多个迭代来完成任务,并经常通过规划或知识管理系统进行增强以提高性能。
在这里,我们将重点放在ReAct代理上。ReAct是一种构建代理的方法,基于“reasoning”和“acting”这两个词的连接。在提示词中,会包含模型可以使用哪些工具,并要求它“一步一步”地思考(也称为思维链行为),以规划和执行下一个行动以达到最终答案。
Toy example of a ReAct agent’s inner working
上面的图看起来非常高级,但背后的原理其实非常简单。
在下面这个colab notebook中:使用 Transformers 库实现了一个简单的工具代理。
https://colab.research.google.com/drive/1j_vsc28FwZEDocDxVxWJ6Fvxd18FK8Gl?usp=sharing
LLM 在循环中被调用,其中包含一个基本的提示词。
然后可以解析LLM的输出:
- 如果它包含字符串‘Fin