让 ChatGPT 调用 10 万 + 开源 AI 模型!HuggingFace 新功能爆火:大模型可随取随用多模态 AI 工具
来源:量子位 | 2023-05-12 17:11:04

只需和 ChatGPT 聊聊天,它就能帮你调用 10 万 + 个 HuggingFace 模型!


(相关资料图)

这是抱抱脸最新上线的功能HuggingFace Transformers Agents,一经推出就获得极大关注:

这个功能,相当于给ChatGPT 等大模型配备了 " 多模态 " 能力——

不限于文本,而是图像、语音、文档等任何多模态任务都能解决。

例如告诉 ChatGPT" 解释这张图像 ",并扔给它一张海狸照片。ChatGPT 就能调用图像解释器,输出 " 海狸正在水里游泳 ":

随后,ChatGPT 再调用文字转语音,分分钟就能把这句话读出来:

当然,它不仅支持 ChatGPT 在内的 OpenAI 大模型,也支持 OpenAssistant 等免费大模型。

Transformer Agent 负责 " 教会 " 这些大模型直接调用 Hugging Face 上的任意 AI 模型,并输出处理好的结果。

所以这个新上线的功能,背后的原理究竟是什么?

如何让大模型 " 指挥 " 各种 AI?

简单来说,Transformers Agents 是一个大模型专属的 " 抱抱脸 AI 工具集成包 "。

HuggingFace 上各种大大小小的 AI 模型,都被收纳在这个包里,并被分门别类为 " 图像生成器 "、" 图像解释器 "、" 文本转语音工具 " ……

同时,每个工具都会有对应的文字解释,方便大模型理解自己该调用什么模型。

这样一来,只需要一段简单的代码 + 提示词,就能让大模型帮助你直接运行 AI 模型,并将输出结果实时返还给你,过程一共分为三步:

首先,设置自己想用的大模型,这里可以用 OpenAI 的大模型(当然,API 要收费):

from transformers import OpenAiAgent

agent = OpenAiAgent ( model="text-davinci-003", api_key="" )

也可以用 BigCode 或 OpenAssistant 等免费大模型:

from huggingface_hub import login

login ( "" )

然后,设置 Hugging Transformers Agents。这里我们以默认的 Agent 为例:

from transformers import HfAgent

# Starcoder

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" )

接下来,就可以使用 run ( ) 或者 chat ( ) 两个指令,来运行 Transformers Agents 了。

run ( ) 适合同时调用多个 AI 模型,执行比较复杂专业的任务。

可以调用单个 AI 工具

例如执行 agent.run ( "Draw me a picture of rivers and lakes." ) ,它就能调用 AI 文生图工具帮你生成一张图像:

也可以同时调用多个 AI 工具

例如执行 agent.run ( "Draw me a picture of the sea then transform the picture to add an island" ) ,它就能调用 " 文生图 " 和 " 图生图 " 工具,帮你生成对应图像:

chat ( ) 则适合以聊天的方式 " 持续完成任务 "。

例如,先调用文生图 AI 工具,生成一个河流湖泊图片:agent.chat ( "Generate a picture of rivers and lakes" )

再在这张图片的基础上做 " 图生图 " 修改:agent.chat ( "Transform the picture so that there is a rock in there" ) 要调用的 AI 模型可以自行设置,也可以使用抱抱脸自带的一套默认设置来完成。

已设置一套默认 AI 模型

目前,Transformers Agents 已经集成了一套默认 AI 模型,通过调用以下 Transformer 库中的 AI 模型来完成:

1、视觉文档理解模型Donut。给定图片格式的文件(PDF 转图片也可以),它就能回答关于这个文件的问题。

例如问 "TRRF 科学咨询委员会会议将在哪里举行 ",Donut 就会给出答案:

2、文字问答模型Flan-T5。给定长文章和一个问题,它就能回答各种文字问题,帮你做阅读理解。

3、零样本视觉语言模型BLIP。它可以直接理解图像中的内容,并对图像进行文字说明。

4、多模态模型ViLT。它可以理解并回答给定图像中的问题,

5、多模态图像分割模型CLIPseg。只需要给它一个模型和一个提示词,它就能根据这个提示分割出图像中指定的内容(mask)。

6、自动语音识别模型Whisper。它可以自动识别一段录音中的文字,并完成转录。

7、语音合成模型SpeechT5。用于文本转语音。

8、自编码语言模型BART。除了可以自动给一段文字内容分类,还能做文本摘要。

9、200 种语言翻译模型NLLB。除了常见语言外,还能翻译一些不太常见的语言,包括老挝语和卡姆巴语等。

通过调用上面这些 AI 模型,包括图像问答、文档理解、图像分割、录音转文字、翻译、起标题、文本转语音、文本分类在内的任务都可以完成。

这些模型不仅能单独调用,还可以混合在一起使用,例如要求大模型 " 生成并描述一张好看的海狸照片 ",它就会分别调用 " 文生图 " 和 " 图片理解 "AI 模型。

当然,如果我们不想用这些默认 AI 模型,想设置一套更好用的 " 工具集成包 ",也可以根据步骤自行设置。

对于 Transformers Agents,也有网友指出,有点像是LangChainagents 的 " 平替 ":

你试过这两个工具了吗?感觉哪个更好用?

参考链接:

[ 1 ] https://twitter.com/huggingface/status/1656334778407297027

[ 2 ] https://huggingface.co/docs/transformers/transformers_agents

精彩推荐