蕭箫 發自 凹非寺
量子位 | 公衆号 QbitAI
隻需和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
— 完 —
量子位 QbitAI · 頭條号簽約
關注我們,第一時間獲知前沿科技動态