赞
踩
原文链接:What are GPT Agents? A deep dive into the AI interface of the future
作者:Logan Kilpatrick
OpenAI 开发者关系负责人
发表时间:2023年7月26日
上周,我在 Twitter 上发推并询问有哪些人正在围绕 GPT agents 的概念开发酷炫的产品,我对收到的回应感到非常震惊。我也很惊讶,许多人似乎并不理解 agents 是什么,也不知道它们为什么会如此受欢迎。
这篇文章旨在让您从「我不知道 AI Agent 是什么,别瞎造词了」到「知其然且知其所以然地自信讨论 AI Agent」。
我们将介绍agents是什么,这个领域的发展趋势,以及大量这种早期技术在实践中的精彩示例。如同往常,这篇文章反映了我对这个话题的个人观点和想法,这就是你在我个人博客上阅读它的原因。让我们深入研究吧!
首先,我们需要定义一些术语,然后我们会深入到更多的细节中。虽然没人喜欢背单词,但在AI领域中,为了理解一些奇特的术语,确立正确的概念是至关重要的。
GPT = generative pre-trained transformer,也就是生成式预训练转换器,这是驱动大型语言模型(LLM)如ChatGPT的核心机器学习模型架构。GPT是一个非常专业的术语,但通过ChatGPT被广大群众所熟知。
接下来,我们来看看什么是Agent:
Agent(智能体) = 一个设置了一些目标或任务,可以迭代运行的大型语言模型。这与大型语言模型(LLM)在像ChatGPT这样的工具中“通常”的使用方式不同。在ChatGPT中,你提出一个问题并获得一个答案作为回应。而Agent拥有复杂的工作流程,模型本质上可以自我对话,而无需人类驱动每一部分的交互。
上述定义有助于我们理解ChatGPT和Agent的关系,以及它们为用户提供的不同体验。ChatGPT接收单一查询的输入并返回输出,它一次不能完成超过一个任务。但是,随着ChatGPT中插件的推出,这种情况有所改变,模型可以利用外部工具一步执行多达10个请求。有人可能会争辩说,这是在ChatGPT内部“Agent”思想的第一次体现,因为模型正在决定该做什么以及是否发送额外的请求。
对于那些可能还没有尝试过插件的人来说,基本的概念是你可以告诉ChatGPT某个外部工具的API是如何工作的,然后它就可以编写并执行代码,根据用户查询向该API发送请求。比如,如果你有一个天气插件,当用户问“NYC(纽约缩写)的温度是多少?”,模型就会知道它无法回答这个问题,并查看用户安装的可用插件。假设它发送请求,API返回了一个错误信息,说“NYC不是一个有效的地点,请使用详细的城市名称,不要使用缩写”,模型实际上可以读取这个错误并发送新的请求来修复它。这是现今生产流程中Agent如何工作的最简单示例。
最后一个细节,我将agents称为GPT agents,仅仅是因为“agents”是一个非常常见的词,上下文经常不明确。GPT agents强化了这个概念与ChatGPT和AI有些相关,所以你应该从不同的角度来看待它。但是你可能会听到人们说智能体(agents)、自主智能体(autonomous agents)或GPT智能体(GPT agents),这些都是指同一种东西。
一些使GPT agents如AutoGPT和BabyAGI大受欢迎的项目是有史以来最受欢迎的开源项目之一。agents的想法真正激发了开发者的想象力,人们正在争相围绕这个想法创建工具和公司。
在此,我要快速提示一下,如果你是一名开发者并且想要构建 Agents 体验,Langchain提供了一套非常好的库和工具集,这些工具可以帮助开发者做到这一点,而无需从头开始构建所有东西。
《Langchain是什么,作为一个开发者我为什么应该关心它?》
这是全球发展最快的语言模型应用框架,配备了LLM工具和agent支持。
如果你必须将agents的概念简化为一句话,一个选项可能是:“给大型语言模型设定目标的能力,以及让模型在循环中自我提示的能力”。这就是真正发生的所有事情。交互不再是线性的,而是可以并行(同时进行多个提示以解决同一个目标)和单人的(对话中不需要人类参与)。
以下是BabyAGI的工作方式,请花一些时间理解一下,我知道这个图解可能有些令人生畏,但当我们逐步讲解时,它会变得更加清晰:
这个过程在为智能体创建一个目标或主任务后,主要分为以下三个步骤:
让我们一起来看一个具体的例子。我们可以从一个任务开始,例如"编写一篇关于ChatGPT以及功能的1500字博客文章"。作为控制agent的用户,你可以写出这个目标,尽可能详细地提供要求,然后你就完成了。
模型接收这些要求,并执行如下操作:
sub_tasks = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "You are an world class assistant designed to help people accomplishh tasks"},
{"role": "user", "content": "Create a 1500 word blog post on ChatGPT and what it can do"},
{"role": "user", "content": "Take the users request above and break it down into simple sub-tasks which can be easily done."}
]
)
在这个例子中,我们使用OpenAI API来驱动agent。系统消息允许你在一定程度上定义你的agent,但在这个例子中,我们并没有真正使用它。然后,我们添加用户查询和关键的下一步,即在其上添加一个任务,该任务是将查询分解成子任务。
然后,你可以将子任务放入一个循环中,并进行额外的调用以执行这些子任务,所有这些都带有不同的系统消息(想想不同的agents,可能是一个写作agent,一个研究agent等)。你可能会想要“将这个任务分解成更简单的子任务,直到你100%清楚需要做什么并且可以高精度地执行任务”,这样模型就不会陷入添加更多任务的无限循环中(如果你没有正确地进行提示工程,今天的agents就会常常出现这个问题)。
另外,你可能在想,实现这些功能需要大量的OpenAI API请求。你想得对,agent的工作流确实消耗了大量的使用量,因此在操作时要小心。以现在的限制,你可能无法在ChatGPT中使用agents,因为有消息次数的限制,即使最近增加到每3小时50条消息。(在下面的帖子中查看更多详细信息)
《ChatGPT刚刚变得更好了》
ChatGPT-4的新消息限制已经提高到50条。
回顾一下我们的进展,我们已经看到了构建一个agent的第一步,将初始任务分解成子任务,然后让模型执行列表中的任务。babyAGI流程中值得一提的一些部分如下:“丰富结果”过程,这可能仅仅意味着像要求模型使任务更具体和详细这样简单的事情,这是一种自动提示工程。他们还将结果存储在向量数据库中,这对于确保你在整个过程中跟踪模型为你完成的所有步骤是有用的。基本上看到模型根据你的初始目标达到某个最终状态所做的“工作”是有帮助的,这样你就有一些关于如何完成的直觉。
babyAGI工作流中最后一个有趣的点是优先级列表的概念,这是我们所有人在执行任务时,有意识或无意识地都会做的事情。模型默认情况下会按照询问的顺序执行任务,所以有这个步骤可以确保模型按照有利于真正完成任务的顺序完成相关任务。
到目前为止,我们已经从高层次和低层次讨论了很多关于agents的内容。但只要你看到这些 agents 在实际运作,这一切都会变得更加令人兴奋。在我们深入各种例子之前,先看看我制作的这个信息图,里面有一些在这个领域正在构建的公司和项目(抱歉,图片很长,因为正在构建的项目实在太多):
我认为基础 Agents 具有通用性,设计用来将任何任务分解成适合 Agents 工作流的形式。这类项目包括像babyAGI和AutoGPT这样的项目。从历史上看,AutoGPT是最常用的项目,但他们最近撤掉了他们的网络应用,现在你必须在本地进行操作。
要查看 Agents 的实战应用,我们可以使用这个很棒的Hugging Face空间,这是一个在线运行代码的环境:
《Baby AGI - 由NeuralInternet提供的Hugging Face Space》
发现社区制作的令人惊叹的机器学习应用
请注意,你在外部网站上粘贴API密钥时应非常小心。值得为实验创建一个新的密钥,然后在完成后立即删除,以防止泄露。
让我们从帮助我学习编程的目标开始:
你可以看到babyAGI的第一步是根据我的目标制定一个任务列表,它将“教我编程Python”分解成以下任务:
下一步是,模型会编写一些文本来帮助我学习第一项。如果你自己试试这个,你可能会发现结果有点奇怪。例如,babyAGI忽略了第一步,而是做了一个"Hello World"程序。我也认为空间中的 UI 层可能正在抽象一些正在发生的事情。我建议在这里试验一下,看看还有什么其他可能。今天运行你的第一个 Agent 是一种接触这项技术前沿的好方法。
Agent的想法将会长久存在,它们是首批由通用AI驱动、能解决任务的实体。随着时间的推移,随着更强大的模型和工具的支持,它们将变得越来越复杂。例如,你可以想象一个简单的客户服务agent,它可以接手某人的问题,迭代地将其分解、解决,并验证答案。为了实现这个目标,需要几个关键条件:
在工具方面,像 LangChain 这样的组织正在推出像 LangSmith 这样的产品,帮助开发者将这些工作流程投入生产。
《什么是LangSmith,作为开发者我为什么应该关心它?》
深入研究LangChain创作者的最新产品声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/161800
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。