Ultravox-v0_3 项目介绍
项目概述
Ultravox-v0_3 是由 Fixie.ai 开发的一个多模态语音大语言模型(Speech LLM)。该模型基于预训练的 Llama3.1-8B-Instruct 和 Whisper-small 骨干网络构建而成。它的独特之处在于能够同时处理语音和文本输入,使其成为一个强大的语音交互代理。
模型特点
Ultravox-v0_3 的主要特点包括:
- 多模态输入:可以接受语音和文本作为输入,例如文本系统提示和用户语音消息。
- 特殊标记处理:使用
<|audio|>
伪标记来表示音频输入位置,模型处理器会将其替换为从输入音频派生的嵌入。 - 文本生成:基于合并的嵌入输入,模型能够生成相应的输出文本。
- 开源许可:采用 MIT 许可证,允许广泛使用和修改。
使用方法
Ultravox-v0_3 可以被视为一个能够听懂和理解语音的大语言模型。它可以用作语音代理,进行语音到语音的翻译,以及分析口语音频等任务。以下是一个简单的使用示例:
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_3', 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-v0_3 的训练过程具有以下特点:
- 使用预训练的 Llama3.1-8B-Instruct 和 Whisper-small 编码器作为骨干网络。
- 仅训练多模态适配器,保持 Whisper 编码器和 Llama 冻结不变。
- 采用知识蒸馏损失,使 Ultravox 尝试匹配基于文本的 Llama 骨干网络的 logits。
- 训练数据集是 ASR 数据集的混合,并通过 Llama 3.1 8B 生成的"续写"进行扩展。
- 使用 BF16 混合精度训练,硬件为 8 个 H100 GPU。
性能评估
Ultravox-v0_3 在多个任务上展现了优秀的性能:
- 英德翻译(BLEU):22.68
- 西英翻译(BLEU):24.10
- LibriSpeech clean.test(WER):6.67
与前一版本(v0.2)相比,Ultravox-v0_3 在翻译任务上取得了显著进步,BLEU 分数几乎翻倍。虽然在语音识别任务上略有下降,但整体性能仍然令人印象深刻。
未来展望
Ultravox 团队计划在未来的版本中扩展模型的功能:
- 扩展词汇表以支持生成语义和声学音频标记。
- 开发声码器,将生成的音频标记转换为语音输出。
这些计划将进一步增强 Ultravox 的多模态能力,使其能够不仅理解语音输入,还能生成语音输出,从而实现更自然、更丰富的人机交互体验。
ultravox-v0_3项目介绍
项目概述
Ultravox-v0_3是一个由Fixie.ai开发的多模态语音大语言模型(Speech LLM)。该项目基于预训练的Llama3.1-8B-Instruct和Whisper-small骨干网络构建而成,旨在创建一个能够同时处理语音和文本输入的强大AI模型。Ultravox-v0_3不仅可以理解和分析语音内容,还能生成相应的文本输出,使其成为一个versatile的语音交互代理。
模型特点
Ultravox-v0_3具有以下主要特点:
- 多模态输入:模型可以接受语音和文本作为输入,例如文本系统提示和用户语音消息。
- 特殊标记处理:使用
<|audio|>
伪标记来表示音频输入位置,模型处理器会将其替换为从输入音频派生的嵌入。 - 文本生成:基于合并的嵌入输入,模型能够生成相应的输出文本。
- 开源许可:采用MIT许可证,允许广泛使用和修改。
- 灵活应用:可用于语音代理、语音到语音翻译、口语音频分析等多种场景。
使用方法
使用Ultravox-v0_3非常straightforward。以下是一个简单的示例代码:
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie-ai/ultravox-v0_3', 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-v0_3的训练过程具有以下特点:
- 骨干网络:使用预训练的Llama3.1-8B-Instruct和Whisper-small编码器。
- 训练策略:仅训练多模态适配器,保持Whisper编码器和Llama冻结不变。
- 损失函数:采用知识蒸馏损失,使Ultravox尝试匹配基于文本的Llama骨干网络的logits。
- 训练数据:使用ASR数据集的混合,并通过Llama 3.1 8B生成的"续写"进行扩展。
- 硬件和精度:使用8个H100 GPU进行BF16混合精度训练。
性能评估
Ultravox-v0_3在多个任务上展现了优秀的性能:
- 英德翻译(BLEU):22.68
- 西英翻译(BLEU):24.10
- LibriSpeech clean.test(WER):6.67
与前一版本(v0.2)相比,Ultravox-v0_3在翻译任务上取得了显著进步,BLEU分数几乎翻倍。虽然在语音识别任务上略有下降,但整体性能仍然令人印象深刻。
未来展望
Ultravox团队计划在未来的版本中进一步增强模型的功能:
- 词汇表扩展:支持生成语义和声学音频标记。
- 语音生成:开发声码器,将生成的音频标记转换为语音输出。
这些计划将使Ultravox不仅能理解语音输入,还能生成语音输出,从而实现更自然、更丰富的人机交互体验。
结论
Ultravox-v0_3代表了多模态语音大语言模型的一个重要进展。通过结合语音理解和文本生成能力,它为各种应用场景提供了强大的工具。随着持续的开发和改进,Ultravox有潜力成为语音交互和处理领域的领先解决方案。