language:
- zh
license: mit
library_name: transformers
datasets:
- fixie-ai/librispeech_asr
- fixie-ai/common_voice_17_0
pipeline_tag: audio-text-to-text
Ultravox 模型卡
Ultravox 是一个基于预训练模型 Llama3.1-8B-Instruct 和 Whisper-small 构建的多模态语音大语言模型。
更多信息及 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_3', 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-8B-Instruct 主干网络以及 Whisper-small 的编码器部分。
仅训练多模态适配器,同时保持 Whisper 编码器和 Llama 主干网络冻结。
我们采用了知识蒸馏损失函数,使 Ultravox 能够匹配基于文本的 Llama 主干网络的逻辑输出。
训练数据
训练数据集由 ASR 数据集混合而成,并通过添加由 Llama 3.1 8B 生成的"续写"内容进行了扩展。
训练过程
采用监督式语音到音频的微调方法。更多信息请参见 Ultravox 代码仓库中的训练代码。
训练超参数
- 训练模式: BF16 混合精度训练
- 硬件配置: 8 块 H100 GPU
速度、规模与时间
当前版本的 Ultravox 在处理音频内容时,使用 A100-40GB GPU 的情况下,首令牌生成时间(TTFT)约为 200 毫秒,令牌生成速度为每秒 50-100 个令牌(基于 Llama 3.1 8B 主干网络)。
访问 TheFastest.ai 的音频板块查看每日基准测试结果,并与其他现有模型进行比较。
评估结果
|
英译德 (BLEU) |
西译英 (BLEU) |
LibriSpeech clean.test (WER) |
Ultravox v0.2 |
12.07 |
15.17 |
6.07 |
Ultravox v0.3 |
22.68 |
24.10 |
6.67 |
Whisper-Llama3.1 |
24.89 |
28.67 |
3.4 |
Llama3.1 (纯文本) |
31.95 |
38.28 |
- |