本文 机器之心  编辑:张倩、蛋酱

通过 Transformers Agents,你可以控制 10 万多个 Hugging Face 模型完成各种多模态任务。

从聊天到编程再到支持各种插件,强大的 ChatGPT 早就不是一个简单的对话助手,而是朝着 AI 界的「管理层」不断前进。

3 月 23 号,OpenAI 宣布 ChatGPT 开始支持各类第三方插件,比如著名的理工科神器 Wolfram Alpha。借助该神器,原本鸡兔同笼都算不准的 ChatGPT 一跃成为理工科尖子生。Twitter 上许多人评论说,ChatGPT 插件的推出看起来有点像 2008 年 iPhone App Store 的推出。这也意味着 AI 聊天机器人正在进入一个新的进化阶段 ——「meta app」阶段。

紧接着,4 月初,浙江大学和微软亚研的研究者提出了一种名为「HuggingGPT」的重要方法,可以看做是上述路线的一次大规模演示。HuggingGPT 让 ChatGPT 充当控制器(可以理解为管理层),由它来管理其他的大量 AI 模型,从而解决一些复杂的 AI 任务。具体来说,HuggingGPT 在收到用户请求时使用 ChatGPT 进行任务规划,根据 HuggingFace 中可用的功能描述选择模型,用选定的 AI 模型执行每个子任务,并根据执行结果汇总响应。

这种做法可以弥补当前大模型的很多不足,比如可处理的模态有限,在某些方面比不上专业模型等。

虽然调度的是 HuggingFace 的模型,但 HuggingGPT 毕竟不是 HuggingFace 官方出品。刚刚,HuggingFace 终于出手了。

和 HuggingGPT 理念类似,他们推出了一个新的 API——HuggingFace Transformers Agents。通过 Transformers Agents,你可以控制 10 万多个 Hugging Face 模型完成各种多模态任务。

比如在下面这个例子中,你想让 Transformers Agents 大声解释图片上描绘了什么内容。它会尝试理解你的指令(Read out loud thecontent of the image),然后将其转化为 prompt,并挑选合适的模型、工具来完成你指定的任务。

英伟达 AI 科学家 Jim Fan 评价说:这一天终于来了,这是迈向「Everything APP」(万事通 APP)的重要一步。

不过也有人说,这和 AutoGPT 的自动迭代还不一样,它更像是省掉了写 prompt 并手动指定工具这些步骤,距离万事通 APP 还为时过早。

Transformers Agents 地址:https://huggingface.co/docs/transformers/transformers_agents

Transformers Agents 怎么用?

在发布的同时,HuggingFace 就放出了 Colab 地址,任何人都可以上手一试:

https://huggingface.co/docs/transformers/en/transformers_agents

简而言之,它在 transformers 之上提供了一个自然语言 API:首先定义一套策划的工具,并设计了一个智能体来解释自然语言和使用这些工具。

而且,Transformers Agents 在设计上是可扩展的。

团队已经确定了一组可以授权给智能体的工具,以下是已集成的工具列表:

  • 文档问答:给定一个图像格式的文档(例如 PDF),回答关于该文档的问题 (Donut)

  • 文本问答:给定一段长文本和一个问题,回答文本中的问题(Flan-T5)

  • 无条件的图像说明:为图像添加说明 (BLIP)

  • 图片问答:给定一张图片,回答关于这张图片的问题(VILT)

  • 图像分割:给定图像和 prompt,输出该 prompt 的分割掩码(CLIPSeg)

  • 语音转文本:给定一个人说话的录音,将语音转录成文本 (Whisper)

  • 文本到语音:将文本转换为语音(SpeechT5)

  • 零样本文本分类:给定文本和标签列表,确定文本与哪个标签最对应 ( BART )

  • 文本摘要:用一个或几个句子来概括一个长文本(BART)

  • 翻译:将文本翻译成给定的语言(NLLB)

这些工具集成在 transformers 中,也可以手动使用:

from transformers import load_tooltool = load_tool("text-to-speech")
audio = tool("This is a text to speech tool")

用户还可以将工具的代码推送到 Hugging Face Space 或模型存储库,以便直接通过智能体来利用该工具,比如:

  • 文本下载器:从 web URL 下载文本

  • Text to image : 根据 prompt 生成图像,利用 Stable Diffusion

  • 图像转换:在给定初始图像和 prompt 的情况下修改图像,利用 instruct pix2pix stable diffusion

  • Text to video : 根据 prompt 生成小视频,利用 damo-vilab

具体玩法的话,我们先看几个 HuggingFace 的示例:

生成图像描述:

agent.run("Caption the following image", image=image)

朗读文本:

agent.run("Read the following text out loud", text=text)

输入:A beaver is swimming in the water

输出:

读取文件:

快速上手

在运行 agent.run, 之前,需要先实例化一个大语言模型智能体。这里支持 OpenAI 的模型以及 BigCode、OpenAssistant 等开源模型。

首先,请安装 agents 附加组件以安装所有默认依赖项:

pip install transformers[agents]

要使用 openAI 模型,需要在安装依赖项后实例化一个「OpenAiAgent」 openai:

pip install openaifrom transformers import OpenAiAgentagent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")

要使用 BigCode 或 OpenAssistant,首先登录以访问推理 API:

from huggingface_hub import loginlogin("<YOUR_TOKEN>")

然后,实例化智能体:

from transformers import HfAgentStarcoder
agent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder")
StarcoderBase
agent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoderbase")
OpenAssistant
agent = HfAgent(url_endpoint="https://api-inference.huggingface.co/models/OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5")

如果用户对此模型(或另一个模型)有自己的推理端点,可以将上面的 URL 替换为自己的 URL 端点。

接下来,我们了解一下 Transformers Agents 提供的两个 API:

单次执行

单次执行是在使用智能体的 run () 方法时:

agent.run("Draw me a picture of rivers and lakes.")

它会自动选择适合要执行的任务的工具并适当地执行,可在同一指令中执行一项或多项任务(不过指令越复杂,智能体失败的可能性就越大)。

agent.run("Draw me a picture of the sea then transform the picture to add an island")

每个 run () 操作都是独立的,因此可以针对不同的任务连续运行多次。如果想在执行过程中保持状态或将非文本对象传递给智能体,用户可以通过指定希望智能体使用的变量来实现。例如,用户可以生成第一张河流和湖泊图像,并通过执行以下操作要求模型更新该图片以添加一个岛屿:

picture = agent.run("Generate a picture of rivers and lakes.")
updated_picture = agent.run("Transform the image in picture to add an island to it.", picture=picture)

当模型无法理解用户的请求并混合使用工具时,这会很有帮助。一个例子是:

agent.run("Draw me the picture of a capybara swimming in the sea")

在这里,模型可以用两种方式解释:

  • 让 text-to-image 水豚在海里游泳

  • 或者,生成 text-to-image 水豚,然后使用 image-transformation 工具让它在海里游泳

如果用户想强制执行第一种情况,可以通过将 prompt 作为参数传递给它来实现:

agent.run("Draw me a picture of the prompt", prompt="a capybara swimming in the sea")

基于聊天的执行 

智能体还有一种基于聊天的方法:

agent.chat("Generate a picture of rivers and lakes")

agent.chat ("Transform the picture so that there is a rock in there")

这是一种可以跨指令保持状态时。它更适合实验,但在单个指令上表现更好,而 run () 方法更擅长处理复杂指令。如果用户想传递非文本类型或特定 prompt,该方法也可以接受参数。

参考链接:

https://twitter.com/DrJimFan/status/1656352534213332996

https://twitter.com/cryptonerdcn/status/1656367960175575040

关注公众号【机器学习与AI生成创作】,更多精彩等你来读

深入浅出stable diffusion:AI作画技术背后的潜在扩散模型论文解读

深入浅出ControlNet,一种可控生成的AIGC绘画生成算法! 

经典GAN不得不读:StyleGAN

 戳我,查看GAN的系列专辑~!

一顿午饭外卖,成为CV视觉的前沿弄潮儿!

最新最全100篇汇总!生成扩散模型Diffusion Models

ECCV2022 | 生成对抗网络GAN部分论文汇总

CVPR 2022 | 25+方向、最新50篇GAN论文

 ICCV 2021 | 35个主题GAN论文汇总

超110篇!CVPR 2021最全GAN论文梳理

超100篇!CVPR 2020最全GAN论文梳理

拆解组新的GAN:解耦表征MixNMatch

StarGAN第2版:多域多样性图像生成

附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 |《计算机视觉中的数学方法》分享

《基于深度学习的表面缺陷检测方法综述》

《零样本图像分类综述: 十年进展》

《基于深度神经网络的少样本学习综述》

《礼记·学记》有云:独学而无友,则孤陋而寡闻

点击 一顿午饭外卖,成为CV视觉的前沿弄潮儿!,领取优惠券,加入 AI生成创作与计算机视觉 知识星球!

HuggingGPT进化,一键控制10万多个AI模型相关推荐

  1. CSDN日报190923:盘点那些被AI换脸、一键“脱”衣所滥用的AI模型

    CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 人工智能|盘点那些被AI换脸.一键"脱"衣所滥用的AI模型 作者:beyondma 虽然笔者对于技术的滥用深恶痛绝,但技术本身是 ...

  2. 512张GPU炼出10万亿参数巨模型!5个月后达摩院模型再升级,今年双十一已经用上了...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 超大规模 ...

  3. 《AI系统周刊》第5期:Cerebras发布可运行120万亿参数AI模型的CS-2芯片

    No.05 智源社区 AI系统组 A I 系  统 研究 观点 资源 活动 关于周刊 AI系统是当前人工智能领域极具现实意义与前瞻性的研究热点之一,为了帮助研究与工程人员了解这一领域的进展和资讯,我们 ...

  4. 一键控制全屋设备,AI交互时代来临

    你是否设想过这样一个场景,语音控制家中所有智能设备,发生故障自动报修,同时设备还能判断房屋安全状况,并及时发出警告.. 如今,这些设想已然成为现实."只要是'Powered by Tuya' ...

  5. 10 Model Card 保证AI模型伦理道德的好工具

    伦理道德的六个方面中每一个方面的验证都需要收集很多问题,想要通过一次性的收集整理还是很难覆盖全部的伦理道德的验证内容.所以我们应该通过有效的手段从模型建立之初就开始着手收集关于AI系统的各种信息,为伦 ...

  6. 谷歌发布史上“最强大脑”——可以控制和操作机器人的AI模型

    ​谷歌发布了一款被誉为史上"最强大脑"的人工智能模型PaLM-E (Parameter-efficient Language Model with Explicit Memory) ...

  7. python富翁与陌生人编程_GitHub近10万星:印度小哥用Python和Java实现所有AI算法

    原标题:GitHub近10万星:印度小哥用Python和Java实现所有AI算法 又到了招聘季.疫情将我们圈在家里这么长时间,以至于都宅废了! AI的算法你还记得多少?他们都是如何用Python和Ja ...

  8. deepfakes超进化!反复变脸行云流水,完全没有PS痕迹,推特10万点赞

    鱼羊 栗子 发自 凹非寺  量子位 报道 | 公众号 QbitAI Deepfakes要冲出天际了. 这里有一段神奇的视频 (被我裁成了动图) ,请擦亮眼睛观看. 因为讲话的人类,中途从比尔·哈德,变 ...

  9. 10万亿的新房市场,为何没有一家现象级的电商?

    很奇怪 一个超10万亿的行业 竟没有真正意义的电商平台 房地产,是支柱,是民生,是巨无霸行业,2017年房地产新房住宅市场1年销售10万亿左右,多个研究机构表明,未来中国房地产新房市场将继续高位横盘甚 ...

最新文章

  1. 【目标检测基础积累】常用的评价指标
  2. jsp页面,在浏览器端显示时会出现乱码解决方法
  3. CentOS中使用Dockerfile部署初始化sql文件的mysql
  4. Mybatis的jdbc参数设置
  5. DateFormat(炸窝)
  6. 在Linux上安装Elasticsearch Kibaba.md
  7. 8086的总线操作顺序
  8. everything开启服务器功能
  9. C# 中Session的用法
  10. netplan apply报错Error: Conflicting default route declarations for IPv4 (table: main, metric: default)
  11. 五笔打字怎么学,负基础
  12. Android使用串口打印机打印图片方法
  13. Win32创建菜单篇
  14. 01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS)
  15. 如何找回一台丢失的Win10电脑?
  16. 唱歌如何更好听? KTV调音师帮你忙
  17. 根据时间生成分配批次号
  18. 论文阅读:GMAN: A Graph Multi-Attention Network for Traffic Prediction
  19. 肺部结节手术风险评估和手术时间预测 相关工作及可行性分析
  20. DB2 锁问题分析与解释

热门文章

  1. win10自带的便笺便签有哪些方便快捷的操作小技巧?
  2. Jquery的on方法绑定事件
  3. VLN: 基于全局对比训练的视觉-语言导航方法
  4. js学习笔记 - ES6 ES5的区别
  5. 用ExcelVBA下载可转债历史数据
  6. Repeater绑定事件ItemDataBound中获取数据库中数据
  7. python复制图片到另一个目录
  8. 热血球篮维修服务器是怎么回事,《热血篮球》20140107维护公告
  9. Mysql using 用法
  10. linux中八进制数对应符号,八进制