實現(xiàn)輸入到輸出「模態(tài)自由」, NUS華人團(tuán)隊開源NExT-GPT,最接近AGI的大一統(tǒng)多模態(tài)大模型來了
ChatGPT 的誕生,引爆了 2023 年的基于大語言模型的 AI 浪潮,此后各類開源大語言模型陸續(xù)問世,包括 Flan-T5、Vicuna、 LLaMA、Alpaca 等。隨后,社區(qū)繼續(xù)發(fā)力,為模擬這個多模態(tài)的世界,研究者們將純語言的大模型擴(kuò)展到了處理語言之外的多模態(tài)大語言模型,諸如支持圖像類的 MiniGPT-4、BLIP-2、Flamingo、InstructBLIP 等,支持視頻類的 Video-LLaMA、PandaGPT 等,以及支持聲音類的 SpeechGPT 等等。
但目前的多模態(tài)大語言模型,距離真正人類級別的 AGI,總感覺少了點「內(nèi)味」。沒錯,人類的認(rèn)知和溝通必須無縫地在任何信息模態(tài)之間進(jìn)行轉(zhuǎn)換。作為人類,我們不僅僅可以理解多模態(tài)內(nèi)容,還能夠以多模態(tài)的方式靈活輸出信息。
對于現(xiàn)有的大語言模型,一方面,其大多局限于關(guān)注于某種單一模態(tài)信息的處理,而缺乏真正「任意模態(tài)」的理解;另一方面,其都關(guān)注于多模態(tài)內(nèi)容在輸入端的理解,而不能以任意多種模態(tài)的靈活形式輸出內(nèi)容。
正當(dāng)大家都在期待 OpenAI 未來要發(fā)布的 GPT-5 是否能實現(xiàn)任意模態(tài)大一統(tǒng)功能時,幾天前,來自于新加坡國立大學(xué)的 NExT++ 實驗室的華人團(tuán)隊率先開源了一款「大一統(tǒng)」通用多模態(tài)大模型「NExT-GPT」,支持任意模態(tài)輸入到任意模態(tài)輸出。目前 NExT-GPT 的代碼已經(jīng)開源,并且上線了 Demo 系統(tǒng)。
- 項目地址:https://next-gpt.github.io
- 代碼地址:https://github.com/NExT-GPT/NExT-GPT
- 論文地址:https://arxiv.org/abs/2309.05519
該實驗室在多模態(tài)學(xué)習(xí)方向的研究有著多年的耕耘,具有深厚的積累,而 NExT-GPT 的取名也雙關(guān)了實驗室的名字以及 GPT of Next generation 的寓意。
NExT-GPT 一經(jīng)發(fā)布便受到了 AI 社區(qū)的大量關(guān)注。有網(wǎng)友表示,NExT-GPT 標(biāo)識著全能型 LLM 的到來:
也有網(wǎng)友贊嘆,這才是未來的 LLM 大趨勢(大一統(tǒng)任意模態(tài)輸入輸出的 LLM):
接下來,我們來看看 NExT-GPT 可以實現(xiàn)哪些功能:
- Text → Text + Image + Audio
- Text + Image → Text + Image + Video + Image
- Text + Video → Text + Image
- Text + Video → Text + Audio
- Text + Audio → Text + Image + Video
- Text → Text + Image + Audio + Video
- Text → Text + Image
- Text + Video → Text + Image + Audio
- Text → Text + Image + Audio + Video
- Text → Text + Image
可看到,NExT-GPT 能夠準(zhǔn)確理解用戶所輸入的各類組合模態(tài)下的內(nèi)容,并準(zhǔn)確靈活地返回用戶所要求的甚至隱含的多模態(tài)內(nèi)容,常見的圖生文、圖生視頻、看圖像 / 聲音 / 視頻說話、圖像 / 聲音 / 視頻問答等問題統(tǒng)統(tǒng)不在話下,統(tǒng)一了跨模態(tài)領(lǐng)域的大部分常見任務(wù),做到了真正意義上的任意到任意模態(tài)的通用理解能力。
作者在論文中還給出一些定量的實驗結(jié)果驗證,感興趣的讀者可以閱讀論文內(nèi)容。
技術(shù)細(xì)節(jié)
那 NExT-GPT 是如何實現(xiàn)任意模態(tài)輸入到任意模態(tài)輸出的?原理非常簡單,作者甚至表示在技術(shù)層面上「沒有顯著的創(chuàng)新點」:通過有機(jī)地連接現(xiàn)有的開源 1) LLM, 2) 多模態(tài)編碼器和 3) 各種模態(tài)擴(kuò)散解碼器,便構(gòu)成了 NExT-GPT 的整體框架,實現(xiàn)任意模態(tài)的輸入和輸出,可謂大道至簡。
NExT-GPT 整體呈現(xiàn)為一個「編碼端 - 推理中樞 - 解碼器」三層架構(gòu):
- 多模編碼階段:利用已開源的編碼器對各種輸入模態(tài)進(jìn)行編碼,然后通過一個投影層將這些特征投影為 LLM 所能夠理解的「類似語言的」表征。作者采用了 MetaAI 的 ImageBind 統(tǒng)一多模態(tài)編碼器。
- 推理中樞階段:利用開源 LLM 作為核心大腦來處理輸入信息,進(jìn)行語義理解和推理。LLM 可以直接輸出文本,同時其還將輸出一種「模態(tài)信號」token,作為傳遞給后層解碼端的指令,通知他們是否輸出相應(yīng)的模態(tài)信息,以及輸出什么內(nèi)容。作者目前采用了 Vicuna 作為其 LLM。
- 多模生成階段:利用各類開源的圖像擴(kuò)散模型、聲音擴(kuò)散模型以及視頻擴(kuò)散模型,接收來自 LLM 的特定指令信號,并輸出所對應(yīng)的模型內(nèi)容(如果需要生成的指令)。
模型在推理時,給定任意組合模態(tài)的用戶輸入,通過模態(tài)編碼器編碼后,投影器將其轉(zhuǎn)換為特征傳遞給 LLM(文本部分的輸入將會直接出入到 LLM)。然后 LLM 將決定所生成內(nèi)容,一方面直接輸出文本,另一方面輸出模態(tài)信號 token。如果 LLM 確定要生成某種模態(tài)內(nèi)容(除語言外),則會輸出對應(yīng)的模態(tài)信號 token,表示該模態(tài)被激活。技術(shù)示意圖如下:
文中作者指出,NExT-GPT 可能并不是實現(xiàn)任意模態(tài)輸入到任意模態(tài)輸出功能的首個工作。目前有兩類前驅(qū)工作:
- 一類是不久前所發(fā)布的 CoDi 模型,其整合了各種模態(tài)的 diffusion 模型,可以同時處理和生成各種組合的模態(tài)內(nèi)容。然而作者指出,CoDi 由于缺乏 LLMs 作為其核心部件,其僅限于成對(Parallel)內(nèi)容的輸入和生成,而無法實現(xiàn)復(fù)雜的內(nèi)容推理和決策,根據(jù)用戶輸入的指令靈活響應(yīng)。
- 另一類工作則試圖將 LLMs 與現(xiàn)有的外部工具結(jié)合,以實現(xiàn)近似的「任意多模態(tài)」理解和生成,代表性的系統(tǒng)如 Visual-ChatGPT 和 HuggingGPT。但作者指出,由于這類系統(tǒng)在不同模塊之間的信息傳遞完全依賴于 LLM 所生成的文本,其割裂、級聯(lián)的架構(gòu)容易不可避免地引入了噪音,降低不同模塊之間的特征信息傳遞效用。并且其僅利用現(xiàn)有外部工作進(jìn)行預(yù)測,缺乏一種整體的端到端訓(xùn)練,這對于充分理解用戶的輸入內(nèi)容和指令是不利的。
而 NExT-GPT 可以良好地解決如上所述的現(xiàn)有工作問題。那么 NExT-GPT 有哪些關(guān)鍵點呢?
- 關(guān)鍵點-1:低成本實現(xiàn)復(fù)雜推理 + 多模態(tài) in 和多模態(tài) out
如前文所述,不僅要繼承 LLM 所具備的復(fù)雜內(nèi)容理解和推理能力,還需要實現(xiàn)任意模態(tài)的輸入和輸出。若考慮從零開始構(gòu)建整個系統(tǒng),代價將會巨大(除非是大廠才能承擔(dān)成本),也不利于開源和傳播??紤]到現(xiàn)有的大模型已經(jīng)基本實現(xiàn)了多模態(tài)的輸入,為實現(xiàn)全能的大一統(tǒng)多模態(tài)能力,因此最關(guān)鍵的一點在于高性能的多模態(tài)輸出。為此,NExT-GPT 完全基于現(xiàn)有開源的高性能模塊(比如目前性能最強的擴(kuò)散模型),充分站在巨人的肩膀上,以最低的成本實現(xiàn)大一統(tǒng)多模態(tài)大模型的構(gòu)建目標(biāo)(實驗室可承擔(dān)級別的成本)。
- 關(guān)鍵點-2:高效率端到端訓(xùn)練和模態(tài)對齊學(xué)習(xí)
妥當(dāng)?shù)?、端到端的系統(tǒng)訓(xùn)練是 NExT-GPT 區(qū)別于現(xiàn)有其他組合型統(tǒng)一大模型系統(tǒng)最重要的一點,也是保證 NExT-GPT 具有優(yōu)秀性能的前提。另一方面,還需要充分對齊系統(tǒng)中的所有模態(tài)的特征表征。為了既保證具有較好的學(xué)習(xí)成效,又全面降低、控制學(xué)習(xí)成本,本工作包含了以下的亮點。
首先,NExT-GPT 考慮分別在編碼層 - LLM 之間以及 LLM - 解碼層之間插入投影層(Projection Layers)。在凍結(jié)大規(guī)模參數(shù)的基座「編碼層 - LLM - 解碼層」情況下,僅去訓(xùn)練參數(shù)量極低的投影層部分(以及在指令微調(diào)時基于 LoRA 的 LLM 低代價更新),作者實現(xiàn)了僅僅 1% 參數(shù)量的訓(xùn)練代價。
具體通過 1)以 LLM 為中心的編碼端多模態(tài)對齊學(xué)習(xí),和 2)局部微調(diào)的解碼端指令跟隨增強學(xué)習(xí)實現(xiàn)。
另外,對于多模態(tài)大模型,為確保其能夠充分忠于用戶指令而響應(yīng),進(jìn)一步的指令調(diào)整(IT)是非常有必要的。不同于現(xiàn)有的多模態(tài)大模型其輸出端僅涉及到文本,我們的 NExT-GPT 系統(tǒng),其輸入和輸出端同時覆蓋了各類模態(tài)信息。
為此,作者提出了一種模態(tài)切換指令微調(diào)學(xué)習(xí)(Modality-switching Instruction Tuning,MosIT),技術(shù)內(nèi)涵如下圖所示。同時,由于現(xiàn)存的多模態(tài)指令微調(diào)數(shù)據(jù)集都無法滿足任意多模態(tài) LLM 場景(即 MosIT)的要求,我們因此構(gòu)建了一套 MosIT 數(shù)據(jù)集。該數(shù)據(jù)涵蓋了各種多模態(tài)輸入和輸出,提供了必要的復(fù)雜性和變異性,幫助提升 NExT-GPT 獲得優(yōu)越的多模態(tài)指令跟隨和相應(yīng)能力。
結(jié)論和未來展望
總體上,NExT-GPT 系統(tǒng)展示了構(gòu)建一個通用大一統(tǒng)多模態(tài)的 AI 模型的美好景愿和喜人的可能性,這將為 AI 社區(qū)中后續(xù)的更「人類水平」的人工智能研究提供寶貴的借鑒。
基于 NExT-GPT,后續(xù)的研究工作可以考慮以下幾個方面:
1. 模態(tài)與任務(wù)擴(kuò)展:受限于現(xiàn)有資源,目前作者所開源的 NExT-GPT 系統(tǒng)僅支持四種模態(tài):語言、圖像、視頻和音頻。作者表示,后續(xù)會逐步擴(kuò)展到更多的模態(tài)(例如,網(wǎng)頁、3D 視覺、熱圖、表格和圖表)和任務(wù)(例如,對象檢測、分割、定位和跟蹤),以擴(kuò)大系統(tǒng)的普遍適用性。
2. 考慮更多基座 LLM:目前作者實現(xiàn)了基于 7B 版本的 Vicuna LLM,其表示下一步將整合不同大小的 LLM,以及其他 LLM 類型。
3. 多模態(tài)生成策略:目前版本的 NExT-GPT 系統(tǒng)僅考慮了基于擴(kuò)散模型的純輸出方式的多模態(tài)輸出。然而生成模式容易輸出錯誤幻想內(nèi)容(Hallucination),并且輸出內(nèi)容的質(zhì)量往往容易受到擴(kuò)散模型能力的限制。因此,進(jìn)一步提升擴(kuò)散模型的性能很關(guān)鍵,這能直接幫助提高多模態(tài)內(nèi)容的輸出質(zhì)量。另外,實際上可以整合基于檢索的方法來補充基于生成的過程的弊端,從而提升整體系統(tǒng)的輸出可靠性。
4. 降低多模態(tài)支持成本:可以考慮進(jìn)一步降低對更多模態(tài)的支持的成本。NExT-GPT 考慮了 ImageBind 來統(tǒng)一多種模態(tài)的編碼,從而節(jié)省了在編碼端的代價。而對于多模態(tài)輸出端,作者簡單地集成了多個不同模態(tài)的擴(kuò)散模型。如何防止隨著模態(tài)的增加而動態(tài)增加解碼器是后續(xù)的重要研究方面。比如可以考慮將一些支持不同模態(tài)生成(但具有模態(tài)共性)的擴(kuò)散模型進(jìn)行復(fù)用。
5. MosIT 數(shù)據(jù)集擴(kuò)展:目前 NExT-GPT 所使用的 MosIT 數(shù)據(jù)集規(guī)模受限,這也會限制其與用戶的交互表現(xiàn)。后續(xù)研究可以進(jìn)一步提升模態(tài)切換指令微調(diào)學(xué)習(xí)策略以及數(shù)據(jù)集。