语言:
- 英语
- 阿拉伯语
- 德语
- 西班牙语
- 法语
- 意大利语
- 日语
- 葡萄牙语
- 俄语
许可证: MIT
库名称: transformers
数据集:
- fixie-ai/librispeech_asr
- fixie-ai/common_voice_17_0
- fixie-ai/peoples_speech
- fnlp/AnyInstruct
评估指标:
管道标签: 音频文本转文本
Ultravox 模型卡
Ultravox 是一个多模态语音大语言模型,基于预训练的 Llama3.1-70B-Instruct 和 Whisper-medium 主干构建。
更多信息请访问 GitHub 仓库: https://ultravox.ai
模型详情
模型描述
Ultravox 是一个多模态模型,能够同时接收语音和文本作为输入(例如,文本系统提示和语音用户消息)。模型的输入是一个包含特殊伪标记 <|audio|>
的文本提示,模型处理器会将该标记替换为输入音频生成的嵌入。使用合并后的嵌入作为输入,模型将像往常一样生成输出文本。
在 Ultravox 的未来版本中,我们计划扩展标记词汇表以支持生成语义和声学音频标记,这些标记可以输入到声码器中以产生语音输出。当前版本的模型尚未应用偏好调优。
模型来源
- 仓库: https://ultravox.ai
- 演示: 参见仓库
使用方法
可以将该模型视为一个既能听又能理解语音的大语言模型。因此,它可以作为语音代理使用,也可以用于语音到语音的翻译、语音音频分析等任务。
使用模型的方法如下:
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_4', trust_remote_code=True)
path = "<输入音频路径>"
audio, sr = librosa.load(path, sr=16000)
turns = [
{
"role": "system",
"content": "你是一个友好且乐于助人的角色,喜欢回答人们的问题。"
},
]
pipe({'audio': audio, 'turns': turns, 'sampling_rate': sr}, max_new_tokens=30)
训练详情
模型使用了预训练的 Llama3.1-70B-Instruct 主干以及 Whisper-medium 的编码器部分。
仅训练了多模态适配器,而 Whisper 编码器和 Llama 保持冻结状态。
我们采用了知识蒸馏损失函数,Ultravox 试图匹配基于文本的 Llama 主干的逻辑输出。
训练数据
训练数据集是多个自动语音识别(ASR)数据集的混合,并通过添加由 Llama 3.1 70B 生成的“续写”进行了扩展。
训练过程
监督式语音到音频的微调。更多信息请参见 Ultravox 仓库中的训练代码。
训练超参数
- 训练机制: BF16 混合精度训练
- 使用硬件: 8 块 H100 GPU
速度、规模与时间
当前版本的 Ultravox 在处理音频内容时,首次令牌生成时间(TTFT)约为 400 毫秒,在使用 4 块 H100 SXM GPU 的情况下,每秒生成约 50-100 个令牌,所有测试均基于 Llama 3.1 70B 主干。
访问 TheFastest.ai 的音频标签页,查看每日基准测试及与其他现有模型的对比。
评估结果
|
英译德 (BLEU) |
西译英 (BLEU) |
LibriSpeech 干净测试集 (WER) |
Ultravox v0.3 |
22.66 |
24.74 |
6.67 |
Ultravox v0.4 8B |
25.47 |
37.11 |
4.45 |
Ultravox v0.4 70B |
30.30 |
39.55 |
4.49 |
Llama3.1 8B (仅文本) |
32.59 |
44.62 |
- |
Llama3.1 70B (仅文本) |
38.76 |
46.39 |
- |