自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

人手AutoGPT!讓ChatGPT自選10萬(wàn)+AI模型,HuggingFace官方出品

人工智能 新聞
ChatGPT調(diào)用眾多開源AI模型,讓HuggingFace給實(shí)現(xiàn)了。

前段時(shí)間,浙大微軟團(tuán)隊(duì)提出的HuggingGPT在整個(gè)科技圈爆火。

這個(gè)大模型協(xié)作系統(tǒng)利用ChatGPT作為控制器,隨意調(diào)用HuggingFace中的各種模型,以實(shí)現(xiàn)多模態(tài)任務(wù)。

讓ChatGPT當(dāng)「老板」,已經(jīng)成為許多人看好的方向。

這不,該來(lái)的還是來(lái)了......

全球最火的AI社區(qū)HuggingFace官方出品「Transformers Agent」,通過控制10萬(wàn)多個(gè)AI,也能實(shí)現(xiàn)魔法。

圖片

英偉達(dá)科學(xué)家Jim Fan稱贊道,這是向Everything App邁出的第一步,隨著生態(tài)系統(tǒng)的擴(kuò)大,它的能力也不斷增長(zhǎng)。

他繼續(xù)表示,HuggingGPT是這一想法首次大規(guī)模地展示,它使用GPT作為控制器,動(dòng)態(tài)地選擇工具(模型)來(lái)解決多階段任務(wù)。

ChatGPT的「App Store」當(dāng)然是AI工具生態(tài)系統(tǒng)應(yīng)用的一個(gè)實(shí)例。全新Transformers Agent讓你擁有超強(qiáng)buff,快速構(gòu)建AI智能體。

Transformers,無(wú)所不能

用上Transformers Agent,你可以張口來(lái)圖,還能讓它為你讀出來(lái)。

先來(lái)看看幾個(gè)例子~

agent.run("Caption the following image", image=image)

圖片

第一個(gè)先從簡(jiǎn)單的開始。輸入一張圖片然后配個(gè)解說(shuō),一只可愛的河貍在水里游泳(超可愛,想rua)。

agent.run("Read the following text out loud", text=text)

圖片

第二個(gè)也不難,簡(jiǎn)簡(jiǎn)單單文字轉(zhuǎn)語(yǔ)音。

agent.run(
    "In the following `document`, where will the TRRF Scientific Advisory Council Meeting take place?",
    document=document,
)

圖片

這個(gè)上了點(diǎn)難度。輸入的要求是,說(shuō)出科學(xué)咨詢委員會(huì)會(huì)議將在哪里舉辦。

當(dāng)然對(duì)AI來(lái)說(shuō),檢索到最后一行也是找到了答案。

用戶在使用agent.run之前,需要將一個(gè)智能體實(shí)例化,也就是一個(gè)大型語(yǔ)言模型(LLM)。

研究人員提供了對(duì)OpenAI模型的支持,以及來(lái)自BigCode和OpenAssistant的開源替代品。

雖然OpenAI的模型性能更好,但用戶得有OpenAI的API密鑰,所以不是免費(fèi)使用。

Hugging Face表示,正在提供BigCode和OpenAssistant等模型的免費(fèi)訪問端點(diǎn)。

首先,用戶需要安裝智能體附加程序。

pip install transformers[agents]

要想使用OpenAI的模型,用戶需要在安裝OpenAI dependency項(xiàng)后實(shí)例化一個(gè)OpenAiAgent:

pip install openai
from transformers import OpenAiAgent


agent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")

用戶要使用BigCode或OpenAssistant的話,得先登錄,以便能夠訪問API:

from huggingface_hub import login

login("<YOUR_TOKEN>")

然后,將智能體實(shí)例化:

from transformers import HfAgent

# Starcoder
agent = 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")

這是在使用Hugging Face目前免費(fèi)提供的推理API。如果用戶有自己的推理端點(diǎn),就可以替換上面的URL。

StarCoder和OpenAssistant是免費(fèi)使用的,在簡(jiǎn)單的任務(wù)上表現(xiàn)得不錯(cuò)。

然而,在處理更復(fù)雜的提示時(shí),檢查點(diǎn)就不成立了。如果用戶面臨這樣的問題,可以嘗試一下OpenAI模型,雖然很遺憾它不是開源的,但勝在表現(xiàn)不錯(cuò)。

單一執(zhí)行方法是在使用代理的run()方法時(shí)使用的:

agent.run("Draw me a picture of rivers and lakes.")

它自動(dòng)選擇適合你要執(zhí)行的任務(wù)的工具(或工具)并適當(dāng)?shù)剡\(yùn)行它們。它可以在同一指令中執(zhí)行一個(gè)或幾個(gè)任務(wù)(你的指令越復(fù)雜,就越有可能失?。?/span>

agent.run("Draw me a picture of the sea then transform the picture to add an island")

圖片

每個(gè)run()操作都是獨(dú)立的,所以你可以用不同的任務(wù)連續(xù)運(yùn)行幾次。

請(qǐng)注意,用戶的智能體只是一個(gè)大語(yǔ)言模型,所以prompt中的小變化可能產(chǎn)生完全不同的結(jié)果。盡可能清楚地解釋要執(zhí)行的任務(wù)是很重要的。

研究人員深入地討論了如何寫出更好的prompt。

如果你想在整個(gè)執(zhí)行過程中保持一個(gè)狀態(tài),或者向智能體傳遞非文本對(duì)象,你可以通過指定變量來(lái)做到這一點(diǎn)。

例如,你可以生成第一張河流和湖泊的圖片,并要求模型通過以下方式更新該圖片以增加一個(gè)島嶼:

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

圖片

這里讓系統(tǒng)生成一張河流湖泊的照片。

agent.chat("Transform the picture so that there is a rock in there")

圖片

下一步,研究人員又讓系統(tǒng)給原圖中加一個(gè)島嶼。

當(dāng)用戶想保持跨指令的狀態(tài)時(shí),這是一個(gè)很有趣的方法。

它更適合于實(shí)驗(yàn),但往往在單條指令而不是復(fù)雜指令方面會(huì)好很多。

如果你想傳遞非文本類型或特定的提示,這個(gè)方法也可以接受參數(shù)。

要了解如何自己設(shè)置遠(yuǎn)程執(zhí)行器工具,研究人員建議用戶閱讀自定義工具指南。

為了與遠(yuǎn)程工具一起運(yùn)行,在run()或chat()中指定remote=True就可以了。

例如,以下命令可以在任何設(shè)備上有效地運(yùn)行,不需要大量的RAM或GPU:

agent.run("Draw me a picture of rivers and lakes", remote=True)

對(duì)chat()來(lái)說(shuō)也是一樣的:

agent.chat("Draw me a picture of rivers and lakes", remote=True)

網(wǎng)友表示,Transformers Agent就像AutoGPT一樣。

圖片

還有人表示,Transformers Agent打開了自然語(yǔ)言編程的大門,可以想象,未來(lái)的操作系統(tǒng)就是智能模型,人類通過自然語(yǔ)言編排任務(wù),越來(lái)越多的非開發(fā)者可以自己實(shí)現(xiàn)各種計(jì)算機(jī)應(yīng)用。

圖片

什么是工具?什么是智能體?

Transformers Agents整體的運(yùn)作流程簡(jiǎn)單分為四步:

設(shè)定目標(biāo)、提供工具、展示示例、下達(dá)任務(wù)。

智能體會(huì)使用鏈?zhǔn)剿伎纪评韥?lái)確定其任務(wù),并用提供的工具輸出Python代碼。

如何安裝和使用,官方給出了具體步驟。

圖片

https://colab.research.google.com/drive/1c7MHD-T1forUPGcC_jlwsIptOzpG3hSj#scrollTo=fA8jPddeUSMO

其中,這里的「智能體」指的是,一個(gè)大型語(yǔ)言模型。通過提示LLM,讓其訪問特定的一組工具。

因?yàn)長(zhǎng)LM非常擅長(zhǎng)生成較小的代碼樣本,所以API利用了這一點(diǎn)優(yōu)勢(shì)。

你可以用抱抱臉自家的OpenAssistant、StarCoder,甚至還可以用OpenAI的模型。

提示LLM給出一個(gè)小的代碼樣本,并用一組工具執(zhí)行一個(gè)任務(wù)。這個(gè)提示包括,給智能體的任務(wù),以及工具的描述。

這樣,「智能體」就可以找到所使用工具的文檔,特別是預(yù)期的輸入和輸出,并可以生成相關(guān)的代碼。

圖片

而「工具」就非常好理解,是一個(gè)單獨(dú)的函數(shù),帶有名稱和描述。

然后,使用這些工具的描述來(lái)提示「智能體」,作用就在于可以像智能體展示如何用工具來(lái)執(zhí)行查詢中的請(qǐng)求內(nèi)容。

再之后,通過利用Python解釋器在與工具一起上傳的一組輸入中執(zhí)行代碼。

如果唯一調(diào)用的函數(shù)是你自己提供的工具和print函數(shù),那么,開發(fā)者會(huì)在可執(zhí)行內(nèi)容上受到限制。當(dāng)然了,抱抱臉社區(qū)的工具,是比較安全的。

除此之外,HuggingFace在Transformers Agents中還集成了以下工具:

- 文檔問答:給定一個(gè)圖像格式的文檔(PDF),回答文檔的問題(Donut) 

- 文本問答:給定一個(gè)長(zhǎng)文本和一個(gè)問題,回答文本中的問題(Flan-T5) 

- 無(wú)條件給圖像加標(biāo)題:(BLIP) 

- 圖像問答:給定一個(gè)圖像,回答關(guān)于這個(gè)圖像的問題(VILT) 

- 圖像分割:給定一個(gè)圖像和一個(gè)提示,輸出該提示的分割掩碼(CLIPSeg) 

- 語(yǔ)音轉(zhuǎn)文本:給定一個(gè)音頻記錄,將語(yǔ)音轉(zhuǎn)錄為文本(Whisper) 

- 文本到語(yǔ)音:將文本轉(zhuǎn)換為語(yǔ)音(SpeechT5) 

- 零樣本文本分類:給定一個(gè)文本和一列標(biāo)簽,確定該文本與哪個(gè)標(biāo)簽最對(duì)應(yīng)(BART) 

- 文本總結(jié):用一個(gè)或幾個(gè)句子來(lái)總結(jié)一個(gè)長(zhǎng)文本(BART) 

- 翻譯:將文本翻譯成一種語(yǔ)言(NLLB)

這些工具都內(nèi)置在Transformers中,也可以手動(dòng)使用,比如:

from transformers import load_tool


tool = load_tool("text-to-speech")
audio = tool("This is a text to speech tool")

此外,還有一些定制的工具集成在Transformers Agents中,其中包括文本下載器、文本到圖像的擴(kuò)散模型stable diffusion、圖像變換instruct pix2pix stable diffusion,以及文本到視頻damo-vilab。

官方給出了一個(gè)自定義工具和提示的教程:

圖片

https://huggingface.co/docs/transformers/en/custom_tools

代碼生成

如上,已經(jīng)展示了如何使用Transformers Agents流程。

但是,智能體只生成代碼,通過使用非常受限的Python解釋器執(zhí)行這些代碼。

如果你希望使用在不同設(shè)置中生成的代碼,可以提示智能體返回代碼,對(duì)工具定義,并準(zhǔn)確導(dǎo)入。

比如,根據(jù)以下步驟實(shí)現(xiàn):

agent.run("Draw me a picture of rivers and lakes", return_code=True)

返回以下代碼:

from transformers import load_tool

image_generator = load_tool("huggingface-tools/text-to-image")

image = image_generator(prompt="rivers and lakes")

然后,你就可以修改和執(zhí)行自己的工具了。

責(zé)任編輯:張燕妮 來(lái)源: 新智元
相關(guān)推薦

2023-05-12 13:14:59

ChatGPTAI工具

2023-05-12 13:56:12

2023-11-27 11:34:59

ChatGPTAutoGPT

2023-08-14 13:29:37

2023-05-24 09:59:16

2023-05-22 18:39:03

2023-05-24 12:38:40

2023-11-26 19:31:18

2024-11-18 14:20:00

ChatGPTAI

2021-08-17 10:54:57

AI 數(shù)據(jù)人工智能

2024-05-17 17:16:50

SOTA視覺模型

2023-04-25 11:31:33

智能AI

2020-08-31 14:55:48

代碼開發(fā)AI

2023-07-26 14:09:33

ChatGPTAI

2023-07-27 07:41:51

ChatGPT科學(xué)家Cell

2019-03-26 16:05:10

AI

2023-04-21 10:33:42

2023-06-21 11:10:12

人工智能AI

2024-10-21 15:14:54

2024-10-25 14:30:00

模型AI
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)