讓ChatGPT調(diào)用10萬+開源AI模型!HuggingFace新功能爆火:大模型可隨取隨用多模態(tài)AI工具
只需和ChatGPT聊聊天,它就能幫你調(diào)用10萬+個(gè)HuggingFace模型!
這是抱抱臉最新上線的功能HuggingFace Transformers Agents,一經(jīng)推出就獲得極大關(guān)注:
這個(gè)功能,相當(dāng)于給ChatGPT等大模型配備了“多模態(tài)”能力——
不限于文本,而是圖像、語音、文檔等任何多模態(tài)任務(wù)都能解決。
例如告訴ChatGPT“解釋這張圖像”,并扔給它一張海貍照片。ChatGPT就能調(diào)用圖像解釋器,輸出“海貍正在水里游泳”:
隨后,ChatGPT再調(diào)用文字轉(zhuǎn)語音,分分鐘就能把這句話讀出來:
A beaver is swimming in the water音頻:00:0000:01
當(dāng)然,它不僅支持ChatGPT在內(nèi)的OpenAI大模型,也支持OpenAssistant等免費(fèi)大模型。
Transformer Agent負(fù)責(zé)“教會(huì)”這些大模型直接調(diào)用Hugging Face上的任意AI模型,并輸出處理好的結(jié)果。
所以這個(gè)新上線的功能,背后的原理究竟是什么?
如何讓大模型“指揮”各種AI?
簡單來說,Transformers Agents是一個(gè)大模型專屬的“抱抱臉AI工具集成包”。
HuggingFace上各種大大小小的AI模型,都被收納在這個(gè)包里,并被分門別類為“圖像生成器”、“圖像解釋器”、“文本轉(zhuǎn)語音工具”……
同時(shí),每個(gè)工具都會(huì)有對應(yīng)的文字解釋,方便大模型理解自己該調(diào)用什么模型。
這樣一來,只需要一段簡單的代碼+提示詞,就能讓大模型幫助你直接運(yùn)行AI模型,并將輸出結(jié)果實(shí)時(shí)返還給你,過程一共分為三步:
首先,設(shè)置自己想用的大模型,這里可以用OpenAI的大模型(當(dāng)然,API要收費(fèi)):
from transformers import OpenAiAgent
agent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")
也可以用BigCode或OpenAssistant等免費(fèi)大模型:
from huggingface_hub import login
login("<YOUR_TOKEN>")
然后,設(shè)置Hugging Transformers Agents。這里我們以默認(rèn)的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()兩個(gè)指令,來運(yùn)行Transformers Agents了。
run()適合同時(shí)調(diào)用多個(gè)AI模型,執(zhí)行比較復(fù)雜專業(yè)的任務(wù)。
可以調(diào)用單個(gè)AI工具。
例如執(zhí)行agent.run(“Draw me a picture of rivers and lakes.”),它就能調(diào)用AI文生圖工具幫你生成一張圖像:
也可以同時(shí)調(diào)用多個(gè)AI工具。
例如執(zhí)行agent.run(“Draw me a picture of the sea then transform the picture to add an island”),它就能調(diào)用“文生圖”和“圖生圖”工具,幫你生成對應(yīng)圖像:
chat()則適合以聊天的方式“持續(xù)完成任務(wù)”。
例如,先調(diào)用文生圖AI工具,生成一個(gè)河流湖泊圖片:agent.chat(“Generate a picture of rivers and lakes”)
再在這張圖片的基礎(chǔ)上做“圖生圖”修改:agent.chat(“Transform the picture so that there is a rock in there”)
要調(diào)用的AI模型可以自行設(shè)置,也可以使用抱抱臉自帶的一套默認(rèn)設(shè)置來完成。
已設(shè)置一套默認(rèn)AI模型
目前,Transformers Agents已經(jīng)集成了一套默認(rèn)AI模型,通過調(diào)用以下Transformer庫中的AI模型來完成:
1、視覺文檔理解模型Donut。給定圖片格式的文件(PDF轉(zhuǎn)圖片也可以),它就能回答關(guān)于這個(gè)文件的問題。
例如問“TRRF科學(xué)咨詢委員會(huì)會(huì)議將在哪里舉行”,Donut就會(huì)給出答案:
2、文字問答模型Flan-T5。給定長文章和一個(gè)問題,它就能回答各種文字問題,幫你做閱讀理解。
3、零樣本視覺語言模型BLIP。它可以直接理解圖像中的內(nèi)容,并對圖像進(jìn)行文字說明。
4、多模態(tài)模型ViLT。它可以理解并回答給定圖像中的問題,
5、多模態(tài)圖像分割模型CLIPseg。只需要給它一個(gè)模型和一個(gè)提示詞,它就能根據(jù)這個(gè)提示分割出圖像中指定的內(nèi)容(mask)。
6、自動(dòng)語音識別模型Whisper。它可以自動(dòng)識別一段錄音中的文字,并完成轉(zhuǎn)錄。
7、語音合成模型SpeechT5。用于文本轉(zhuǎn)語音。
8、自編碼語言模型BART。除了可以自動(dòng)給一段文字內(nèi)容分類,還能做文本摘要。
9、200種語言翻譯模型NLLB。除了常見語言外,還能翻譯一些不太常見的語言,包括老撾語和卡姆巴語等。
通過調(diào)用上面這些AI模型,包括圖像問答、文檔理解、圖像分割、錄音轉(zhuǎn)文字、翻譯、起標(biāo)題、文本轉(zhuǎn)語音、文本分類在內(nèi)的任務(wù)都可以完成。
除此之外,抱抱臉還“夾帶私貨”,包含了一些Transformer庫以外的模型,包括從網(wǎng)頁下載文本、文生圖、圖生圖、文生視頻:
這些模型不僅能單獨(dú)調(diào)用,還可以混合在一起使用,例如要求大模型“生成并描述一張好看的海貍照片”,它就會(huì)分別調(diào)用“文生圖”和“圖片理解”AI模型。
當(dāng)然,如果我們不想用這些默認(rèn)AI模型,想設(shè)置一套更好用的“工具集成包”,也可以根據(jù)步驟自行設(shè)置。
對于Transformers Agents,也有網(wǎng)友指出,有點(diǎn)像是LangChain agents的“平替”:
你試過這兩個(gè)工具了嗎?感覺哪個(gè)更好用?
參考鏈接:[1]https://twitter.com/huggingface/status/1656334778407297027[2]https://huggingface.co/docs/transformers/transformers_agents