今天小編分享的科學經驗:讓ChatGPT調用10萬+開源AI模型!HuggingFace新功能爆火:大模型可随取随用多模态AI工具,歡迎閲讀。
只需和 ChatGPT 聊聊天,它就能幫你調用 10 萬 + 個 HuggingFace 模型!
這是抱抱臉最新上線的功能HuggingFace Transformers Agents,一經推出就獲得極大關注:
這個功能,相當于給ChatGPT 等大模型配備了 " 多模态 " 能力——
不限于文本,而是影像、語音、文檔等任何多模态任務都能解決。
例如告訴 ChatGPT" 解釋這張影像 ",并扔給它一張海狸照片。ChatGPT 就能調用影像解釋器,輸出 " 海狸正在水裏遊泳 ":
随後,ChatGPT 再調用文字轉語音,分分鍾就能把這句話讀出來:
當然,它不僅支持 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 模型,包括影像問答、文檔理解、影像分割、錄音轉文字、翻譯、起标題、文本轉語音、文本分類在内的任務都可以完成。
這些模型不僅能單獨調用,還可以混合在一起使用,例如要求大模型 " 生成并描述一張好看的海狸照片 ",它就會分别調用 " 文生圖 " 和 " 圖片理解 "AI 模型。
當然,如果我們不想用這些默認 AI 模型,想設定一套更好用的 " 工具集成包 ",也可以根據步驟自行設定。
對于 Transformers Agents,也有網友指出,有點像是LangChain agents 的 " 平替 ":
你試過這兩個工具了嗎?感覺哪個更好用?
參考鏈接:
[ 1 ] https://twitter.com/huggingface/status/1656334778407297027
[ 2 ] https://huggingface.co/docs/transformers/transformers_agents