多模態大模型不夠靈活,谷歌DeepMind創新架構Zipper:分開訓練再「壓縮」
最近的一系列研究表明,純解碼器生成模型可以通過訓練利用下一個 token 預測生成有用的表征,從而成功地生成多種模態(如音頻、圖像或狀態 - 動作序列)的新序列,從文本、蛋白質、音頻到圖像,甚至是狀態序列。
能夠同時生成多種模態輸出的多模態模型一般是通過某種形式的詞匯擴展(將多模態表征轉換為離散 token 并添加到模型的基本詞匯表中)來實現的,即在預訓練階段或在后期微調階段進行跨模態對齊。
多模態預訓練方法具有很強的性能優勢(例如,一個模型可以原生理解多種模態),但也有缺點。例如,無法解決如何在預訓練后添加新模態的問題,也缺乏靈活性,因為添加另一種模態需要從頭開始訓練一個新的模型,并進行超參數搜索,以獲得模態之間的最佳訓練數據混合比。因此,這種解決方案不適合小眾模態,特別是 IMU、蛋白質序列等。
或者,將詞匯擴展到另一種模態可以在一個從未見過該模態的模型上進行預訓練后進行。只在文本模態下訓練的解碼器模型可以在上下文中遵循指令并從樣本中學習,通常是通過微調將另一種模態(如音頻或圖像功能)嫁接到現有的強大文本骨干上,以利用文本模態的可表達性和人類用戶的可控性。這樣做的缺點是骨干網絡的文本到文本功能會被破壞,由此產生的模型只能執行其經過微調的跨模態任務。
總體來說,無論是預訓練還是微調,都需要大量對齊的跨模態數據,因此這兩種方法都不適用于沒有足夠數量以對齊多模態數據的模態。
Google DeepMind 近期提出了模塊化設計的新型架構 Zipper,它由多個單模態預訓練解碼器模型組成。利用豐富的無監督單模態數據,Zipper 可以在單一模態中預訓練強大的純解碼器模型,然后利用交叉注意力將多個這樣的預訓練解碼器「壓縮」在一起,并利用有限的跨模態數據進行微調,實現多模態生成能力。預訓練的純解碼器模型可以在新的多模態組合中靈活地重復使用和再利用。
- 論文標題:Zipper: A Multi-Tower Decoder Architecture for Fusing Modalities
- 論文鏈接:https://arxiv.org/pdf/2405.18669
這是第一項研究靈活組合模態的工作,通過組合單獨預訓練的單模態解碼器來實現多模態生成能力。
雖然 Zipper 架構可在多種模態和兩種以上模態的骨干上通用,但這項工作的重點放在了僅融合兩種骨干(語音和文本)的實驗設置上。論文展示了 Zipper 在同時跨模態生成文本(自動語音識別(ASR)任務)和語音(文本到語音任務(TTS))方面的強大能力。
僅使用部分文本 - 語音對齊數據(低至原始數據的 1%)進行的實驗表明,首先在無標記數據上對骨干進行單模態預訓練,與使用詞匯擴展方法進行微調相比,Zipper 可以依賴更少的對齊數據,這為使用解碼器 - 解碼器架構融合模態提供了可能性,對于成對數據量有限的生成任務非常有用。
接下來,讓我們看看論文細節。
模型
Zipper 架構由兩個自回歸解碼器 tower(或主干)組成,它們通過門控交叉注意力層「壓縮」在一起。每個骨干使用下一個 token 預測功能分別對單個模態進行訓練。
圖 1 顯示了 Zipper 架構的概覽。與 CALM 類似,在解碼器骨干之間的每 i 層都插入了交叉注意力層。在這些有規律交錯的層中,一種模態的表征被交叉注意力到另一種模態中。這與 Flamingo [4] 編碼器 - 解碼器設置不同,后者只在一個 tower(編碼器)的最后一層定期交叉注意力到另一個 tower(解碼器)的各層。
在交叉注意力過程中,投影層被插入模態之間。從功能上講,這可以均衡骨干之間的嵌入維度大小差異。從語義上講,它還能實現從一種模態到另一種模態的表征轉換,尤其是當一個或兩個骨干被凍結時。此外,在每個骨干網的輸入嵌入之后,還直接加入了一個非線性輸入投影層,以便更好地調整輸入的單模態表征,用于多模態任務。
在第一個 Transformer 塊之前(嵌入層之后),插入兩個可學習的多層感知器(MLP)投影,然后對每個骨干進行 ReLU 轉換:
這樣做是為了讓單模態表征更好地適應多模態設置。
讓 i_A 和 i_B 分別代表 A 層交叉到 B 層和 B 層交叉到 A 層的間隔。將 k 層單模解碼器 A 的隱藏表征法稱為
,其中 d_A 是 transformer A 的隱藏維度;同樣,將 l 層單模解碼器 B 的隱藏表征法稱為
,其中 d_B 是 transformer B 的相應隱藏維度。設 fcross (Q, K, V ) 是來自 [4] 的門控交叉注意力層,其后是前饋層,Q、K、V 分別是查詢、鍵和值。讓
和
分別代表 tower A 和 tower B 的線性前饋投影和全連接投影。
解碼器 A 中第 k 層的新表征。
具體如下:
同樣,解碼器 B 第 l 層的新表征為:
最后,每個 tower 以一個 softmax 層(與同 tower 嵌入層共享)結束,以便利用下一個 token 預測任務將隱藏表征投射到(特定模態 /tower)token 詞匯的概率分布中。
研究者將交叉注意力機制用于交錯序列的自動回歸訓練,具體做法是只交叉關注原始線性序列中當前位置之前的另一種模態的數據。
在解碼過程中,輸出模態的序列是指定的(例如,[語音]、[文本]、[文本、語音])。模型以序列中的第一種模態生成輸出,直到遇到特殊的句末 token,這時才會切換到序列中的下一種模態。該過程一直持續到序列中的所有模態都被解碼為止。雖然可以擴展模型自動選擇輸出生成的模態,但這一設置的通用化還需要后續的工作。
實驗
雖然 Zipper 可以擴展到任意數量的模態,研究者率先評估了語音到文本生成和文本到語音(TTS)生成的自動語音識別(ASR)。
值得注意的是,雖然對 TTS 系統(合成語音)的標準評估依賴于人類反饋(平均意見分數),可以捕捉到語音的許多整體方面(如文本保真度和聲音質量等),但這里的 TTS 評估只希望捕捉到架構選擇對語義 token 建模和預測能力的影響。
表 1 列出了 ASR 任務的測試結果:
將 Zipper 與擴展詞匯量的單解碼器基線進行比較時,可以發現 Zipper 在 test-clean 子集上的性能略好,而在噪音較高的語音 test-other 子集上的性能則略有下降,總體性能相當接近。
表 2 列出了在 LibriTTS 數據集的 test-clean 分割上進行 TTS 任務的結果。
可以看出,Zipper 模型明顯優于單解碼器模型,Zipper S/128M unfrozen model 模型提高了 13 個 WER 點(相對誤差減少 40%),Zipper L/1B unfrozen model 模型提高了 12 個 WER 點(相對誤差減少 38%)。
研究者還觀察到,與使用凍結骨干網絡相比,在訓練過程中解凍語音骨干網絡可持續改善所有尺寸 Zipper 模型的性能,這驗證了直覺 —— 微調語音骨干網絡的參數比僅依賴交叉注意力產生的模態對齊效果更好。
更多研究細節,可參考原論文。
本文轉自 機器之心 ,作者:機器之心
