🚀 Gemma 3 MMモデルカード
Gemma-3-MM は、オープンなマルチモーダル命令モデルで、元のGemma-3モデルの機能を拡張して、音声処理を含む能力を備えています。これらのモデルは、元のGemma-3モデルで使用されている言語とビジョンの研究を活用し、Speech Adapterを通じて追加の音声処理機能を組み込んでいます。このモデルは、テキスト、画像、音声の入力を処理し、テキスト出力を生成することができ、128Kトークンのコンテキスト長を持ちます(1Bモデルは32K)。
🚀 クイックスタート
このセクションでは、Gemma 3 MMモデルをすぐに使い始める方法を説明します。
ライブラリのアップグレード
まず、Transformersライブラリをアップグレードします。これにより、chat_templateでのAudioInputがサポートされます。
$ pip install -U transformers
モデルの実行
次に、使用ケースに応じたコードスニペットをコピーして実行します。
chat_templateを使用したモデルの実行
from transformers import AutoProcessor, AutoModel
import torch
model_id = "junnei/gemma-3-4b-it-speech"
revision = "main"
model = AutoModel.from_pretrained(
model_id, device_map="auto", revision = revision, trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained(
model_id, revision = revision, trust_remote_code=True
)
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://huggingface.co/microsoft/Phi-4-multimodal-instruct/resolve/main/examples/what_is_shown_in_this_image.wav"},
{"type": "text", "text": "Transcribe this audio clip into text."}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
)
with torch.inference_mode():
generate_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)
生データを使用したモデルの実行
from io import BytesIO
from urllib.request import urlopen
import soundfile
from PIL import Image
url = "https://huggingface.co/microsoft/Phi-4-multimodal-instruct/resolve/main/examples/what_is_shown_in_this_image.wav"
audio, sr = soundfile.read(BytesIO(urlopen(url).read()))
audio_token = '<start_of_audio>'
messages = [
{'role': 'user', 'content': audio_token + 'Translate this audio into Korean.'},
]
prompt = processor.tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = processor(text=prompt, audio=[audio], add_special_tokens=False, return_tensors="pt")
with torch.inference_mode():
generate_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
generate_ids = generate_ids[:, inputs['input_ids'].shape[1] :]
response = processor.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(response)
モデルの微調整
モデルを微調整するには、以下のスクリプトを使用します。
[Finetune]: https://huggingface.co/junnei/gemma-3-4b-it-speech/blob/main/examples/finetune_speech.py
微調整スクリプトはこちら : [リンク][Finetune]
出力ディレクトリ、アップロードディレクトリを変更し、データセットに合わせる必要があります
python finetune_speech.py
✨ 主な機能
- マルチモーダル処理:テキスト、画像、音声の入力を処理し、テキスト出力を生成することができます。
- 音声処理機能:音声認識(ASR)と音声翻訳(AST)のタスクに対応しています。
- 長いコンテキスト長:128Kトークンのコンテキスト長を持ち、長い入力にも対応できます(1Bモデルは32K)。
📦 インストール
このモデルを使用するには、Transformersライブラリをアップグレードする必要があります。
$ pip install -U transformers
📚 ドキュメント
モデルの概要
Gemma-3-MM は、元のGemma-3モデルの機能を拡張して、音声処理を含むマルチモーダル命令モデルです。これらのモデルは、言語とビジョンの研究を活用し、Speech Adapterを通じて追加の音声処理機能を組み込んでいます。
評価
モデルの評価指標と結果については、以下の表を参照してください。
ASR
AST
ベンチマーク |
タスク |
BLEU ↑ |
結果 |
Covost2 |
AST (0-shot, 英語 - 韓国語) |
31.55 |
リンク |
Fleurs |
AST (0-shot, 英語 - 韓国語) |
11.05 |
リンク |
韓国語正規化器が適用されていないため、スコアが低くなっています。
ベンチマーク |
タスク |
BLEU ↑ |
CER ↓ |
WER ↓ |
結果 |
Zeroth |
ASR (韓国語) |
94.91 |
1.31 |
2.50 |
リンク |
Fleurs |
ASR (韓国語) |
62.83 |
9.08 |
23.0 |
リンク |
Covost2 |
ASR (韓国語) |
43.66 |
22.5 |
41.4 |
リンク |
モデルの詳細
学習の詳細
- このモデルは、ベースのGemma-3-4b-itモデルに596BパラメータのSpeech LoRAアダプターを追加して学習されました。
- 計算資源が限られているため、このモデルはA100 1 GPUで、ASR(自動音声認識)とAST(自動音声翻訳)タスクに対して限られたデータセットとエポック数でのみ学習されました。
- 学習データは、英語と韓国語に限定され、長さが30秒未満のものに限られています。
データセット
ASR / AST
制限事項
このモデルは実験目的の概念実証(PoC)に過ぎず、本番環境での使用を想定していません。モデルの性能と信頼性を向上させるには、以下の領域のさらなる開発が必要です。
- より多くの計算資源を使用した長期間の学習が必要です。
- 現時点では、このモデルはビジョン - 言語タスクと音声 - 言語タスク(ASR/AST)にのみ対応しています。
- 計算資源が不足しているため、このモデルは主に30秒未満の音声ファイルを認識することができます。そのため、長い音声入力に対しては精度が大幅に低下する可能性があります。
- 可能であれば、音声 - ビジョンタスクやその他の音声 - 言語タスクに対してモデルを学習させます。
引用
@article{gemma3mm_2025,
title={Gemma-3-MM: Multimodal Language Models with Speech Capabilities},
author={Seongjun Jang},
year={2025}
}
📄 ライセンス
このモデルは Gemma ライセンスの下で提供されています。