多模態大模型不夠靈活,谷歌DeepMind創新架構Zipper:分開訓練再「壓縮」

机器之心發表於2024-06-03

最近的一系列研究表明,純解碼器生成模型可以透過訓練利用下一個 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 模型的效能,這驗證了直覺 —— 微調語音骨幹網路的引數比僅依賴交叉注意力產生的模態對齊效果更好。

更多研究細節,可參考原論文。

相關文章