🚀 Aero-1-Audio
Aero-1-Audio
は、音声認識、音声理解、音声指示の実行など、様々な音声タスクに対応したコンパクトな音声モデルです。
- Qwen-2.5-1.5B言語モデルをベースに構築されており、WhisperやQwen-2-Audio、Phi-4-Multimodalなどの大規模な高度なモデルや、ElevenLabs/Scribeなどの商用サービスと比較しても、パラメータ効率が高く、複数の音声ベンチマークで強力な性能を発揮します。
- Aeroは、16台のH100 GPUでたった1日間、たった50,000時間の音声データを使用して学習されまし。このことから、高品質でフィルタリングされたデータを使用することで、音声モデルの学習をサンプル効率の高いものにできることが示唆されます。
- Aeroは、最大15分の連続音声入力に対して、ASRと音声理解を正確に実行できます。このシナリオは、他のモデルにとって依然として課題となっています。
- 開発者: [LMMs-Lab]
- モデルタイプ: [LLM + 音声エンコーダ]
- 言語 (NLP): [英語]
- ライセンス: [MIT]
🚀 クイックスタート
以下のコードを使用して、モデルを使い始めましょう。
このモデルを構築する際に使用したtransformersのバージョンを使用することをおすすめします。
python3 -m pip install transformers@git+https://github.com/huggingface/transformers@v4.51.3-Qwen2.5-Omni-preview
💻 使用例
基本的な使用法
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
import librosa
def load_audio():
return librosa.load(librosa.ex("libri1"), sr=16000)[0]
processor = AutoProcessor.from_pretrained("lmms-lab/Aero-1-Audio-1.5B", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("lmms-lab/Aero-1-Audio-1.5B", device_map="cuda", torch_dtype="auto", attn_implementation="flash_attention_2", trust_remote_code=True)
model.eval()
messages = [
{
"role": "user",
"content": [
{
"type": "audio_url",
"audio": "placeholder",
},
{
"type": "text",
"text": "Please transcribe the audio",
}
]
}
]
audios = [load_audio()]
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, audios=audios, sampling_rate=16000, return_tensors="pt")
inputs = {k: v.to("cuda") for k, v in inputs.items()}
outputs = model.generate(**inputs, eos_token_id=151645, max_new_tokens=4096)
cont = outputs[:, inputs["input_ids"].shape[-1] :]
print(processor.batch_decode(cont, skip_special_tokens=True)[0])
高度な使用法
from transformers import AutoProcessor, AutoModelForCausalLM
import torch
import librosa
def load_audio():
return librosa.load(librosa.ex("libri1"), sr=16000)[0]
def load_audio_2():
return librosa.load(librosa.ex("libri2"), sr=16000)[0]
processor = AutoProcessor.from_pretrained("lmms-lab/Aero-1-Audio-1.5B", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("lmms-lab/Aero-1-Audio-1.5B", device_map="cuda", torch_dtype="auto", attn_implementation="flash_attention_2", trust_remote_code=True)
model.eval()
messages = [
{
"role": "user",
"content": [
{
"type": "audio_url",
"audio": "placeholder",
},
{
"type": "text",
"text": "Please transcribe the audio",
}
]
}
]
messages = [messages, messages]
audios = [load_audio(), load_audio_2()]
processor.tokenizer.padding_side="left"
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, audios=audios, sampling_rate=16000, return_tensors="pt", padding=True)
inputs = {k: v.to("cuda") for k, v in inputs.items()}
outputs = model.generate(**inputs, eos_token_id=151645, pad_token_id=151643, max_new_tokens=4096)
cont = outputs[:, inputs["input_ids"].shape[-1] :]
print(processor.batch_decode(cont, skip_special_tokens=True))
📚 ドキュメント
学習データ
ここでは、データミックスの貢献を紹介します。SFTデータミックスには、20以上の公開データセットが含まれており、他のモデルとの比較から、このデータの軽量性が明らかになっています。

*一部の学習データセットの時間は推定値であり、完全に正確ではない場合があります。
学習方法の重要な強みの1つは、データの品質と量にあります。学習データセットは約50億トークンで、約50,000時間の音声に相当します。Qwen-OmniやPhi-4などのモデルと比較すると、データセットは100倍以上小さいにもかかわらず、このモデルは競争力のある性能を達成しています。すべてのデータは公開されているオープンソースのデータセットから取得されており、学習アプローチのサンプル効率を示しています。以下に、データ分布の詳細な内訳と、他のモデルとの比較を示します。
📄 ライセンス
このモデルはMITライセンスの下で公開されています。