transformers之agent

Hugging Face 发布了 Transformers Agent,一种利用自然语言从精选工具集合中选择工具并完成各种任务的代理。此举使其与 LangChain 作为构建企业通用人工智能 (AGI) 应用程序的新兴框架直接竞争,因为它很像 LangChain 工具和代理。

什么是 Transformers Agents?

简单来说它在转换器之上提供了一个自然语言 API:定义了一组精选工具并设计了一个代理来解释自然语言并使用这些工具。

可以想象 HuggingFace 的工程师会是这样的:在 HuggingFace 上托管了很多令人惊叹的模型,可以将它们与 LLM 整合吗?可以使用 LLM 来决定使用哪个模型、编写代码、运行代码并生成结果吗?从本质上讲,没有人需要再学习所有复杂的特定任务模型。只要给它一个任务,LLMs(代理人)就会为其包办一切。

注意:LLM就大语言模型,转换器可学会理解基本的语法、语言和知识,例如:如理解蛋白质结构、编写软件代码等。像人类大脑一样,大型语言模型必须经过预先训练,然后再进行微调,这样它们才能解决文本分类、问题解答、文档摘要和文本生成等问题。它们这些解决问题的能力可应用于医疗保健、金融和娱乐等多种领域;在这些领域中,大型语言模型用于支持各种 NLP 应用程序,例如翻译、聊天机器人、AI 助手等。

工作流程:

transformers之agent_第1张图片 

  • Instruction(使用说明):提示由用户来提供
  • Prompt(提示):添加了具体说明的提示模板,其中列出了多个要使用的工具。
  • Tools(工具):精选的 transformers 模型列表,例如用于问答的 Flan-T5
  • Agent(代理):解释问题、决定使用哪些工具并生成代码以使用工具执行任务的 LLM。
  • Restricted Python interpreter(受限 Python 解释器):执行 Python 代码。

 

工作原理:

第 1 步:实例化 Agent (代理)

第一步是实例化一个 Agent (代理), Agent (代理)只是一个 LLM,它可以是 OpenAI 模型、StarCoder 模型或 OpenAssistant 模型。

OpenAI 模型需要 OpenAI API 密钥并且使用不是免费的。从 HuggingFace Hub 加载 StarCoder 模型和 OpenAssistant 模型,这需要 HuggingFace Hub API 密钥并且可以免费使用。

from transformers import HfAgent 

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

from transformers import OpenAiAgent 
from huggingface_hub import login 
login( "" ) 

# Starcoder
 agent = HfAgent( "https://api-inference.huggingface.co/models/bigcode/starcoder" ) 

# OpenAssistant
 agent = HfAgent(url_endpoint= "https://api-inference.huggingface.co/models/OpenAssistant/oasst-sft-4 -pythia-12b-epoch-3.5" )

 

第 2 步:运行 Agent (代理)

agent.run 是一个单一的执行方法,自动选择任务的工具,例如,选择图像生成器工具来创建图像。

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

transformers之agent_第2张图片

给图片加描述:

transformers之agent_第3张图片 

caption = agent.run("Can you caption the `boat_image`?", boat_image=boat)

 他生成的答案是 a boat is floating in the water

transformers之agent_第4张图片

 朗读文本:

audio = agent.run("Read out loud 'I love china' ")
play_audio(audio)

transformers之agent_第5张图片

进行对话

这里的命令是agent.chat()

agent.chat('今天天气好么')

 注意:

最好是放在谷歌的Colaboratory上面来运行,如果是用本地运行的话,一是本地下载速度可能会比较慢。二是下载的东西太多,都是大文件,很快就把自己的C盘电脑空间给占完了

 

Hugging Face Transfomers Agent 有一个惊人的工具列表,每个工具都由变形模型提供支持。这些工具提供了三个显着优势:

1、尽管 Transformers Agent 目前只能与少数工具进行交互,但它有可能与超过 100,000 个Hugging Face 模型进行通信。它拥有完整的多模式功能,包括文本、图像、视频、音频和文档。
2、由于这些模型是为特定任务专门构建的,与仅依赖 LLM 相比,使用它们可以更直接并产生更准确的结果。例如,可以简单地部署专为文本分类设计的 BART,而不是为 LLM 设计文本分类的提示;
3、这些工具解锁了 LLM 无法单独完成的功能,例如 BLIP。

在这里探索了 Hugging Face Transformers Agents 的功能,并将其与 LangChain Agents 进行了比较。期待 Transformers Agent 的更多的惊人成果。 

你可能感兴趣的:(【NLP】,深度学习)