什么是LLM Agent它如何运作?

什么是LLM Agent它如何运作?

代理背后的主要直觉是一个模型,使用大型语言模型作为其中央计算引擎来推理问题、计划解决问题并使用一组工具来解决问题。

现实世界中的实际任务没有一步解决方案。它们通常需要多个相关和独立的步骤才能完成。对于“A 公司 2023 年的收入是多少?”这样的问题,可以通过简单的查找来得到答案。 然而,诸如“2023 财年第二季度收益的三个要点是什么?”这样的问题专注于公司正在构建的技术护城河”并不是那么容易解决的。为了找到这样的问题的答案,我们需要有关财务分析的知识,计划将问题分解为更简单的子部分,需要记忆来记住前面的步骤,最后需要工具来完成简单的任务。

让我们分解一下 LLM 代理的组成部分,以更好地了解它们的运作方式。

LLM代理的组成部分

img

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/485561.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI智能视频粗剪解决方案助力企业高效运营

面对海量的视频素材,如何快速、准确地检索和剪辑,成为摆在企业面前的一大难题。美摄科技凭借其在人工智能领域的深厚积累,推出了领先的AI智能视频粗剪解决方案,为企业提供了高效、智能的视频处理新选择。 美摄科技的AI智能视频粗…

Nginx 服务启停方式

1. 前言 nginx 安装后,接下来我们就要学习如何启动、停止、重启 nginx 的服务 对于 nginx 服务的启停控制,在 linux 系统中也有多种方式,比如:信号控制、命令行控制 信号控制:使用 nginx 服务的信号来控制&#xff0…

pytorch如何向tensor结尾添加元素或维度--torch.cat()、torch.unsqueeze()的用法

目录 示例1 矢量后增加元素 示例2 tensor维度增加1 示例3 另一种替代unsqueeze的方法 示例1 矢量后增加元素 使用torch.cat()函数 ptorch.Tensor([1,5,0]) ptorch.cat((p, torch.Tensor([4])), 0) 结果: 这里,cat的第一个输入变量用()包绕&#xf…

Java研学-SpringBoot(二)

二 Spring Boot 介绍 1 简介 Spring Boot是由Pivotal团队提供的全新框架,主要目标是简化Spring应用程序的配置和部署过程,减少开发者在项目搭建和配置上的工作量,让开发者能够更专注于业务逻辑的实现。它使用特定的方式来进行配置&#xff0…

FFmpeg拉取RTSP流并定时生成10秒短视频

生成效果: 视频时长为10秒 生成格式为FLV 输出日志: 完整实现代码如下: 需要在Mac和终端先安装FFmpeg brew install ffmpeg CMake文件配置: cmake_minimum_required(VERSION 3.27) project(ffmpeg_open_stream) set(CMAKE_CXX_STANDARD 17)#头文件包目录 include_director…

软件高级:软件产品线-双生命周期模型概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

unity学习(70)——编译游戏发生错误1

要命 1.VersionControl 直接注释掉就可以了。一共有5处。 2. GraphView一处,也是注释掉就ok了 3.修改完以上6处后66s完成编译 4. 编译结果如下图所示 5. unity中成功实例化两个对象,但此时服务器炸了! 6.预构体数组越界 把naruto模型再往里面…

[网鼎杯 2018]Comment -----不会编程的崽

网鼎杯的题啊,每次都能记忆犹新,又get到了不少。 这种发帖的界面在ctf中不少见了,多半是二次注入。但是这个二次注入并不单纯。在一道大坎之前,必定存在小坎。这不,先登录。 先别急着怀疑是否为其他漏洞。仔细观察&…

EasyPOI操作Excel从零入门

教程介绍 我们不造轮子,只是轮子的搬运工。(其实最好是造轮子,造比别人好的轮子)开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿…

网络协议栈--网络层--IP协议

目录 本节重点网络层IP协议一、 基本概念二、 IP协议报头格式三、网段划分(重要)四、特殊的IP地址五、IP地址的数量限制六、私有IP地址和公网IP地址七、路由八、IP协议全部内容一览图 本节重点 1、理解网络层的作用, 深入理解IP协议的基本原理 2、对整个TCP/IP协议有系统的理解…

SQLiteC/C++接口详细介绍sqlite3_stmt类(八)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(七) 下一篇: SQLiteC/C接口详细介绍sqlite3_stmt类(九) 27、sqlite3_column_int 函数 sqlite3_column_int 用于返…

吴恩达2022机器学习专项课程(一) 3.5 可视化成本函数

问题预览 为什么要可视化成本函数?可视化之后的成本函数是什么样子?如何在三维空间里通过w和b找到一个成本函数的值?如何在三维空间里找到成本函数的最小值? 解读 可视化成本函数:为了更加方便的看到不同的w和b&…

web CSS笔记1

CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及…

再仔细品品Elasticsearch的向量检索

我在es一开始有向量检索,就开始关注这方面内容了。特别是在8.X之后的版本,更是如此。我也已经把它应用在亿级的生产环境中,用于多模态检索和语义检索,以及RAG相关。 也做过很多的优化:ES 8.x 向量检索性能测试 & 把…

Vue2谷粒商城

1.初始化项目 npm init -y 2. 安装vue 2 npm install vue^2 3.编写基本代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sc…

构建以太网交换网络——(生成树实验)

实验介绍 关于本实验 以太网交换网络中为了进行链路备份&#xff0c;提高网络可靠性&#xff0c;通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路&#xff0c;引发广播风暴以及MAC地址表不稳定等故障现象&#xff0c;从而导致用户通信质量较差&#xff0c;甚至…

PB 级速度,单一数据库操作:走进 Amazon Aurora Limitless Database 的神奇

在数字时代的浪潮中&#xff0c;数据库管理面临着前所未有的挑战和复杂性。对于许多应用程序开发者而言&#xff0c;维护数据库、确保一致性保证、执行升级和备份等日常操作变得越来越复杂。随着应用程序规模的不断扩大&#xff0c;这些任务可能变得琐碎而繁重。传统的数据库管…

前端Webpack5高级进阶课程

课程介绍 本套视频教程主要内容包含React/Vue最新版本脚手架分析、基于Webpack5编写自己的loader和plugin等&#xff0c;让你开发时选择更多样&#xff0c;最后&#xff0c;用不到一百行的代码实现Webpack打包。通过本套视频教程的学习&#xff0c;可以帮你彻底打通Webpack的任…

美团2024届秋招笔试第二场编程真题

要么是以0开头 要么以1开头 选择最小的答案累加 import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和…

计算机网络⑦ —— 网络层协议

1. ARP协议 在传输⼀个 IP 数据报的时候&#xff0c;确定了源 IP 地址和⽬标 IP 地址后&#xff0c;就会通过主机路由表确定 IP 数据包下⼀跳。然⽽&#xff0c;⽹络层的下⼀层是数据链路层&#xff0c;所以我们还要知道下⼀跳的 MAC 地址。由于主机的路由表中可以找到下⼀跳的…