얼마 전 저장대학교 Microsoft 팀이 제안한 HuggingGPT가 전체 기술계에서 인기를 얻었습니다.
이 대규모 모델 협업 시스템은 ChatGPT를 컨트롤러로 사용하여 HuggingFace의 다양한 모델을 마음대로 호출하여 다중 모드 작업을 수행합니다.
ChatGPT를 "보스"로 두는 것은 많은 사람들이 낙관하는 방향이 되었습니다.
아니, 예정된 일이 오고 있다...
세계에서 가장 인기 있는 AI 커뮤니티인 HuggingFace에서 100,000개 이상의 AI를 제어하여 마법을 이룰 수 있는 "Transformers Agent"를 공식 제작합니다.
NVIDIA 과학자 Jim Fan은 이것을 Everything App을 향한 첫 걸음이라고 칭찬했으며, 생태계가 확장됨에 따라 그 역량도 계속해서 성장하고 있습니다.
그는 계속해서 HuggingGPT가 이 아이디어의 첫 번째 대규모 시연이라고 말했습니다. GPT를 컨트롤러로 사용하여 다단계 작업을 해결하기 위한 도구(모델)를 동적으로 선택합니다.
ChatGPT의 “App Store”는 물론 AI 도구 생태계 애플리케이션의 예입니다. 새로운 Transformers Agent를 사용하면 엄청난 버프를 얻고 AI 에이전트를 빠르게 구축할 수 있습니다.
트랜스포머 에이전트를 사용하면 입을 벌려 그림을 그릴 수 있고, 읽어줄 수도 있습니다.
몇 가지 예를 살펴보겠습니다~
<code>agent.run("Caption the following image", image=image)</code>
첫 번째는 간단한 것부터 시작합니다. 사진을 입력하고 설명을 추가하세요. 물 속에서 헤엄치는 귀여운 비버입니다(정말 귀엽습니다. 루아라고 생각하세요).
<code>agent.run("Read the following text out loud", text=text)</code>
두 번째도 어렵지 않습니다. 간단히 텍스트를 음성으로 변환하세요.
<code>agent.run("In the following `document`, where will the TRRF Scientific Advisory Council Meeting take place?",document=document,)</code>
이건 좀 더 어렵네요. 의견을 제시하려면 과학 자문 위원회 회의가 열리는 장소를 명시해야 합니다.
물론 AI의 경우 마지막 줄을 검색해도 답을 찾을 수 있습니다.
agent.run을 사용하기 전에 사용자는 LLM(대형 언어 모델)인 에이전트를 인스턴스화해야 합니다.
연구원들은 OpenAI 모델뿐만 아니라 BigCode 및 OpenAssistant의 오픈 소스 대안에 대한 지원을 제공합니다.
OpenAI의 모델 성능은 더 좋지만 사용자는 OpenAI API 키를 가지고 있어야 하므로 무료로 사용할 수는 없습니다.
Hugging Face는 BigCode 및 OpenAssistant와 같은 모델에 대한 무료 액세스 엔드포인트를 제공하고 있다고 말했습니다.
먼저 사용자는 에이전트 애드온을 설치해야 합니다.
<code>pip install transformers[agents]</code>
OpenAI 모델을 사용하려면 사용자는 OpenAI 종속성을 설치한 후 OpenAiAgent를 인스턴스화해야 합니다.
<code>pip install openaifrom transformers import OpenAiAgentagent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")</your_api_key></code>
사용자가 BigCode 또는 OpenAssistant를 사용하려면 먼저 로그인해야 합니다. API:
<code>from huggingface_hub import loginlogin("<your_token>")</your_token></code>
그런 다음 에이전트를 인스턴스화합니다.
<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>
현재 Hugging Face에서 무료로 제공하는 추론 API를 사용합니다. 사용자에게 자체 추론 엔드포인트가 있는 경우 위 URL을 바꿀 수 있습니다.
StarCoder 및 OpenAssistant는 무료로 사용할 수 있으며 간단한 작업에도 잘 작동합니다.
然而,在处理更复杂的提示时,检查点就不成立了。如果用户面临这样的问题,可以尝试一下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>
然后,你就可以修改和执行自己的工具了。
위 내용은 AutoGPT를 손으로! ChatGPT가 HuggingFace에서 공식 제작한 100,000개 이상의 AI 모델을 선택하도록 하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!