好的,歡迎大家回來。今天的課,我們先講大語言模型,再講多模態大語言模型。
第一部分討論多模態基礎模型的基本知識,包括架構和預訓練。然后講如何將大語言模型適配成多模態模型。前兩部分仍局限于輸入多模態數據但生成文本的情況。接著我們會探討如何以多模態數據為條件,生成多模態數據——也就是從文本生成邁向多模態生成,以及一些最新方向。
回顧一下,大語言模型現在通常分三個階段訓練:預訓練階段,在海量數據上按既定方法預測下一個詞元;指令微調階段,提供人類示范的“輸入-輸出”對,讓模型學會遵循指令;當下還有后訓練階段的測試時擴展,讓模型思考并搜索多條可能路徑來得到正確答案。這些模型的能力包括問答(從互聯網或自身權重中檢索知識)、開放對話、多語翻譯、檢索實時新聞和信息,以及解決數學題、寫代碼這類需要將復雜問題分解、逐步求解并以可解釋方式呈現的推理任務。David已經帶大家了解了這些最新進展。
現在,我們要從大語言模型走向大型多模態模型。大語言模型本身只接收文本,沒有扎根于真實世界的感官信息。最大的區別在輸入端:理想情況下,你希望模型能接收視頻——比如我們展示過的那些展現人思維活動的視頻——來理解社交互動、接收傳感器和實體機器人數據,讓模型真正扎根、理解真實世界中各種不同的媒介。那么,構建這些大型多模態模型面臨哪些挑戰?目前進展如何?
這是我所看到的時間線和當前的階段。我們從多模態模型起步,讓模型理解世界,做些簡單的分類任務。如今,你當然還能讓模型回答分類問題,只需以問題形式提問,并附上可能的答案列表即可。從分類走向更開放的任務,你不僅能問“他是開心、難過還是諷刺”,還可以要求它描述、抓取關系——從單個詞的回答走向基于視頻的開放式對話。接著有工作進一步擴展到解釋:不只是給出答案,還要解釋原因。比如你可以追問,為什么這兩個人顯然在互諷、似乎彼此厭惡,卻分明是多年老友?模型可能會解釋其中的語言,引用視覺證據和面部表情,甚至回溯之前的片段來佐證自己的判斷。我們現在正處于這個“解釋”階段。我們已經從分類、開放式、有來有往的對話,推進到了基于多模態數據的、帶有逐步推理的、相當好的解釋。
![]()
再往前,還有更困難的方向:能否用一段短視頻作為提示,進一步生成、動畫化一個故事?給一段起始指令,模型可能生成視頻、音頻、語言,讓角色動起來。然后是反事實推理——如果你問“如果這些人來自不同的社會或文化,這種諷刺還會被視為幽默還是冒犯?會冒犯誰?”模型能否生成更多視頻和音頻來論證?目前,在多模態推理和解釋方面已有許多有趣進展,當下也在推進多模態輸入和多模態輸出,朝著生成和反事實方向邁進。
這是我眼中未來這些模型發展的總示意圖:模型接收語言和各種不同模態,學習語言與多模態的表示;基于此,它能繼續生成文本,因此語言模型是扎根于多模態的;它還能生成其他模態,并且可以在與人多步對話和交互中完成這一切。今天的課就覆蓋這三個部分。第一部分,回顧一些已有工作,介紹如何接收不同模態、學習表示,用基礎模型獲得豐富表示。第二部分,討論如何將學到的多模態表示快速適配,使其不僅能用于分類,還能用于語言模型的交互和對話。第三部分,探討如何超越文本生成,在輸入和輸出端生成其他模態。
![]()
第一部分,學習多模態表示。我們見過用于語言的Transformer,它們同樣可以用于視覺。本質上,現在任何東西都可以被分詞為離散單元并視為序列。語言是詞的序列,圖像是圖像塊的序列,視頻是幀的序列,傳感器信息也可以看作序列。Transformer通過在這些序列元素上學習自注意力,來獲得信息不斷豐富的表示。多模態Transformer自然成為許多此類模型的骨干。與單模態Transformer最大的區別在于,查詢和鍵來自不同模態。查詢可能來自語言,鍵來自非語言模態(如聲音特征、視覺特征)。維度必須統一,因為你需要把它們視為同一個底層多模態空間,在這個空間里衡量對齊和相似度,而這只有在嵌入空間相同時才可能實現。Wq將語言映射到該空間,Wk將非語言信息映射到該空間。這樣你就能得到一個3×4的交叉注意力矩陣——不只是詞與詞之間,而是詞與非語言表達之間。它不只是關注同一時刻的表達,也可以關注更早或更晚時刻的表達。
對齊本身不是唯一目標。真正目的是利用這種對齊來學習更好的表示。用這個加權平均得到的新多模態表示,就可以用來做推理,比如預測諷刺。這種從純語言Transformer擴展而來的多模態版本,幾乎被所有基礎模型采用。
最初,人們用數據從頭訓練Transformer,后來開始預訓練。常見做法是:對圖像序列和詞序列,先在每個模態內應用Transformer,然后應用跨模態Transformer,讓語言關注視覺,視覺關注語言,通常雙向都做。經過多層之后,語言關注了視覺,視覺關注了語言,得到兩組非對稱的多模態表示——這很有用,因為視覺可能需要密集關注圖像的很多區域,而語言因詞少而關注更稀疏。所以雙向獨立獲得非對稱表示很重要。
后來人們開始預訓練這些Transformer。用大規模圖文數據,做各種預測任務,基本都是自監督或無監督的,不需要人類標注。可以做掩碼語言建模:遮住一些詞,用周圍詞和圖像區域來預測被遮住的詞,遮得越多,越迫使模型從視覺翻譯信息。也可以做掩碼區域建模:遮住圖像某些部分,用其余圖像區域和文字描述來預測被遮住的部分。這是在更細粒度層面的。還有更全局的層面:用整張圖像(所有圖像塊)和整段文本(整串詞)做對比學習。整張圖像對應這段描述,而與其他描述不同。人們探索了很多目標函數,有基于視覺和語言的細粒度(詞級別、小圖像區域級別)的,也有全局的(整體圖像與整體描述匹配)。
這些模型顯示,部分注意力和對齊分數具有一定可解釋性。比如從單詞“花”出發的交叉注意力,確實高亮顯示了花所在的區域;“墻”的注意力也高亮顯示了墻的圖像塊。這并不新鮮,我們見過語言Transformer、視覺Transformer、多模態Transformer及其不同的預訓練方式,這里只是回顧。
接下來,你需要將這些表示適配為大語言模型的輸入,這樣才能靈活地對多模態上下文進行問答。怎么做呢?一個關鍵思路是“適配”。大多數時候,大語言模型規模巨大,理想情況下你希望將其凍結,不用更新太多參數。你可以對任何模態的數據定義一個適配器。比如一張圖像,通過預訓練的CNN或視覺Transformer得到特征嵌入,然后定義一個適配器——它是一個很小的變換,輸入圖像特征,輸出與語言模型詞元嵌入維度相同的東西。把圖像特征適配到凍結大語言模型的輸入空間后,你可以將它作為前綴,放在詞嵌入之前拼接起來,一起送入預訓練模型。這樣模型就能在上下文中同時理解被適配為詞元空間的圖像特征和實際文本的詞嵌入。
這個模型怎么訓練?唯一需要訓練的就是適配器。適配器可以非常小,甚至一個簡單的線性變換就足夠了。視覺模型可訓練也可凍結,語言模型通常凍結。訓練時,給它成對的圖像和文字描述,讓它以前文(適配后的圖像特征和已預測出的詞)為條件,自回歸地預測序列中的下一個詞。訓練完成后,你可以做很多事:給它一張新圖像,問它是什么顏色,它會給出正確答案——盡管它從未見過圖像和問題的組合,只見過文本。如果零樣本效果不夠好,還可以給它單樣本示例,讓它據此泛化。
![]()
這就是2021年Google DeepMind的工作。他們進一步擴大規模,在2022年推出了Flamingo模型,同樣基于凍結大語言模型加適配器的方法。擴大規模后,模型可以進行更長篇幅的對話。給它一張圖像,經過圖像嵌入和適配器進入語言模型,你就能跟它聊月球上的兩只泰迪熊,或者聊不同風格的芒果。大家可能在社交媒體上見過早期視覺模型的一些案例:一張蘋果的照片,上面貼了張寫有“iPod”的貼紙,視覺模型就把它分類為iPod。而Flamingo能正確識別出上面貼了張貼紙,且貼紙上寫的是iPod——不過對這些病毒式傳播的失敗案例被“修復”,也不必過度解讀,因為大公司很可能看到推特上的搞笑例子,就把它們加進訓練數據了。
如今的GPT-4,沒人真正知道它的運作方式。一些人做了小型開源版本,發現適配器層非常通用:圖像經過凍結的視覺Transformer(Q-Former),再加上一個線性適配層,將圖像特征映射到開源指令跟隨語言模型的詞元嵌入維度,唯一訓練的就是這個線性層。
現在這些模型通常分階段訓練。第一階段是對齊:用大量圖像及其期望描述,訓練模型看圖說話。第二階段是指令微調:不僅描述圖像,而是給模型圖像和人類標注的指令,以及人類寫出的理想回答,用這些數據做監督學習,預測理想回答中的每個詞,只訓練線性層。這是2023年的工作,當時還沒有做第三階段的后訓練人類反饋。第一階段只是描述圖像,第二階段更開放,比如評價一個Logo,由人類標注他們感興趣的任務和理想回答。
人們已經把這種適配器模型擴展到了更多模態。LLaMA-Adapter就是一個很好的開源社區項目,基于LLaMA構建。它包含一系列針對不同模態的適配器:圖像、3D點云(經過點云表示模型編碼后適配到LLaMA輸入空間)、多種語言等。比如給一個3D點云和指令,就能生成對應的圖像。因為他們在輸出端還接入了文本到圖像的擴散模型。
![]()
數據方面,預訓練數據集規模呈指數級增長:從YFCC到LAION-400M,再到LAION-5B,最近開源的是DataComp,有120億個數據點。另一個趨勢是,以前預訓練只是單張圖像配單個描述,現在越來越多使用“圖文交錯”數據——圖像、描述、圖像、描述自然交替,更貼近真實世界的交流方式,這帶來了新的能力。同時,近期工作轉向更高數據質量而非數量,意識到海量數據中很多并不好用,有些甚至包含不當內容。現在趨勢是過濾出規模較小但質量更高的數據集,如DataLLM和DCLM,它們也是圖文交錯的。
指令微調數據集規模更小、更分散。這個階段的格式不再是圖文互相描述,而是圖像加上人類寫的指令和理想回答。GPT-4的指令微調數據大約5000條,是最早的例子之一。LLaVA、InstructBLIP是其他流行的視覺指令微調數據集。它們的量級在數十萬,而非預訓練階段的數十億。這些是通用領域的,當然還有很多針對特定領域的指令微調數據集,比如David兩周前展示的大規模醫學影像和醫學問題指令微調數據,以及LLaVA-Med和Biomed等醫學領域數據集。
第三部分。我們講了如何用多模態數據學習表示,以及如何快速適配進大語言模型。下一步是,除了生成文本,還要生成更多模態的數據。比如根據描述生成圖像、從點云生成圖像、高亮相關片段或檢索證據——這些都是視覺和音頻生成問題。近期趨勢正是從純文本生成走向多模態生成。你們可能見過文本到圖像模型,比如Stable Diffusion,我們大約兩周后會詳細講。今天先假定大家已有基本了解,重點講如何將它們整合進多模態模型。
快速回顧:用海量圖像訓練出優秀的圖像編碼器和解碼器。如今最好的圖像編碼器大多基于CLIP,它在訓練時就用對比學習讓圖像表示與語言表示很接近,這極大地方便了后續工作。大致流程是:CLIP編碼圖像,語言模型編碼文本,然后預測CLIP圖像嵌入,最后用擴散模型或流匹配模型逐像素生成圖像。
怎么把文本到圖像模型整合進多模態大模型管線?一個創新是圖文交錯訓練。你看到圖像,它通過視覺編碼器和適配層,然后是一段描述,接著更多圖像、更多描述……所有這些交錯在一起,構成完整的輸入序列,送入語言模型。語言模型生成后續詞元來完成故事,同時生成的嵌入可以與圖像庫中的嵌入計算相似度,從而檢索出最匹配的圖像,實現視覺上的延續。
部署后,你可以用語言和視覺與模型多次交互,模型也能生成語言和視覺,并保持連續性。比如對話中隨時要求“給我看看插畫”或“再給我看張照片”,模型就能檢索或生成相應的圖像。
這種檢索方式只在離散的圖像庫中工作,優點是一定能生成真實的圖像,缺點是受限于圖像庫且有時較慢。于是自然延伸到逐像素圖像生成。同樣,圖像通過視覺適配器,語言通過描述,圖文交錯輸入,然后由一個決策模塊決定是檢索還是生成。有時檢索更好,有時生成更好。例如剛出爐的餅干怎么在農貿市場展示,檢索模型給了碼放緊湊的樣式,生成模型給了更松散的擺盤樣式。
![]()
一個常用的數據集叫視覺敘事,是大型圖文交錯數據集,故事由文本和圖像交替組成,用于訓練和評估這些模型。
最新進展方面。我們花了很多時間講適配器——凍結大語言模型加小型適配器來快速獲得多模態能力。但上周有人可能看到了LLaMA-4,它宣稱自己是“原生多模態模型”,這在業界引發了一場爭論。所謂原生,就是不僅從一個預訓練的大語言模型開始并適配多模態信息,而是從零開始,用隨機初始化的參數,同時訓練語言、圖像、視頻等多種模態。這當然只有大公司才有資源做。LLaMA-4對此大加渲染,其最大模型達到2萬億參數。它的優勢在于,如果承擔得起成本,就能從圖像和視頻中發現更多信息,而我們已經幾乎窮盡了訓練這些模型所用的文本數據。
對心理學和生物學背景的人來說,這種方式也很有吸引力,因為這更接近人類和兒童的學習方式——先學習視覺、聽覺和運動感知,然后才學習語言。但結果目前并不理想。我們也不知道GPT-4o和Gemini具體如何訓練,很可能是預訓練、適配和部分原生訓練的混合。
非原生多模態大模型采用“解耦”架構:大語言模型和圖像編碼器都是預訓練好的,可以凍結,也可以微調。這種架構非常模塊化、即插即用,尤其適合在論文中做實驗或擴展到更多模態。原生模型則直接在多模態輸入上訓練。有些用晚期融合(先有好的圖像特征,再與文本聯合訓練),有些用早期融合(甚至不需要單獨訓練圖像編碼器,直接對像素或圖像塊進行嵌入,送入語言模型)。圖像模型在什么層級進入語言模型,這本身也是個系統工程問題。
Meta發布LLaMA-4時也發布了這些原生多模態模型的擴展定律。我們幾周前讀過一篇關于混合模態生成模型擴展定律的論文,也是出自Meta。那篇論文研究的就是原生多模態模型——文本、語音,有的從零訓文本,有的從零訓語音,有的從零聯合訓練。他們的最新結論是:早期融合在小規模時略有優勢,但到大規模時不同架構表現相似;原生多模態模型的擴展趨勢與單模態大語言模型相似,只是擴展指數差一個常數因子——這或許是好事,意味著關于擴展的所有工作可能以常數倍換算到原生多模態模型。而適配型多模態模型的擴展定律,目前還缺乏系統研究,因為語言部分和適配部分的擴展可能不是單一多項式關系。
LLaMA-4還率先在多模態模型中公開使用了混合專家架構,這對原生多模態模型在相同推理成本下帶來了顯著增益。他們的消融實驗發現,為不同模態設計獨立的專家反而不如模態無關的專家設計。我們也做了相關研究,出發點正是模態交互的不同類型:有時信息是共同且冗余的,有時有很多協同。預訓練的視頻大模型在信息相似時表現尚可,但在需要捕獲涌現出的新協同信息時很吃力。因此我們設計了基于信息來源的路由機制,不同專家負責不同交互類型,還有一個通用專家。
![]()
在多模態時間序列大模型方面也有不少有趣工作,基本都是凍結預訓練大語言模型,加上傳感器編碼模型和適配器。任務包括傳感器分類,甚至可以“問”模型下一個傳感器值是多少,模型會輸出類似“0.6”這樣的詞元化數字。但目前這些模型的表現還很值得商榷。有研究發現,去掉一些復雜的注意力層,甚至把凍結的大語言模型替換成簡單的注意力層,性能變化微乎其微,這說明具體什么組件在起作用還很不清楚。時間序列的表示方式也在探索中:有人設計專門的時間序列表示模型,有人把序列畫成圖像輸入,效果意外地好,也有人直接以數字文本形式輸入,這在機器人領域較常見。
總結一下。我們回顧了多模態基礎模型及其架構與預訓練方法的演變。當前流行的方法是通過訓練模塊化的適配器層,將凍結的大語言模型適配為多模態版本。另一個大趨勢是,從純文本生成走向多模態輸入加多模態輸出,實現真正的多模態交互。此外還有原生多模態模型、多模態混合專家、圖文交錯訓練等方向。別忘了推進項目,提交閱讀作業。謝謝大家。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.