天天看點

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

蕭箫 發自 凹非寺

量子位 | 公衆号 QbitAI

隻需和ChatGPT聊聊天,它就能幫你調用10萬+個HuggingFace模型!

這是抱抱臉最新上線的功能HuggingFace Transformers Agents,一經推出就獲得極大關注:

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

這個功能,相當于給ChatGPT等大模型配備了“多模态”能力——

不限于文本,而是圖像、語音、文檔等任何多模态任務都能解決。

例如告訴ChatGPT“解釋這張圖像”,并扔給它一張海狸照片。ChatGPT就能調用圖像解釋器,輸出“海狸正在水裡遊泳”:

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

随後,ChatGPT再調用文字轉語音,分分鐘就能把這句話讀出來:

A beaver is swimming in the water音頻:00:0000:01

當然,它不僅支援ChatGPT在内的OpenAI大模型,也支援OpenAssistant等免費大模型。

Transformer Agent負責“教會”這些大模型直接調用Hugging Face上的任意AI模型,并輸出處理好的結果。

是以這個新上線的功能,背後的原理究竟是什麼?

如何讓大模型“指揮”各種AI?

簡單來說,Transformers Agents是一個大模型專屬的“抱抱臉AI工具內建包”。

HuggingFace上各種大大小小的AI模型,都被收納在這個包裡,并被分門别類為“圖像生成器”、“圖像解釋器”、“文本轉語音工具”……

同時,每個工具都會有對應的文字解釋,友善大模型了解自己該調用什麼模型。

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

這樣一來,隻需要一段簡單的代碼+提示詞,就能讓大模型幫助你直接運作AI模型,并将輸出結果實時返還給你,過程一共分為三步:

首先,設定自己想用的大模型,這裡可以用OpenAI的大模型(當然,API要收費):

from transformers import OpenAiAgent

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

也可以用BigCode或OpenAssistant等免費大模型:

from huggingface_hub import login

login("<YOUR_TOKEN>")           

然後,設定Hugging Transformers Agents。這裡我們以預設的Agent為例:

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

接下來,就可以使用run()或者chat()兩個指令,來運作Transformers Agents了。

run()适合同時調用多個AI模型,執行比較複雜專業的任務。

可以調用單個AI工具。

例如執行agent.run(“Draw me a picture of rivers and lakes.”),它就能調用AI文生圖工具幫你生成一張圖像:

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

也可以同時調用多個AI工具。

例如執行agent.run(“Draw me a picture of the sea then transform the picture to add an island”),它就能調用“文生圖”和“圖生圖”工具,幫你生成對應圖像:

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

chat()則适合以聊天的方式“持續完成任務”。

例如,先調用文生圖AI工具,生成一個河流湖泊圖檔:agent.chat(“Generate a picture of rivers and lakes”)

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

再在這張圖檔的基礎上做“圖生圖”修改:agent.chat(“Transform the picture so that there is a rock in there”)

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

要調用的AI模型可以自行設定,也可以使用抱抱臉自帶的一套預設設定來完成。

已設定一套預設AI模型

目前,Transformers Agents已經內建了一套預設AI模型,通過調用以下Transformer庫中的AI模型來完成:

1、視覺文檔了解模型Donut。給定圖檔格式的檔案(PDF轉圖檔也可以),它就能回答關于這個檔案的問題。

例如問“TRRF科學咨詢委員會會議将在哪裡舉行”,Donut就會給出答案:

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

2、文字問答模型Flan-T5。給定長文章和一個問題,它就能回答各種文字問題,幫你做閱讀了解。

3、零樣本視覺語言模型BLIP。它可以直接了解圖像中的内容,并對圖像進行文字說明。

4、多模态模型ViLT。它可以了解并回答給定圖像中的問題,

5、多模态圖像分割模型CLIPseg。隻需要給它一個模型和一個提示詞,它就能根據這個提示分割出圖像中指定的内容(mask)。

6、自動語音識别模型Whisper。它可以自動識别一段錄音中的文字,并完成轉錄。

7、語音合成模型SpeechT5。用于文本轉語音。

8、自編碼語言模型BART。除了可以自動給一段文字内容分類,還能做文本摘要。

9、200種語言翻譯模型NLLB。除了常見語言外,還能翻譯一些不太常見的語言,包括寮國語和卡姆巴語等。

通過調用上面這些AI模型,包括圖像問答、文檔了解、圖像分割、錄音轉文字、翻譯、起标題、文本轉語音、文本分類在内的任務都可以完成。

除此之外,抱抱臉還“夾帶私貨”,包含了一些Transformer庫以外的模型,包括從網頁下載下傳文本、文生圖、圖生圖、文生視訊:

讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火

這些模型不僅能單獨調用,還可以混合在一起使用,例如要求大模型“生成并描述一張好看的海狸照片”,它就會分别調用“文生圖”和“圖檔了解”AI模型。

當然,如果我們不想用這些預設AI模型,想設定一套更好用的“工具內建包”,也可以根據步驟自行設定。

對于Transformers Agents,也有網友指出,有點像是LangChain agents的“平替”:

你試過這兩個工具了嗎?感覺哪個更好用?

參考連結:

[1]https://twitter.com/huggingface/status/1656334778407297027

[2]https://huggingface.co/docs/transformers/transformers_agents

— 完 —

量子位 QbitAI · 頭條号簽約

關注我們,第一時間獲知前沿科技動态

繼續閱讀