数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览图
AI模型月报
AI基础大模型
AI预训练大模型
数据推荐
网址导航
我的网址导航
程序员必备网站
预训练模型编程框架Transformers迎来重磅更新:Transformers Agents发布,一个完全的多模态AI Agent!
标签:
#AIAgent#
#AutoGPT#
#Transformers#
时间:2023/05/13 00:44:20
作者:小木
Transformers是由HuggingFace发布的人工智能Python库,也是AI预训练领域最常使用的编程框架之一。Transformers提供了高级API,用于使用预训练的transformer模型进行各种自然语言处理任务。 今天,HuggingFace官方宣布了Transformers最大胆的功能:Transformers Agents。这是继AutoGPT开创性发布之后,AI Agent被业界接受的另一个重要的里程碑。

[TOC] #### AI Agent技术简介 简单来说,AI Agent就是一个代理人,它可以代替我们和ChatGPT之类的大语言模型(LLM)进行交互。尽管当前的大模型可以帮助我们解决许多问题,但是对于复杂的任务来说,通常需要我们不断和LLM进行交互,不断地给LLM发送指令才能最终完成我们的目标。 AI Agent技术目标就是帮助我们降低这部分繁琐的工作。例如,如果我们想要知道今天推特上最火的AI相关的讨论是什么?通常,这需要好几个步骤:理解问题,登陆推特网站,寻找今天与AI相关的推文,理解这些推文讨论的内容,按照讨论的数量找到最火的推文,最后对这些推文进行总结。只有经过这些反复的交互,我们才有可能完成我们的目的。

有了AI Agent技术之后,我们只需要对它说明我们的目标,它会代替我们与LLM反复交互,并最终获得我们需要的内容返回。显然,AI Agent如果要完成这样的事情,不仅需要理解LLM返回的内容,也需要根据不同的返回执行不同的策略,通过内置网络浏览、代码执行等多项功能才能更好地完成我们的目标。 AI Agent最经典的实现就是AutoGPT。关于AutoGPT的原理,我们曾经分析过:https://www.datalearner.com/blog/1051681400812596 ,本文就不再赘述。 可以说,AI Agent技术的火爆主要因为AutoGPT的流行。它最早由开发者Significant Gravitas在3月份开源,仅仅一个月之后,它在GitHub上获得的star数量就达到7.4万,超过了PyTorch(6.5万)。而今天,发布时间不到2个月,AutoGPT在GitHub上获得的star数量已经达到13万!堪称史上star数量增长最快的开源项目!

AutoGPT最大的特点是突破了现有的GPT只能做文本方面的任务的限制,可以利用各种工具来完成目标。 > AutoGPT背后接入的语言模型,可以是GPT-4、也可以是GPT-3.5的text-davinci-003。但是,显然这些模型是无法完成浏览网页、执行代码、发布信息的操作的。而作者的聪明在于将这些操作变成命令,让GPT-4模型选择,然后根据返回的结果进行操作。注意,这里可以理解为作者设计了一个十分精巧的prompt,然后把我们要执行的命令,基于prompt模板封装后发给GPT-4,然后根据结果来执行。 #### Transformers Agents介绍及技术原理解释 AutoGPT发布之后,业界也陆续出现了几个非常流行的AI Agent库,如BabyAGI、AgentGPT等。而今天,Transformers发布Transformers Agents,显然也是看到了AI Agent巨大的潜力。 Transformers Agents最大的特点是可以控制HuggingFace上10万多个模型,是一个完全的多模态Agent,可以处理文本、图片、视频、音频、文档等。 简单总结就是你可以使用自然语言来作为输入,告诉Transformers Agents你的目的,然后Transformers Agents就可以基于自身内置的工具来完成你的目的。下图是Transformers Agents的工作原理:

Transformers Agents本身内置了Prompt、Tools、Agents、Python解释器几个组件,其中Prompt概念很简单,主要是给LLM使用,包括如何使用工具以及如何完成用户的目的,都需要这些prompt模板。而Python解释器则是为了让LLM拥有执行代码,使用代码完成某些任务的能力。下面主要介绍一下Agents和Tools,这两个也是Transformers Agents核心的部件: ##### Agents 这里的“代理”是指一个大型语言模型(LLM),通过提示它来使其能够访问一组特定的工具。 这也是完成最终目标的核心模型。 ##### Tools 工具非常简单:它们是一个具有名称和描述的单个函数。通过prompt和工具的描述,我们就能告诉Agents如何利用这些工具来执行查询中所请求的操作。 目前内置的工具如下: | 工具中文名 | 工具英文名 | 工具描述 | 模型 | | --- | --- | --- | --- | | 文档问答 | Document question answering | 给定一个图像格式的文档(如PDF),回答关于该文档的问题 | Donut | | 文本问答 | Text question answering | 给定一段长文本和一个问题,在文本中回答该问题 | Flan-T5 | | 无条件图像字幕 | Unconditional image captioning | 给图像加上字幕! | BLIP | | 图像问答 | Image question answering | 给定一张图片,在该图片上回答一个问题 | VILT | | 图像分割 | Image segmentation | 给定一张图像和提示,输出该提示的分割掩模 | CLIPSeg | | 语音转文本 | Speech to text | 给定一个人说话的音频记录,将语音转录为文本 | Whisper | | 文本转语音 | Text to speech | 将文本转换为语音 | SpeechT5 | | 零样本文本分类 | Zero-shot text classification | 给定一段文本和一系列标签,确定文本最符合哪个标签 | BART | | 文本摘要 | Text summarization | 用一到几个句子概括一篇长文本 | BART | | 翻译 | Translation | 将文本翻译成指定语言 | NLLB | 当然,官方也说明了,支持自定义工具! 这里使用的是tools而不是pipeline,因为代理使用非常基础的工具编写更好的代码。pipeline经常将几个任务合并为一个,并进行了更多的重构。而工具旨在专注于一个非常简单的任务。 Transformers Agents通过内置丰富的工具和prompts模板,然后配合Agents来不断的分解任务完成目标。 #### Transformers Agents实际代码运行案例 官方展示了 Transformers Agents的丰富的能力,我们截取一部分看一下。 **为图像添加标题**

**文本合成语音**

可以看到,不管什么任务,你只需调用Agents运行方法即可。非常简答。官方还做了一个Google的Colab,大家可以自己运行测试,里面提供了完整的环境和代码,也给大家写了很多样例,包括文本生成图片、多轮对话、访问互联网、添加自定义工具等。非常丰富,值得自己动手尝试:https://colab.research.google.com/drive/1c7MHD-T1forUPGcC_jlwsIptOzpG3hSj #### Transformers Agents的使用教程(代码示例) 使用一如既往的简单,只需要大家安装agents组件即可,安装方法: ``` pip install transformers[agents] ``` 当然,Transformers Agents支持你使用OpenAI的模型完成任务,毕竟这是目前最强大的LLM,不过也需要你自己有APIKey,使用OpenAI的模型之前需要安装OpenAI库: ``` pip install openai ``` 接下来,你一通过下面的方法初始化一个OpenAI相关的Agent: ``` from transformers import OpenAiAgent agent = OpenAiAgent(model="text-davinci-003", api_key="
") ``` 可以看到,十分简单。你也可以使用BigCode或者OpenAssistant,不过需要登录HuggingFace Hub,方法如下: ``` from huggingface_hub import login from transformers import HfAgent login("
") agent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder") ``` 注意,目前这两个LLM的Agent都是由Hugging Face官方提供的免费资源。未来是否收费不确定,不过你自己要是由自己的endpoint地址,也可以自定义哦~~ 接下来就是使用了: ``` agent.run("Draw me a picture of rivers and lakes.") ``` 你可以输入任何命令测试它的能力。 #### Transformers Agents评价和总结 AutoGPT的思想大大拓展了LLM的边界,可以理解为让一个强大的语言模型配备了各种武器,实现各种目标。这种AI Agent思想至少有2个方面大大提升了现有的大语言模型的能力: 1. 突破了原有模型的能力,将大语言模型变成了一个会使用工具的AI模型。几乎是只要你有合适的工具,都可以通过设计合适的prompt以及使用机制来完成LLM的升级。 2. 将复杂的任务执行变得可能。对于很多复杂任务来说,分解合理的步骤本身也是一种成本巨大的工作,而AI Agent充分利用了LLM强大的理解和推理能力,代替手工反复交互,降低了使用成本。 就Transformers Agents来说,相比较AutoGPT、BabyAGI等框架来说,它更像一个正规军,而且有HuggingFace的平台优势,它甚至可以引导平台上的模型开放类似的接口,让其能力发展。此外,Transformers Agents的框架设计似乎也更加合理,可靠性与可扩展性也更强,十分值得期待。 不过,AI Agent的一个重要问题是可能会耗费大量的tokens进行无效的交互,很多的复杂任务依然可能需要人的参与才可以。 Transformers Agents的发布至少证明了一件事,那就是AI Agent技术可能是未来十分重要的演进方向,而开源社区上大量的模型可能是这个技术成功的关键!
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
相关博客
最热博客