讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火:大模型可隨取隨用多模態AI工具
只需和ChatGPT聊聊天,它就能幫你調用10萬+個HuggingFace模型!
這是抱抱臉最新上線的功能HuggingFace Transformers Agents,一經推出就獲得極大關注:
這個功能,相當于給ChatGPT等大模型配備了“多模態”能力——
不限于文本,而是圖像、語音、文檔等任何多模態任務都能解決。
例如告訴ChatGPT“解釋這張圖像”,并扔給它一張海貍照片。ChatGPT就能調用圖像解釋器,輸出“海貍正在水里游泳”:
隨后,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模型,都被收納在這個包里,并被分門別類為“圖像生成器”、“圖像解釋器”、“文本轉語音工具”……
同時,每個工具都會有對應的文字解釋,方便大模型理解自己該調用什么模型。
這樣一來,只需要一段簡單的代碼+提示詞,就能讓大模型幫助你直接運行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文生圖工具幫你生成一張圖像:
也可以同時調用多個AI工具。
例如執行agent.run(“Draw me a picture of the sea then transform the picture to add an island”),它就能調用“文生圖”和“圖生圖”工具,幫你生成對應圖像:
chat()則適合以聊天的方式“持續完成任務”。
例如,先調用文生圖AI工具,生成一個河流湖泊圖片:agent.chat(“Generate a picture of rivers and lakes”)
再在這張圖片的基礎上做“圖生圖”修改:agent.chat(“Transform the picture so that there is a rock in there”)
要調用的AI模型可以自行設置,也可以使用抱抱臉自帶的一套默認設置來完成。
已設置一套默認AI模型
目前,Transformers Agents已經集成了一套默認AI模型,通過調用以下Transformer庫中的AI模型來完成:
1、視覺文檔理解模型Donut。給定圖片格式的文件(PDF轉圖片也可以),它就能回答關于這個文件的問題。
例如問“TRRF科學咨詢委員會會議將在哪里舉行”,Donut就會給出答案:
2、文字問答模型Flan-T5。給定長文章和一個問題,它就能回答各種文字問題,幫你做閱讀理解。
3、零樣本視覺語言模型BLIP。它可以直接理解圖像中的內容,并對圖像進行文字說明。
4、多模態模型ViLT。它可以理解并回答給定圖像中的問題,
5、多模態圖像分割模型CLIPseg。只需要給它一個模型和一個提示詞,它就能根據這個提示分割出圖像中指定的內容(mask)。
6、自動語音識別模型Whisper。它可以自動識別一段錄音中的文字,并完成轉錄。
7、語音合成模型SpeechT5。用于文本轉語音。
8、自編碼語言模型BART。除了可以自動給一段文字內容分類,還能做文本摘要。
9、200種語言翻譯模型NLLB。除了常見語言外,還能翻譯一些不太常見的語言,包括老撾語和卡姆巴語等。
通過調用上面這些AI模型,包括圖像問答、文檔理解、圖像分割、錄音轉文字、翻譯、起標題、文本轉語音、文本分類在內的任務都可以完成。
除此之外,抱抱臉還“夾帶私貨”,包含了一些Transformer庫以外的模型,包括從網頁下載文本、文生圖、圖生圖、文生視頻:
這些模型不僅能單獨調用,還可以混合在一起使用,例如要求大模型“生成并描述一張好看的海貍照片”,它就會分別調用“文生圖”和“圖片理解”AI模型。
當然,如果我們不想用這些默認AI模型,想設置一套更好用的“工具集成包”,也可以根據步驟自行設置。
對于Transformers Agents,也有網友指出,有點像是LangChain agents的“平替”:
你試過這兩個工具了嗎?感覺哪個更好用?
參考鏈接:[1]https://twitter.com/huggingface/status/1656334778407297027[2]https://huggingface.co/docs/transformers/transformers_agents