🚀 Slamming:在一天內用單塊GPU訓練語音語言模型
本項目介紹了一種在單塊學術GPU上24小時內訓練高質量語音語言模型(SLM)的方法。通過對模型初始化、架構、合成訓練數據等方面的實證分析,實現了高效訓練,且該方法在更多計算資源下也能取得良好效果。
🚀 快速開始
若你想了解模型的完整使用說明,請參考官方倉庫 - github。
✨ 主要特性
- 高效訓練:能夠在單塊學術GPU上24小時內訓練出高質量的語音語言模型。
- 可擴展性:訓練方法在更多計算資源下也能取得與領先SLM相媲美的結果。
- 多數據集支持:使用了多個數據集進行預訓練和微調,包括LibriSpeech、Libri - Light、sTinyStories和SpokenSwag等。
📦 安裝指南
文檔未提及具體安裝步驟,故跳過此章節。
💻 使用示例
文檔未提供代碼示例,故跳過此章節。
📚 詳細文檔
模型詳情
模型描述
此語音語言模型在論文"Slamming: Training a Speech Language Model on One GPU in a Day"中被提出,專注於高效訓練。它基於[Qwen/Qwen2.5 - 0.5B](https://huggingface.co/Qwen/Qwen2.5 - 0.5B)進行微調,詞彙表包含從[mhubert - 25hz](https://huggingface.co/slprl/mhubert - base - 25hz)的第11層提取的500個語音標記。
該模型在LibriSpeech、Libri - Light的子集以及合成數據集sTinyStories上使用下一個標記預測進行預訓練,隨後在SpokenSwag上使用DPO進行微調。
屬性 |
詳情 |
開發團隊 |
SLP - RL |
模型類型 |
SpeechLM |
許可證 |
MIT |
微調基礎模型 |
[Qwen/Qwen2.5 - 0.5B](https://huggingface.co/Qwen/Qwen2.5 - 0.5B) |
模型來源
- 倉庫:[https://github.com/slp - rl/slamkit](https://github.com/slp - rl/slamkit)
- 論文:https://arxiv.org/abs/2502.15814
- 演示:[https://pages.cs.huji.ac.il/adiyoss - lab/slamming/](https://pages.cs.huji.ac.il/adiyoss - lab/slamming/)
用途
這個基礎語音語言模型可用於生成語音片段的延續內容,也可作為進一步微調的基礎。更多使用細節請參考_SlamKit_ [代碼庫](https://github.com/slp - rl/slamkit),並查看[演示頁面](https://pages.cs.huji.ac.il/adiyoss - lab/slamming/)獲取一些生成示例。
適用範圍外的使用
該模型在經過精心挑選的語音數據集上進行訓練,這些數據集主要包含有聲書籍和故事,因此其輸出不應被視為事實信息。
訓練詳情
強烈建議用戶閱讀完整的論文以瞭解完整的訓練細節,以下是簡要概述。
訓練數據
該模型在預訓練階段使用了LibriSpeech訓練子集、[Libri - Light](https://ai.meta.com/tools/libri - light/)和合成數據集sTinyStories。在微調階段,還使用DPO在合成數據集SpokenSwag上進行訓練。
訓練過程
該模型通過在多個數據集上進行下一個標記預測訓練,然後在SpokenSwag上使用DPO進行訓練。完整的訓練配方請參考論文或[代碼](https://github.com/slp - rl/slamkit)。
預處理
使用[Hubert - 25hz](https://huggingface.co/slprl/mhubert - base - 25hz)從音頻中提取語音標記,並使用textlesslib中與模型一起發佈的官方kmeans進行量化。對單元進行去重處理。若你想了解完整細節,建議探索官方倉庫 - [github](https://github.com/slp - rl/slamkit)。
評估
論文提供了完整的結果,這裡給出一些結果,並建議參考[演示頁面](https://pages.cs.huji.ac.il/adiyoss - lab/slamming/)聽取一些樣本。
模型 |
GPU數量 |
參數 |
標記數量 |
sBLIMP ↑ |
sStoryCloze ↑ |
tStoryCloze ↑ |
GenPPL ↓ |
Auto - BLEU ↓ |
僅語音預訓練 |
|
|
|
|
|
|
|
|
GSLM |
8×V100 |
100M |
1B |
54.2 |
53.3 |
66.6 |
— |
— |
SyllableLM |
4×A40 |
300M |
16B |
63.7 |
— |
75.4 |
— |
— |
TWIST - 350M |
8×V100 |
305M |
10.8B |
56.2 |
— |
— |
137.3 |
3.46 |
TWIST - 1.3B |
32×V100 |
1B |
10.8B |
57.0 |
52.4 |
70.6 |
131.8 |
3.20 |
TWIST - 7B |
32×V100 |
7B |
36B |
59.0 |
55.3 |
74.1 |
93.74 |
3.06 |
TWIST - 13B |
32×V100 |
13B |
36B |
59.2 |
55.4 |
76.4 |
— |
— |
Scaled Optimal |
— |
823M |
82B |
61.3 |
56.7 |
78.0 |
— |
— |
Moshi |
?×H100 |
7B |
? |
58.9 |
58.7 |
81.8 |
— |
— |
SpiritLM |
64×A100 |
7B |
100B |
58.0 |
54.8 |
72.9 |
— |
— |
使用文本/偏好優化 |
|
|
|
|
|
|
|
|
Scaling Interleaving |
— |
9B |
~1T |
— |
62.4 |
82.9 |
— |
— |
Moshi |
?×H100 |
7B |
~720B |
58.8 |
60.8 |
83.0 |
— |
— |
SpiritLM |
64×A100 |
7B |
100B |
58.3 |
61.0 |
82.9 |
— |
— |
AlignSLM - 1.3B |
64×A100 |
1B |
10.8B + ~158B |
59.8 |
55.0 |
80.0 |
— |
— |
AlignSLM - 7B |
64×A100 |
7B |
36B + ~158B |
62.3 |
61.1 |
86.8 |
— |
— |
我們的模型 (Slam) |
|
|
|
|
|
|
|
|
Slam (-DPO) |
2×A100 |
358M |
16.7B |
58.53 |
58.15 |
80.71 |
67.3 |
3.25 |
Slam |
1×A5000 |
358M |
1.4B + 5M |
58.86 |
58.04 |
82.04 |
62.8 |
3.88 |
Slam (scaled) |
2×A100 |
358M |
16.7B + 9M |
61.11 |
61.30 |
84.18 |
46.6 |
3.75 |
計算基礎設施
該模型是在論文"Slamming: Training a Speech Language Model on One GPU in a Day"的研究背景下進行訓練的,專注於高效訓練。
硬件
該模型僅使用2塊Nvidia A100 GPU訓練了48小時。
軟件
模型使用[SlamKit](https://github.com/slp - rl/slamkit)代碼庫進行訓練,該代碼庫基於🤗transformers構建,擴展了其對語音語言模型的簡單高效訓練支持。
🔧 技術細節
該模型在單塊學術GPU上24小時內訓練高質量語音語言模型的技術,主要通過對模型初始化、架構、合成訓練數據、偏好優化等方面的實證分析實現。具體可參考論文Slamming: Training a Speech Language Model on One GPU in a Day。
📄 許可證
本項目採用MIT許可證。
📚 引用
若你使用了本模型或相關研究,請使用以下BibTeX引用:
@misc{maimon2025slamming,
title={Slamming: Training a Speech Language Model on One GPU in a Day},
author={Gallil Maimon and Avishai Elmakies and Yossi Adi},
year={2025},
eprint={2502.15814},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2502.15814},
}