玩转Transformers Agents:轻松调用百万AI模型实战

  1. 简介

  • 简单来说,就是以前想要实现某一个AI功能,需要自己去网上搜索对应的模型、下载对应的权重才能使用。现在可以把中间的这些个环节都砍了,我们只需要告诉模型我们想要对某段文字或者某张图片进行什么操作,transformer就会自动帮我们分解我们的命令、要求,从Hugging Face上面搜索对应的仓库,下载对应的权重,然后运行推理,非常的梦幻。

  1. 安装

首先,安装最新版的transformers

  • 目前这个功能还是处于实验阶段,因此只有最新版的transformers才可以访问上面的工具链
  • pip install -U transformers

其他模块的安装

pip install huggingface_hub>=0.14.1 git+https://github.com/huggingface/transformers@$transformers_version -q diffusers accelerate datasets torch soundfile sentencepiece opencv-python openai

  1. 配置

3.1. 配置模型库的token

  • 输入自己Hugging Face的Token进行登录

3.2. 配置命令解析agent

  • 命令解析库主要用于将我们说的自然语言翻译成机器能听懂的机器语言,到底是用哪个模型来执行对应的操作,比如生成图像的用image_generate模型,生成文字的用text_generate模型,相当于中央控制器。
  • 可以使用Hugging Face,也可以使用OpenAI,还可以使用OpenAssistant,为了方便,这里我就使用默认的Hugging Face了
  1. 各个功能

4.1. 通过描述生成图片

  • 一行代码就可以搞定之前需要花费大把时间才能完成的任务
### boat = agent.run("Generate an image of a boat in the water")


  • 可以看到,等他把权重下载完之后,就可以推理生成我们想要的图片了

  • 这是在谷歌云端尝试的,在自己本地的PSE上面也可以实现对应的代码
  • 本地端很有可能会报网络出错的问题,如果出错的话,那么就多试几次即可。
  • 官网的代码写的很啰嗦,自己这里直接精简成一段代码
from huggingface_hub import login
from transformers.tools import HfAgent
import matplotlib.pyplot as plt

login('xxxx')
agent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder")
boat = agent.run("Generate an image of a boat in the water")
plt.imshow(boat)
plt.show()

  • 这里需要注意的是,如果开代理的话,最好把代理关掉,要一直会报网络错误

4.2. 给图片加上标题

  • 之前我们生成的图片如下
  • 通过下面的代码生成这张图片的描述
### caption = agent.run("Can you caption the `boat_image`?", boat_image=boat)

  • 他生成的答案是 a boat is floating in the water ,非常准确
4.2.1. 完整代码
from huggingface_hub import login
from transformers.tools import HfAgent
import matplotlib.pyplot as plt

login('xxxx')
agent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder")
boat = agent.run("Generate an image of a boat in the water")
plt.imshow(boat)
plt.show()
caption = agent.run("Can you caption the `boat_image`?", boat_image=boat)
print("caption:", caption)

  • 甚至可以用中文来回复

4.3. 朗读文本

  • 我们可以直接给他发命令,让他帮我们朗读一段文字
### audio = agent.run("Read out loud 'I love china' ")
play_audio(audio)

  • 播放声音的时候,如果声音很短,那么多,等一会儿,等它推理完之后就可以听了
  • 也可以朗读某个网站的摘要

这里以知乎为例进行朗读

audio = agent.run("Read out loud the summary of https://www.zhihu.com/")
play_audio(audio)

4.4. 进行对话

  • 既然已经接入了类似于ChatGPT这样的控制器,那么自然而然可以进行对话了
  • 这里的命令是agent.chat()
4.4.1. 问一下他的名字

可能是因为这里之前一直在说的是声音和图像的问题,所以这里突然问他的名字,结合前面的上下文,有点不知所云了

  1. 评价

  • 这个工具好是好,但是最好是放在谷歌的Colaboratory上面来运行,如果是用本地运行的话,一是本地下载速度可能会比较慢。二是下载的东西太多,都是大文件,很快就把自己的C盘电脑空间给占完了
  • 此外,这个工具刚提出来,项目还有很多bug,很多时候提的要求并不能直接把自己一键把所有的参数都填完。所以在运行的过程中会报各种各样的错误
  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值