🚀 Ultravox模型卡片
Ultravox是一个多模态语音大语言模型(LLM),它基于预训练的[Llama3.1 - 8B - Instruct](https://huggingface.co/meta - llama/Meta - Llama - 3.1 - 8B)和[Whisper - medium](https://huggingface.co/openai/whisper - medium)架构构建。
请访问https://ultravox.ai查看GitHub仓库和更多信息。
🚀 快速开始
你可以将该模型视为一个能够“听”并理解语音的大语言模型。因此,它可以用作语音代理,还能进行语音到语音的翻译、语音音频分析等。
要使用该模型,请尝试以下代码:
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_4', 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)
✨ 主要特性
- 多模态处理:可以同时处理语音和文本输入。
- 未来规划:计划扩展词表,支持生成语义和声学音频令牌,以实现语音输出。
📦 安装指南
pip install transformers peft librosa
💻 使用示例
基础用法
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_4', 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|>
的文本提示,模型处理器会用从输入音频中提取的嵌入向量替换这个特殊令牌。以合并后的嵌入向量作为输入,模型将像往常一样生成输出文本。
在Ultravox的未来版本中,我们计划扩展词表,以支持生成语义和声学音频令牌,然后将这些令牌输入到声码器中以产生语音输出。此版本的模型未进行偏好调整。
模型来源
训练详情
该模型使用预训练的[Llama3.1 - 8B - Instruct](https://huggingface.co/meta - llama/Meta - Llama - 3.1 - 8B)架构以及[Whisper - medium](https://huggingface.co/openai/whisper - medium)的编码器部分。
仅对多模态适配器进行训练,而Whisper编码器和Llama保持冻结状态。
我们使用知识蒸馏损失,让Ultravox尝试匹配基于文本的Llama架构的对数几率。
训练数据
训练数据集是自动语音识别(ASR)数据集的混合,并通过添加由Llama 3.1 8B生成的“延续内容”进行扩展。
训练过程
监督式语音到音频微调。更多信息,请查看[Ultravox仓库中的训练代码](https://github.com/fixie - ai/ultravox/blob/main/ultravox/training/train.py)。
训练超参数
- 训练模式:BF16混合精度训练
- 使用的硬件:8x H100 GPU
速度、大小和时间
当前版本的Ultravox在处理音频内容时,使用Llama 3.1 8B架构和A100 - 40GB GPU,首次输出令牌的时间(TTFT)约为150ms,每秒输出令牌的速度约为50 - 100。
请查看TheFastest.ai的音频标签,了解每日基准测试以及与其他现有模型的比较。
评估
模型版本 |
英语到德语(BLEU) |
西班牙语到英语(BLEU) |
LibriSpeech clean.test(WER) |
Ultravox v0.3 |
22.66 |
24.74 |
6.67 |
Ultravox v0.4 |
25.47 |
37.11 |
4.45 |
Llama3.1(仅文本) |
31.95 |
38.28 |
- |
🔧 技术细节
- 模型使用预训练的[Llama3.1 - 8B - Instruct](https://huggingface.co/meta - llama/Meta - Llama - 3.1 - 8B)和[Whisper - medium](https://huggingface.co/openai/whisper - medium)架构。
- 仅对多模态适配器进行训练,Whisper编码器和Llama保持冻结。
- 使用知识蒸馏损失,让模型尝试匹配基于文本的Llama架构的对数几率。
📄 许可证
本项目采用MIT许可证。
属性 |
详情 |
支持语言 |
英语、阿拉伯语、德语、西班牙语、法语、意大利语、日语、葡萄牙语、俄语 |
模型类型 |
多模态语音大语言模型 |
训练数据 |
fixie - ai/librispeech_asr、fixie - ai/common_voice_17_0、fixie - ai/peoples_speech、fnlp/AnyInstruct |
评估指标 |
BLEU |
任务类型 |
音频文本到文本 |
许可证 |
MIT |
库名称 |
transformers |