僅用4塊GPU、不到3天訓練出「開源版GPT-4o」,這是國內團隊最新研究
机器之心發表於2024-09-23
LLaMA-Omni能夠接收語音指令,同步生成文字和語音響應,響應延遲低至 226ms,低於 GPT-4o 的平均音訊響應延遲 320ms。
以 ChatGPT 為代表的大型語言模型(LLM)已成為強大的通用任務解決器,但大多數 LLM 僅支援基於文字的互動,這限制了它們在不適合文字輸入輸出的場景中的應用。GPT-4o 的出現使得透過語音與 LLM 進行互動成為可能。然而,開源社群對於構建此類基於 LLM 的語音互動模型仍然缺乏探索。實現與 LLM 進行語音互動最簡單的方法是採用基於自動語音識別(ASR)和語音合成(TTS)模型的級聯絡統,其中 ASR 模型將使用者的語音指令轉錄為文字, TTS 模型將 LLM 的響應合成為語音。然而,由於級聯絡統依次輸出轉錄文字、文字響應和語音響應,整個系統往往具有較高的延遲。相比之下,一些多模態語音 - 語言模型將語音離散化為 token 並擴充套件 LLM 的詞表以支援語音輸入和輸出。這種語音 - 語言模型理論上可以直接從語音指令生成語音響應,無需生成中間文字,從而實現極低的響應延遲。然而,在實踐中,由於涉及語音之間複雜的對映,直接語音到語音的生成通常極具挑戰性。為了解決上述問題,來自中國科學院計算技術研究所、中國科學院大學的研究者提出了一種新型模型架構 ——LLaMA-Omni,它可以實現與 LLM 的低延遲、高質量互動。- 論文:https://arxiv.org/pdf/2409.06666
- 程式碼:https://github.com/ictnlp/LLaMA-Omni
- 模型:https://huggingface.co/ICTNLP/Llama-3.1-8B-Omni
- 論文標題:LLaMA-Omni: Seamless Speech Interaction with Large Language Models
LLaMA-Omni 由語音編碼器、語音介面卡、LLM 和流式語音解碼器組成。使用者的語音指令由語音編碼器進行編碼,經過語音介面卡後輸入到 LLM。LLM 直接從語音指令中解碼文字響應,無需首先將語音轉錄為文字。語音解碼器是一個非自迴歸(NAR)流式 Transformer,它將 LLM 的輸出表示作為輸入,並使用連線時序分類(Connectionist Temporal Classification, CTC)來預測與語音響應相對應的離散單元序列。在推理過程中,當 LLM 自迴歸生成文字響應時,語音解碼器同步生成相應的離散單元。為了更好地契合語音互動場景的特點,該研究透過重寫現有的文字指令資料並進行語音合成,構建了名為 InstructS2S-200K 的資料集。實驗結果表明,LLaMA-Omni 可以同步生成高質量的文字和語音響應,延遲低至 226ms。此外,與 SpeechGPT 等語音 - 語言模型相比,LLaMA-Omni 顯著減少了所需的訓練資料和計算資源,從而能夠基於最新的 LLM 高效開發強大的語音互動模型。如圖 2 所示,LLaMA-Omni 由語音編碼器、語音介面卡、LLM 和語音解碼器組成,其中將使用者的語音指令、文字響應和語音響應分別表示為 X^S、Y^T 和 Y^S。該研究使用 Whisper-large-v3 (Radford et al., 2023)的編碼器作為語音編碼器 E。Whisper 是一種在大量音訊資料上訓練的通用語音識別模型,其編碼器能夠從語音中提取有意義的表徵。具體來說,對於使用者的語音指令 X^S,編碼後的語音表徵由 H = ε(X^S) 給出,其中 H = [h_1, ..., h_N ] 是長度為 N 的語音表徵序列,語音編碼器的引數在整個訓練過程中都被凍結。為了使 LLM 能夠理解輸入語音,LLaMA-Omni 結合了一個可訓練的語音介面卡 A,它將語音表徵對映到 LLM 的嵌入空間中。語音介面卡首先對語音表徵 H 進行下采樣以減少序列長度。具體來說,每 k 個連續幀沿特徵維度拼接:接下來,H′ 透過具有 ReLU 啟用的 2 層感知器,得到最終的語音表徵 S:該研究使用 Llama-3.1-8B-Instruct(Dubey et al., 2024)作為 LLM M,它是目前 SOTA 開源 LLM,具有很強的推理能力,並且與人類偏好進行了對齊。prompt 模板 P (・) 如圖 3 所示。將語音表徵序列 S 填充到對應位置,然後將整個序列 P (S) 輸入到 LLM 中。最後,LLM 直接根據語音指令自迴歸生成文字響應 Y^T = [y^T_1 , ..., y^T_M],並使用交叉熵損失進行訓練:為了與文字響應同步生成語音響應,LLaMA-Omni 在 LLM 之後新增了一個流式語音解碼器 D。它由幾個標準 Transformer 層組成,其架構與 LLaMA (Dubey et al., 2024) 相同,每個層都包含一個因果自注意力模組和一個前饋網路。語音解碼器以非自迴歸方式執行,將 LLM 的輸出表示經過上取樣後作為輸入,並生成與語音響應相對應的離散單元序列。如圖 2 所示,LLaMA-Omni 採用兩階段訓練策略。第一階段訓練模型直接根據語音指令生成文字響應的能力。具體來說,語音編碼器被凍結,語音介面卡和 LLM 使用公式 (3) 中的目標 L_LLM 進行訓練。語音解碼器在此階段不參與訓練。第二階段訓練模型來生成語音響應。在此階段,語音編碼器、語音介面卡和 LLM 都被凍結,僅使用公式 (5) 中的目標 L_CTC 來訓練語音解碼器。在推理過程中,LLM 根據語音指令自迴歸生成文字響應。同時,由於語音解碼器使用因果注意力,一旦 LLM 生成文字響應字首,相應的輸出狀態就可以被輸入到語音解碼器中以生成部分對齊,進而產生與生成的文字字首相對應的離散單元。 為了進一步實現語音波形的流式合成,當生成的離散單元數量達到預定義的塊大小 Ω 時,即將該離散單元片段輸入到聲碼器中以合成語音片段,然後立即播放給使用者。因此,使用者無需等待生成完整的文字響應即可開始收聽語音響應,從而確保低響應延遲。演算法 1 描述了上述過程。語音指令資料的構建:INSTRUCTS2S-200K為了訓練 LLaMA-Omni,需要構建三元組資料:語音指令,文字響應,語音響應。對於語音指令資料而言,包含三步:指令重寫、響應生成、語音合成。對於基礎文字指令,作者從 Alpaca 資料集中收集了大約 50K 條指令,該資料集涵蓋了廣泛的主題。此外,作者從 UltraChat 資料集中收集了大約 150K 條指令,該資料集主要由有關世界的問題組成。值得注意的是,UltraChat 是一個大規模多輪對話資料集,但作者僅選擇了前 150K 條條目並僅使用第一輪指令。最終獲得 200K 語音指令資料,稱為 InstructS2S-200K。訓練資料。作者採用 InstructS2S-200K 資料集,其包括 200K 語音指令資料。模型配置。作者使用 Whisper-large-v3 編碼器作為語音編碼器,使用 Llama-3.1-8B-Instruct 作為 LLM。訓練。LLaMA-Omni 遵循兩階段訓練過程:在第一階段,作者訓練語音介面卡和 LLM,批處理大小為 32,共 3 個 epoch;在第二階段,作者訓練語音解碼器,使用與第一階段相同的批處理大小、step 數等。整個訓練過程在 4 個 NVIDIA L40 GPU 上大約需要 65 小時。除此以外,語音 - 語言模型的基線系統包含 SpeechGPT 、 SALMONN (+TTS) 、 Qwen2-Audio (+TTS) 。表 1 給出了 InstructS2S-Eval 基準測試主要結果。首先,在 S2TIF 任務中,從內容(content)角度來看,LLaMA-Omni 相比之前的模型有了顯著提升,這主要是因為 LLaMA-Omni 是基於最新的 Llama-3.1-8B Instruct 模型開發的,充分利用了其強大的文字指令跟隨能力。從風格(style)角度來看,SALMONN 和 Qwen2-Audio 得分較低,因為它們是語音 - 文字模型,輸出風格與語音互動場景不太對齊,經常產生格式化的內容,包含大量冗餘解釋。相比之下,SpeechGPT 作為語音 - 語音模型,獲得了更高的風格得分。LLaMA-Omni 獲得了最高的風格得分,這說明在 InstructS2S-200K 資料集上訓練後,模型輸出風格已經與語音互動場景很好地對齊。對於 S2SIF 任務,LLaMA-Omni 在內容和風格得分上也都優於之前的模型。這進一步證實了 LLaMA-Omni 能夠以簡潔、高效的方式透過語音有效地處理使用者指令。此外,在語音和文字響應的對齊方面,LLaMA-Omni 的 ASR-WER 和 ASR-CER 得分最低。相比之下,SpeechGPT 在對齊語音和文字響應方面表現不佳,這可能是因為它是序列生成文字和語音的。級聯絡統(如 SALMONN+TTS 和 Qwen2-Audio+TTS)的語音 - 文字對齊也不是最理想的,主要是因為生成的文字響應可能包含無法合成語音的字元。這個問題在 Qwen2-Audio 中尤為明顯,它偶爾會輸出中文字元,從而導致語音響應錯誤。相比之下,LLaMA-Omni 的 ASR-WER 和 ASR-CER 得分最低,表明生成的語音和文字響應之間的對齊程度更高,進一步驗證了 LLaMA-Omni 在同時生成文字和語音響應方面的優勢。為了更好地理解 Ω 的影響,作者對系統延遲、語音和文字響應之間的對齊以及不同 Ω 設定下生成的語音質量進行了探索。如表 2 所示,當 Ω 設定為 10 時,系統的響應延遲低至 226ms,甚至低於 GPT-4o 的平均音訊延遲 320ms。綜合來看,可以根據不同的場景調整 Ω 的值,以實現響應延遲和語音質量之間的權衡。表 3 列出了不同模型在 S2TIF 和 S2SIF 任務上的平均解碼時間。LLaMA-Omni 直接提供簡潔的答案,從而顯著縮短解碼時間,平均每條指令僅為 1.49 秒。LLaMA-Omni 同時輸出文字和語音響應,並採用非自迴歸架構生成離散單元,總生成時間僅增加 1.28 倍,體現出 LLaMA-Omni 在解碼速度上的優勢。為了直觀的瞭解不同模型的響應差異,作者在表 4 中提供了一個示例。可以觀察到 Qwen2-Audio 的響應相當冗長,並且包含換行符和括號等無法合成語音的元素。SpeechGPT 的響應風格更適合語音互動場景,但其響應所包含的資訊量較少。相比之下,LLaMA-Omni 給出的響應在保持簡潔風格的同時更加詳細和有幫助,在語音互動場景中的表現優於之前的模型。