🚀 Ultravox模型卡片
Ultravox是一個多模態語音大語言模型(LLM),它圍繞預訓練大語言模型(如Llama、Gemma、Qwen等)和語音編碼器(whisper-large-v3-turbo)構建。
請訪問https://ultravox.ai查看GitHub倉庫和更多信息。
🚀 快速開始
將該模型視為一個能夠“聽”並理解語音的大語言模型。因此,它可以用作語音代理,還可用於語音到語音的翻譯、語音音頻分析等。
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_6-llama-3_1-8b', trust_remote_code=True)
path = "<path-to-input-audio>"
audio, sr = librosa.load(path, sr=16000)
turns = [
{
"role": "system",
"content": "You are a friendly and helpful character. You love to answer questions for people."
},
]
pipe({'audio': audio, 'turns': turns, 'sampling_rate': sr}, max_new_tokens=30)
✨ 主要特性
- 多模態輸入:可以同時處理語音和文本輸入。
- 支持多種語言:支持包括阿拉伯語、白俄羅斯語、保加利亞語等在內的多種語言。
- 噪聲魯棒性:在v0.6系列中,模型在噪聲數據集上進行了訓練,提高了噪聲魯棒性。
- 未來規劃:計劃擴展詞表,支持生成語義和聲學音頻令牌,以產生語音輸出。
📦 安裝指南
文檔未提及具體安裝步驟,可參考模型倉庫獲取安裝信息。
💻 使用示例
基礎用法
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_6-llama-3_1-8b', trust_remote_code=True)
path = "<path-to-input-audio>"
audio, sr = librosa.load(path, sr=16000)
turns = [
{
"role": "system",
"content": "You are a friendly and helpful character. You love to answer questions for people."
},
]
pipe({'audio': audio, 'turns': turns, 'sampling_rate': sr}, max_new_tokens=30)
📚 詳細文檔
模型詳情
模型描述
Ultravox是一個多模態模型,它可以同時接受語音和文本作為輸入(例如,文本系統提示和語音用戶消息)。模型的輸入是一個帶有特殊 <|audio|>
偽令牌的文本提示,模型處理器會用從輸入音頻中提取的嵌入替換這個特殊令牌。以合併後的嵌入作為輸入,模型將像往常一樣生成輸出文本。
在v0.6系列中,Ultravox模型在擴展的印地語語音數據上進行了訓練,這使得模型在印地語上的語音理解性能顯著提高,但在其他語言上有適度的性能下降。此外,v0.6模型還在噪聲數據集上進行了訓練,以提高噪聲魯棒性,並在輸入音頻過於嘈雜或不包含清晰語音時輸出特殊字符串 ((noise))
。
在Ultravox的未來版本中,我們計劃擴展詞表,以支持生成語義和聲學音頻令牌,然後將這些令牌輸入到聲碼器中以產生語音輸出。此版本的模型未進行偏好調整。
模型來源
訓練詳情
訓練數據
訓練數據集是自動語音識別(ASR)數據集、由Llama 3.1 8B生成的擴展數據、語音翻譯數據集和噪聲數據集的混合。
訓練過程
通過知識蒸餾進行有監督的語音指令微調。更多信息,請參閱Ultravox倉庫中的訓練代碼。
訓練超參數
- 訓練模式:BF16混合精度訓練
- 使用的硬件:8個H100 GPU
速度、大小和時間
當前版本的Ultravox在處理音頻內容時,使用基於文本的大語言模型(Llama、Gemma或Qwen)作為骨幹,在A100-40GB GPU上的首次輸出令牌時間(TTFT)約為150毫秒,每秒輸出令牌率約為50 - 100。
請查看TheFastest.ai的音頻標籤,瞭解每日基準測試和與其他現有模型的比較。
評估
評估在covost2(語音翻譯,以BLEU衡量)、fleurs和ultravox_calls(語音識別,以字錯誤率WER衡量)、big bench audio(音頻推理,以準確率衡量)以及musan和ultravox_unintelligible(噪聲/難以理解的語音檢測,以召回率衡量)上進行。
|
v0_5-llama-3_1-8b |
v0_6-llama-3_1-8b |
v0_5-llama-3_3-70b |
v0_6-llama-3_3-70b |
v0_6-gemma-3-27b |
v0_6-qwen-3-32b |
covost2 en_ar |
12.90 |
12.94 |
20.21 |
18.92 |
22.68 |
16.91 |
covost2 en_ca |
31.51 |
31.47 |
40.01 |
38.73 |
39.67 |
33.63 |
covost2 en_de |
28.60 |
28.66 |
34.53 |
33.69 |
34.76 |
31.09 |
covost2 es_en |
40.41 |
40.36 |
43.29 |
41.39 |
41.11 |
41.20 |
covost2 ru_en |
42.22 |
42.41 |
48.99 |
43.73 |
49.29 |
47.08 |
covost2 zh_en |
16.97 |
17.24 |
21.37 |
17.81 |
20.88 |
22.24 |
librispeech |
2.04 |
2.09 |
2.09 |
2.55 |
2.73 |
2.88 |
fleurs cmn_hans_cn |
12.11 |
12.25 |
11.20 |
13.49 |
12.56 |
12.10 |
fleurs de_de |
6.66 |
7.56 |
5.26 |
7.14 |
4.86 |
6.83 |
fleurs es_419 |
5.74 |
5.83 |
4.53 |
6.06 |
4.68 |
5.14 |
fleurs hi_in |
29.74 |
10.34 |
18.90 |
11.43 |
8.40 |
11.78 |
ultravox_calls (asr) |
22.31 |
20.01 |
19.56 |
16.51 |
19.56 |
28.67 |
big bench audio |
68.06 |
69.70 |
90.15 |
85.48 |
83.84 |
84.22 |
musan_noise |
0.00 |
97.45 |
0.00 |
98.51 |
99.58 |
99.78 |
ultravox_unintelligible |
0.00 |
45.78 |
0.00 |
50.00 |
66.84 |
64.21 |
🔧 技術細節
Ultravox模型圍繞預訓練大語言模型(如Llama、Gemma、Qwen等)和語音編碼器(whisper-large-v3-turbo)構建。多模態適配器進行訓練,Whisper編碼器進行微調,而大語言模型保持凍結。使用知識蒸餾損失,使Ultravox嘗試匹配基於文本的大語言模型骨幹的對數幾率。
📄 許可證
本模型使用的許可證為MIT。
屬性 |
詳情 |
支持語言 |
阿拉伯語、白俄羅斯語、保加利亞語、孟加拉語、捷克語、威爾士語、丹麥語、德語、希臘語、英語、西班牙語、愛沙尼亞語、波斯語、芬蘭語、法語、加利西亞語、印地語、匈牙利語、意大利語、日語、格魯吉亞語、立陶宛語、拉脫維亞語、馬其頓語、馬拉地語、荷蘭語、波蘭語、葡萄牙語、羅馬尼亞語、俄語、斯洛伐克語、斯洛文尼亞語、塞爾維亞語、瑞典語、斯瓦希里語、泰米爾語、泰語、土耳其語、烏克蘭語、烏爾都語、越南語、中文 |
模型類型 |
多模態語音大語言模型 |
訓練數據 |
自動語音識別(ASR)數據集、由Llama 3.1 8B生成的擴展數據、語音翻譯數據集和噪聲數據集的混合 |
評估指標 |
BLEU、WER、準確率、召回率 |
許可證 |
MIT |
庫名稱 |
transformers |
任務標籤 |
音頻文本到文本 |