什么是LLM Agent它如何运作?
代理背后的主要直觉是一个模型,使用大型语言模型作为其中央计算引擎来推理问题、计划解决问题并使用一组工具来解决问题。
现实世界中的实际任务没有一步解决方案。它们通常需要多个相关和独立的步骤才能完成。对于“A 公司 2023 年的收入是多少?”这样的问题,可以通过简单的查找来得到答案。 然而,诸如“2023 财年第二季度收益的三个要点是什么?”这样的问题专注于公司正在构建的技术护城河”并不是那么容易解决的。为了找到这样的问题的答案,我们需要有关财务分析的知识,计划将问题分解为更简单的子部分,需要记忆来记住前面的步骤,最后需要工具来完成简单的任务。
让我们分解一下 LLM 代理的组成部分,以更好地了解它们的运作方式。
LLM代理的组成部分
1. 大语言模型(LLM)
LLM 代理的核心计算引擎是一个大型语言模型。法学硕士接受海量数据集的训练,以理解文本数据并进行推理。 [3] 和 [4] 等著名著作表明,法学硕士具有推理能力,这对于智能体的工作至关重要。
2. 提示(Prompt)
general_prompt = '''
Act as a software engineer.
Your abilities are:
- Writing code.
- Writing a README.md file.
- Creating a unittest.
- Evaluating code quality.
- Creating a repository in github.
- Reaching a repository in github.
Do not finish the chain until you are sure that you have completed it.
'''
specific_prompt = f'''
Rewrite the 'README.md' file of the {repo_name} repository of the user {username}
'''
提示是向 LLM 提供有关其目标、行为和计划的信息的说明。代理的表现很大程度上取决于提示的质量。代理有两个提示:
-
一般提示:该提示解释了代理的角色和行为。每个任务的提示都不会改变。必须小心种植,因为该提示的质量与特工的表现直接相关。
-
具体提示:该提示告诉座席某项任务的目标。提示每项任务的更改。
3. 记忆
众所周知,agent通过首先分解子任务,而不是执行工具来完成子任务来完成复杂的任务。为此,模型需要记住其之前的步骤。内存主要有两种类型:
-
短期记:Agent的“思路”。
-
长期记忆:包含长达数周或数月的对话历史的日志。
通过结合这些记忆,代理可以牢牢掌握用户的过去和上下文知识。记忆需要的不仅仅是基于语义的检索。综合得分由语义相似度、重要性组成。
4. 知识
如果没有该领域的知识,智能体就无法解决甚至理解任务。因此,要么LLM必须进行微调以拥有知识,要么我们可以创建一个工具来从数据库中提取知识。
5. 规划
复杂的问题往往需要一系列的思维方法。代理通过结合使用两种方法来制定计划:
-
任务和问题分解:将任务或问题分解为更小的部分
-
反思或批评:React 等框架用于批评代理生成的计划。
6. 工具
允许代理完成其职责的可执行函数、API 或其他服务。
例子
诸如“狗的平均年龄是多少?”之类的问题。将年龄乘以3,需要一步一步的方法。下面的Agent是使用Langchain框架创建的。首先,我们为代理的中央计算引擎初始化大型语言模型,其次我们集成我们的工具,最后初始化我们的代理。 “wikipedia”工具用于从互联网上提取知识,“llm-math”工具用于数值计算。
# Large language model
llm = AzureChatOpenAI()
# Tool integration
tools = load_tools(['wikipedia',
'llm-math'], llm=llm)
# Initialization of the agent
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True,
handle_parsing_errors=True)
# Run the agent with a prompt
result = agent.run('What is the average age of a dog? Multiply the age by 3')
结论
总之,LLM Agent 代表了一个强大的框架,通过利用大型语言模型 (LLM) 作为其中央计算引擎来解决复杂的具体任务。该代理由一些基本组成部分组成,例如精心设计的概述代理能力和行为的一般提示、定义目标的特定任务提示以及包含短期和长期记忆的复杂记忆系统,该代理有能力解决复杂的问题。通过微调 LLM 或从数据库中提取信息获得的知识构成了代理理解和解决问题能力的关键基础。规划阶段涉及任务和问题分解以及反思分析,使代理能够制定有效的策略。最后,可执行工具的集成增强了代理执行计划的能力,展示了 LLM 代理在解决现实世界挑战时的多功能性和适应性。
参考
[1] Hu, Bin, et al. 2023, “Enabling Intelligent Interactions between an Agent and an LLM: A Reinforcement Learning Approach.”
[2] A Comprehensive Overview of Large Language Models, A Comprehensive Overview of Large Language Models – Wisecube AI – Research Intelligence Platform
[3] Radford, Alec, et al. “Learning transferable visual models from natural language supervision.” International conference on machine learning. PMLR, 2021.
[4] GPT-3 Explained | Papers With Code
[5] Introduction to LLM Agents, Introduction to LLM Agents | NVIDIA Technical Blog
[6] What is LLM Agent? Ultimate Guide to LLM Agent [With Technical Breakdown], What is LLM Agent? Ultimate Guide to LLM Agent [With Technical Breakdown]
[7] Building Your First LLM Agent Application, Building Your First LLM Agent Application | NVIDIA Technical Blog
[8] what-is-an-llm-agent-and-how-does-it-work