🚀 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 |
任务标签 |
音频文本到文本 |