transformers之agent

news2024/11/17 3:52:11

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

什么是 Transformers Agents?

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

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

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

工作流程:

 

  • 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= "<your_api_key>" ) 

from transformers import OpenAiAgent 
from huggingface_hub import login 
login( "<YOUR_TOKEN>" ) 

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

给图片加描述:

 

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

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

 朗读文本:

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

进行对话

这里的命令是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 的更多的惊人成果。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1435755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python将Word页面纸张方向设置为横向

通过python-docx的章节属性&#xff0c;就可以更改纸张方向、纸张尺寸。 import docx from docx.enum.section import WD_ORIENT from docx.shared import Cmdocument docx.Document() section document.sections[0]# 设置纸张大小为A4大小 section.page_width Cm(21) sect…

AI人工智能怎么自动抠图去除背景

抠图在许多场合中都发挥着重要的作用&#xff0c;它可以帮助我们去除图片的背景&#xff0c;从而将图片转换成透明底色&#xff0c;方便我们为图片更换其他的背景。为了实现照片去除背景只提取人物&#xff0c;我们需要使用专业的图片处理工具&#xff0c;并进行一系列的操作。…

万界星空科技低代码平台:快速搭建MES系统

低代码MES系统&#xff1a;制造业数字化转型的捷径 随着制造业的数字化转型&#xff0c;企业对生产管理系统的需求逐渐提高。传统的MES系统实施过程复杂、成本高昂&#xff0c;已经无法满足现代企业的快速发展需求。而低代码搭建MES系统的出现&#xff0c;为企业提供了一种高…

公共用例库计划--个人版(七)Excel导入功能开发与导出功能改造

1、任务概述 本次计划的核心任务是开发一个&#xff0c;个人版的公共用例库&#xff0c;旨在将各系统和各类测试场景下的通用、基础以及关键功能的测试用例进行系统性地归纳整理&#xff0c;并以提高用例的复用率为目标&#xff0c;力求最大限度地减少重复劳动&#xff0c;提升…

巴尔加瓦算法图解:K最近邻算法

巴尔加瓦算法图解&#xff1a;K最近邻算法 目录 巴尔加瓦算法图解&#xff1a;K最近邻算法判断水果创建推荐系统1. 判断相似程度练习 回归&#xff08;预测结果&#xff09;机器学习总结 本章内容 ❑ 学习使用K最近邻算法创建分类系统。❑ 学习特征抽取。❑ 学习回归&#xff0…

JAVA建造者模式详解

建造者模式 1 建造者模式介绍 建造者模式 (builder pattern), 也被称为生成器模式 , 是一种创建型设计模式. 定义: 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 **建造者模式要解决的问题 ** 建造者模式可以将部件和其组装过程分开…

代码编辑器垂直选中列选择

一、vscode 1. alt shift 鼠标左键 效果如下&#xff1a;&#xff08;可框选字符&#xff0c;也可仅垂直编辑&#xff09; 2. ctrl alt 方向键 这个不像上个操作那样可以框选字符&#xff0c;只能上下&#xff08;并不总垂直&#xff09; 二、VS 1. alt 鼠标左键 或…

动态规划解决棋盘覆盖问题:一步步教你理解

从简单到复杂:理解动态规划通过矩形覆盖问题 动态规划是解决各种算法问题的一种强大方法,特别是当问题可以分解成重叠的子问题时。为了深入理解这个概念,我们将先从一个简单的矩形覆盖问题开始,然后逐步过渡到更复杂的二维棋盘覆盖问题。 简单问题:用2x1的小矩形覆盖2xn…

Linux实验记录:使用DHCP动态管理主机地址

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 动态主机配置协议&#xff08;DHCP&…

idea运行程序报错 java 程序包org.junit不存在

在 IntelliJ IDEA 中运行程序时遇到错误提示&#xff1a;“java: 程序包org.junit不存在”&#xff0c;针对这一问题&#xff0c;我们可以考虑以下三步来解决&#xff1a; 第一步&#xff1a;检查JUnit依赖 尽管现代项目创建时通常会默认引入JUnit依赖&#xff0c;但仍需检查…

Redis(十二)Bigkey

文章目录 游标案例生成100万测试数据key生产上限制keys */flushdb/flushall等危险命令不使用keys *&#xff1a;scan Biigkey案例多大算大发现bigkey渐进式删除生产调优示例问题 游标案例 生成100万测试数据key shell: for((i1;i<100*10000;i)); do echo "set k$i v…

CF1404BTree Tag/ BZOJ0487. 树上追逐详解

1.题目 传送门:Tree Tag - 洛谷 2.思路 我们考虑什么情况下Alice可以获胜. 如果​ ≤ da&#xff0c;则Alice可以一步就追上Bob. 如果Alice处在一个能覆盖整棵树的点&#xff0c;即2da 1≥树的直径&#xff0c;那么Bob也无论走到哪里Alice都能追到,Alice获胜. 其它情况下…

浅析现代计算机启动流程

文章目录 前言启动流程概述磁盘分区格式MBR磁盘GPT磁盘隐藏分区 传统BIOS引导传统BIOS启动流程 UEFI引导UEFI引导程序UEFI启动流程 引导加载程序启动操作系统相关参考 前言 现代计算机的启动是一个漫长的流程&#xff0c;这个流程中会涉及到各种硬件的配置与交互&#xff0c;包…

(基于xml配置Aop)学习Spring的第十五天

一 . Spring Aop编程简介 再详细点 , 如下 二 . 基于xml配置Aop 解决proxy相关问题 解决问题开始用xml配置AOP 导入pom坐标 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.6</vers…

npm淘宝镜像源换新地址

新的淘宝npm镜像源地址&#xff1a;https://registry.npmmirror.com 切换新的镜像源 npm config set registry https://registry.npmmirror.com然后再执行以下操作查看是否成功 npm config list如果没安装过淘宝镜像源的&#xff0c;则直接安装 npm install -g cnpm --regi…

机器学习之DeepSequence软件使用学习1

简介 DeepSequence 是一个生成性的、无监督的生物序列潜变量模型。给定一个多重序列比对作为输入&#xff0c;它可以用来预测可获得的突变&#xff0c;提取监督式学习的定量特征&#xff0c;并生成满足明显约束的新序列文库。它将序列中的高阶依赖性建模为残差子集之间约束的非…

【C/C++】字符串长度 ☞ ‘sizeof‘ ‘strlen‘ ‘.length()‘

在C或C中&#xff0c;strlen和sizeof是两个经常被用到的&#xff0c;但作用完全不同的函数或操作符。 结论写在前面&#xff1a; strlen用于获取字符串的实际长度&#xff08;不包含结尾的空字符&#xff09;&#xff0c;而sizeof用于获取变量或类型的内存占用大小。对于std:…

肯尼斯·里科《C和指针》第10章 结构和联合(1)结构的基础知识

聚合数据类型(aggregate data type)能够同时存储一个以上的单独数据。C提供了两种类型的聚合数据类型&#xff1a;数组和结构。 数组是相同类型的元素的集合&#xff0c;它的每个元素是通过下标引用或指针间接访问来选择的。 结构也是一些值的集合&#xff0c;这些值称为它的成…

EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)

目录 小球视频 图像输出函数 loadimage用于从文件中读取图片 putimage在当前设备上绘制指定图像。 initgraph 函数 图片输出 代码详解&#xff1a; 1. 初始化图形界面 2. 设置背景颜色并清除屏幕 3. 加载并显示图片 4. 等待用户输入并退出程序 图形界面中的小球 1…

AI新工具(20240205) AI 对联/春联 - 输入描述,自动生成春联图片;AI写作引擎;满分简历

AI 对联/春联 - 输入描述&#xff0c;自动生成春联图片 AI 对联/春联 AI 对联/春联是一个由YunYouJun开发的开源项目&#xff0c;用于生成春节对联。 https://github.com/YunYouJun/ai-sfc 满分简历 - HR在7秒内决定一份简历去留&#xff0c;让你的简历脱颖而出 满分简历 …