🚀 Ultravoxモデルカード
Ultravoxは、多模态音声大規模言語モデル(LLM)です。このモデルは、事前学習された大規模言語モデル(Llama、Gemma、Qwenなど)と音声エンコーダ(whisper-large-v3-turbo)を中心に構築されています。
詳細な情報やGitHubリポジトリは、https://ultravox.ai をご覧ください。
🚀 クイックスタート
このモデルは、音声を「聴き」、理解することができる大規模言語モデルとして機能します。したがって、音声エージェントとして使用したり、音声翻訳や音声分析などに利用することができます。
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ミリ秒で、1秒あたりの出力トークン率は約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 |
タスクラベル |
音声テキストからテキスト |