Maison >Périphériques technologiques >IA >AutoGPT à la main ! Laissez ChatGPT choisir plus de 100 000 modèles d'IA, officiellement produits par HuggingFace
Il y a quelque temps, HuggingGPT proposé par l'équipe Microsoft de l'Université du Zhejiang est devenu populaire dans l'ensemble du cercle technologique.
Ce système de collaboration à grands modèles utilise ChatGPT comme contrôleur pour appeler à volonté différents modèles dans HuggingFace afin de réaliser des tâches multimodales.
Laisser ChatGPT être le « patron » est devenu une direction sur laquelle beaucoup de gens sont optimistes.
Non, ce qui est censé arriver arrive...
HuggingFace, la communauté d'IA la plus populaire au monde, produit officiellement "Transformers Agent", qui peut réaliser de la magie en contrôlant plus de 100 000 IA.
Jim Fan, scientifique chez NVIDIA, a salué cela comme la première étape vers l'application Everything, et à mesure que l'écosystème se développe, ses capacités continuent de croître.
Il a poursuivi en disant que HuggingGPT est la première démonstration à grande échelle de cette idée. Il utilise GPT comme contrôleur pour sélectionner dynamiquement des outils (modèles) pour résoudre des tâches en plusieurs étapes. L'App Store de
ChatGPT est bien sûr un exemple d'application d'un écosystème d'outils d'IA. Le nouvel agent Transformers vous permet d'avoir des super buffs et de créer rapidement des agents IA.
En utilisant Transformers Agent, vous pouvez ouvrir la bouche pour dessiner des images, et vous pouvez également les faire lire à haute voix.
Jetons un coup d'œil à quelques exemples~
<code>agent.run("Caption the following image", image=image)</code>
Le premier commence par quelque chose de simple. Entrez une photo et ajoutez une description, un castor mignon nageant dans l'eau (super mignon, pensez rua).
<code>agent.run("Read the following text out loud", text=text)</code>
Le second n'est pas difficile non plus, il suffit de convertir le texte en parole.
<code>agent.run("In the following `document`, where will the TRRF Scientific Advisory Council Meeting take place?",document=document,)</code>
Celui-ci est un peu plus difficile. L'exigence de contribution est d'indiquer où se tiendront les réunions du comité consultatif scientifique.
Bien sûr, pour l'IA, récupérer la dernière ligne trouve également la réponse.
Avant d'utiliser agent.run, les utilisateurs doivent instancier un agent, qui est un grand modèle de langage (LLM).
Les chercheurs prennent en charge les modèles OpenAI, ainsi que les alternatives open source de BigCode et OpenAssistant.
Bien que les performances du modèle OpenAI soient meilleures, les utilisateurs doivent disposer d'une clé API OpenAI, son utilisation n'est donc pas gratuite.
Hugging Face a déclaré qu'il fournissait des points de terminaison d'accès gratuit pour des modèles tels que BigCode et OpenAssistant.
Tout d'abord, les utilisateurs doivent installer le module complémentaire d'agent.
<code>pip install transformers[agents]</code>
Pour utiliser le modèle OpenAI, l'utilisateur doit instancier un OpenAiAgent après avoir installé la dépendance OpenAI :
<code>pip install openaifrom transformers import OpenAiAgentagent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")</your_api_key></code>
Si l'utilisateur souhaite utiliser BigCode ou OpenAssistant, il doit d'abord se connecter pour pouvoir accéder au API :
<code>from huggingface_hub import loginlogin("<your_token>")</your_token></code>
Ensuite, instanciez l'agent :
<code>from transformers import HfAgent# Starcoderagent = 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")</code>
Cela utilise l'API d'inférence actuellement fournie gratuitement par Hugging Face. Si l'utilisateur dispose de son propre point de terminaison d'inférence, il peut remplacer l'URL ci-dessus.
StarCoder et OpenAssistant sont gratuits et fonctionnent bien sur des tâches simples.
然而,在处理更复杂的提示时,检查点就不成立了。如果用户面临这样的问题,可以尝试一下OpenAI模型,虽然很遗憾它不是开源的,但胜在表现不错。
单一执行方法是在使用代理的run()方法时使用的:
<code>agent.run("Draw me a picture of rivers and lakes.")</code>
它自动选择适合你要执行的任务的工具(或工具)并适当地运行它们。它可以在同一指令中执行一个或几个任务(你的指令越复杂,就越有可能失败)。
<code>agent.run("Draw me a picture of the sea then transform the picture to add an island")</code>
每个run()操作都是独立的,所以你可以用不同的任务连续运行几次。
请注意,用户的智能体只是一个大语言模型,所以prompt中的小变化可能产生完全不同的结果。尽可能清楚地解释要执行的任务是很重要的。
研究人员深入地讨论了如何写出更好的prompt。
如果你想在整个执行过程中保持一个状态,或者向智能体传递非文本对象,你可以通过指定变量来做到这一点。
例如,你可以生成第一张河流和湖泊的图片,并要求模型通过以下方式更新该图片以增加一个岛屿:
<code>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.chat("Generate a picture of rivers and lakes")</code>
这里让系统生成一张河流湖泊的照片。
<code>agent.chat("Transform the picture so that there is a rock in there")</code>
下一步,研究人员又让系统给原图中加一个岛屿。
当用户想保持跨指令的状态时,这是一个很有趣的方法。
它更适合于实验,但往往在单条指令而不是复杂指令方面会好很多。
如果你想传递非文本类型或特定的提示,这个方法也可以接受参数。
要了解如何自己设置远程执行器工具,研究人员建议用户阅读自定义工具指南。
为了与远程工具一起运行,在run()或chat()中指定remote=True就可以了。
例如,以下命令可以在任何设备上有效地运行,不需要大量的RAM或GPU:
<code>agent.run("Draw me a picture of rivers and lakes", remote=True)</code>
对chat()来说也是一样的:
<code>agent.chat("Draw me a picture of rivers and lakes", remote=True)</code>
网友表示,Transformers Agent就像AutoGPT一样。
还有人表示,Transformers Agent打开了自然语言编程的大门,可以想象,未来的操作系统就是智能模型,人类通过自然语言编排任务,越来越多的非开发者可以自己实现各种计算机应用。
Transformers Agents整体的运作流程简单分为四步:
设定目标、提供工具、展示示例、下达任务。
智能体会使用链式思考推理来确定其任务,并用提供的工具输出Python代码。
如何安装和使用,官方给出了具体步骤。
https://www.php.cn/link/e4f67a0e4293245fba713c412fc63e28
其中,这里的「智能体」指的是,一个大型语言模型。通过提示LLM,让其访问特定的一组工具。
因为LLM非常擅长生成较小的代码样本,所以API利用了这一点优势。
你可以用抱抱脸自家的OpenAssistant、StarCoder,甚至还可以用OpenAI的模型。
提示LLM给出一个小的代码样本,并用一组工具执行一个任务。这个提示包括,给智能体的任务,以及工具的描述。
这样,「智能体」就可以找到所使用工具的文档,特别是预期的输入和输出,并可以生成相关的代码。
而「工具」就非常好理解,是一个单独的函数,带有名称和描述。
然后,使用这些工具的描述来提示「智能体」,作用就在于可以像智能体展示如何用工具来执行查询中的请求内容。
再之后,通过利用Python解释器在与工具一起上传的一组输入中执行代码。
如果唯一调用的函数是你自己提供的工具和print函数,那么,开发者会在可执行内容上受到限制。当然了,抱抱脸社区的工具,是比较安全的。
除此之外,HuggingFace在Transformers Agents中还集成了以下工具:
- 文档问答:给定一个图像格式的文档(PDF),回答文档的问题(Donut)
- 文本问答:给定一个长文本和一个问题,回答文本中的问题(Flan-T5)
- 无条件给图像加标题:(BLIP)
- 图像问答:给定一个图像,回答关于这个图像的问题(VILT)
- 图像分割:给定一个图像和一个提示,输出该提示的分割掩码(CLIPSeg)
- 语音转文本:给定一个音频记录,将语音转录为文本(Whisper)
- 文本到语音:将文本转换为语音(SpeechT5)
- 零样本文本分类:给定一个文本和一列标签,确定该文本与哪个标签最对应(BART)
- 文本总结:用一个或几个句子来总结一个长文本(BART)
- 翻译:将文本翻译成一种语言(NLLB)
这些工具都内置在Transformers中,也可以手动使用,比如:
<code>from transformers import load_tooltool = load_tool("text-to-speech")audio = tool("This is a text to speech tool")</code>
此外,还有一些定制的工具集成在Transformers Agents中,其中包括文本下载器、文本到图像的扩散模型stable diffusion、图像变换instruct pix2pix stable diffusion,以及文本到视频damo-vilab。
官方给出了一个自定义工具和提示的教程:
https://www.php.cn/link/735a8b95123648555736192cd3978bc1
如上,已经展示了如何使用Transformers Agents流程。
但是,智能体只生成代码,通过使用非常受限的Python解释器执行这些代码。
如果你希望使用在不同设置中生成的代码,可以提示智能体返回代码,对工具定义,并准确导入。
比如,根据以下步骤实现:
<code>agent.run("Draw me a picture of rivers and lakes", return_code=True)</code>
返回以下代码:
<code>from transformers import load_toolimage_generator = load_tool("huggingface-tools/text-to-image")image = image_generator(prompt="rivers and lakes")</code>
然后,你就可以修改和执行自己的工具了。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!