モデル概要
モデル特徴
モデル能力
使用事例
license: apache-2.0 language:
- en base_model:
- ibm-granite/granite-3.2-8b-instruct library_name: transformers new_version: ibm-granite/granite-speech-3.3-8b
Granite-speech-3.2-8b
モデル概要: Granite-speech-3.2-8bは、自動音声認識(ASR)および自動音声翻訳(AST)向けに特別に設計されたコンパクトで効率的な音声言語モデルです。Granite-speech-3.2-8bは、音声と言語を単一パスで統合する統合モデルとは異なり、2パス設計を採用しています。granite-speech-3.2-8bへの最初の呼び出しでは、音声ファイルがテキストに変換されます。変換されたテキストを基盤となるGranite言語モデルで処理するには、各ステップを明示的に開始する必要があるため、ユーザーは2回目の呼び出しを行う必要があります。
このモデルは、ASRおよびASTのための多様なデータセットを含む公開コーパスのコレクションと、音声翻訳タスクをサポートするために調整された合成データセットでトレーニングされました。Granite-speech-3.2は、granite-3.2-8b-instruct(https://huggingface.co/ibm-granite/granite-3.2-8b-instruct)を音声にモダリティ調整し、音声入力とテキストターゲットを含む公開オープンソースコーパスでトレーニングされました。
評価:
granite-speech-3.2-8bを、8bパラメータ未満の他の音声言語モデル(SLM)および専用のASRおよびASTシステムと標準ベンチマークで比較評価しました。評価は複数の公開ベンチマークにわたって行われ、特に英語ASRタスクに重点を置きながら、En-X翻訳のためのASTも含まれました。
リリース日: 2025年4月2日
ライセンス: Apache 2.0
対応言語: 英語
想定される用途: このモデルは、音声入力を処理するエンタープライズアプリケーションでの使用を想定しています。特に、英語の音声からテキストへの変換や、英語からフランス語、スペイン語、イタリア語、ドイツ語、ポルトガル語などの主要なヨーロッパ言語、および日本語や中国語への音声翻訳に適しています。テキストベースの入力のみを含むタスクについては、テキストのみの処理に最適化され、このモデルよりも優れたパフォーマンスを提供するGranite大規模言語モデルの使用をお勧めします。
生成:
Granite Speechモデルは、transformers
のmain
ブランチでネイティブにサポートされる予定です。それまでの間、以下にgranite-speech-3.2-8b
モデルの使用方法の簡単な例を示します。
transformers
での使用
まず、最新バージョンのtransformersをビルドしてください:
pip install transformers>=4.49 peft torchaudio
torchaudio
のバックエンドをインストールします。例:
pip install soundfile
その後、以下のコードを実行します:
import torch
import torchaudio
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
from huggingface_hub import hf_hub_download
device = "cuda" if torch.cuda.is_available() else "cpu"
model_name = "ibm-granite/granite-speech-3.2-8b"
speech_granite_processor = AutoProcessor.from_pretrained(
model_name, trust_remote_code=True)
tokenizer = speech_granite_processor.tokenizer
speech_granite = AutoModelForSpeechSeq2Seq.from_pretrained(
model_name, trust_remote_code=True).to(device)
# 適切なプロンプトテンプレートを使用して音声とテキストプロンプトを準備
audio_path = hf_hub_download(repo_id=model_name, filename='10226_10111_000000.wav')
wav, sr = torchaudio.load(audio_path, normalize=True)
assert wav.shape[0] == 1 and sr == 16000 # モノラル、16kHz
# テキストプロンプトを作成
chat = [
{
"role": "system",
"content": "Knowledge Cutoff Date: April 2024.\nToday's Date: December 19, 2024.\nYou are Granite, developed by IBM. You are a helpful AI assistant",
},
{
"role": "user",
"content": "<|audio|>can you transcribe the speech into a written format?",
}
]
text = tokenizer.apply_chat_template(
chat, tokenize=False, add_generation_prompt=True
)
# 音声埋め込みを計算
model_inputs = speech_granite_processor(
text,
wav,
device=device, # 計算デバイス; 返されるテンソルはCPUに配置されます
return_tensors="pt",
).to(device)
model_outputs = speech_granite.generate(
**model_inputs,
max_new_tokens=200,
num_beams=4,
do_sample=False,
min_length=1,
top_p=1.0,
repetition_penalty=1.0,
length_penalty=1.0,
temperature=1.0,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id,
)
# Transformersは応答に入力IDを含みます。
num_input_tokens = model_inputs["input_ids"].shape[-1]
new_tokens = torch.unsqueeze(model_outputs[0, num_input_tokens:], dim=0)
output_text = tokenizer.batch_decode(
new_tokens, add_special_tokens=False, skip_special_tokens=True
)
print(f"STT output = {output_text[0].upper()}")
モデルアーキテクチャ:
granite-speech-3.2-8bのアーキテクチャは、以下のコンポーネントで構成されています:
(1) 音声エンコーダ: ASRコーパスのみを含むサブセットで、文字レベルのターゲットに対してConnectionist Temporal Classification(CTC)でトレーニングされた10個のConformerブロック(以下の構成を参照)。さらに、CTCエンコーダは、4秒のオーディオブロックと中間層からの自己条件付きCTCを使用したブロックアテンションを使用します。
構成パラメータ | 値 |
---|---|
入力次元 | 160 (80 logmels x 2) |
レイヤー数 | 10 |
隠れ次元 | 1024 |
アテンションヘッド数 | 8 |
アテンションヘッドサイズ | 128 |
畳み込みカーネルサイズ | 15 |
出力次元 | 42 |
(2) 音声プロジェクタと時間的ダウンサンプラ(音声-テキストモダリティアダプタ): 音声エンコーダの最後のConformerブロックから出てくる1024次元の音響埋め込みのブロックに対して動作する、2層のウィンドウクエリトランスフォーマー(q-former)を使用し、ブロックごとに3つの学習可能なクエリを使用して5倍のダウンサンプリングを行います。総合的な時間的ダウンサンプリング係数は10(エンコーダからの2倍とプロジェクタからの5倍)で、LLMに対して10Hzの音響埋め込みレートが得られます。エンコーダ、プロジェクタ、およびLoRAアダプタは、トレーニングデータで言及されているすべてのコーパスで共同でファインチューニング/トレーニングされました。
(3) 大規模言語モデル: 128kコンテキスト長のgranite-3.2-8b-instruct(https://huggingface.co/ibm-granite/granite-3.2-8b-instruct)。
(4) LoRAアダプタ: クエリ、値射影行列に適用されたrank=64
トレーニングデータ:
全体として、トレーニングデータは主に2つの主要なソースで構成されています:(1) 公開されているデータセット (2) 音声翻訳タスクを特に対象として公開されているデータセットから作成された合成データ。トレーニングデータセットの詳細な説明は以下の表に記載されています:
名前 | タスク | 時間数 | ソース |
---|---|---|---|
CommonVoice-17 英語 | ASR | 2600 | https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0 |
MLS 英語 | ASR | 44000 | https://huggingface.co/datasets/facebook/multilingual_librispeech |
Librispeech | ASR | 1000 | https://huggingface.co/datasets/openslr/librispeech_asr |
VoxPopuli 英語 | ASR | 500 | https://huggingface.co/datasets/facebook/voxpopuli |
AMI | ASR | 100 | https://huggingface.co/datasets/edinburghcstr/ami |
YODAS 英語 | ASR | 10000 | https://huggingface.co/datasets/espnet/yodas |
CommonVoice-17 En->Ja | AST | 2600 | granite-3.2-8bとphi-4で翻訳 |
CommonVoice-17 En->De | AST | 2600 | granite-3.2-8bとphi-4で翻訳 |
MLS 英語 | その他 | 44000 | granite-3.1-8bによって提供されるトランスクリプトの説明 |
CREMA-D | SER | 3 | https://github.com/CheyneyComputerScience/CREMA-D |
MELD | SER | 7 | https://github.com/declare-lab/MELD |
インフラストラクチャ: Granite Speechは、NVIDIA H100 GPUを搭載したIBMのスーパーコンピューティングクラスターであるBlue Velaを使用してトレーニングされています。このクラスターは、数千のGPUにわたってモデルをトレーニングするためのスケーラブルで効率的なインフラストラクチャを提供します。この特定のモデルのトレーニングは、32個のH100 GPUで10日間で完了しました。
倫理的考慮事項と制限事項: 大規模音声言語モデルの使用には、人々が認識すべきリスクと倫理的考慮事項が伴う場合があります。これらのリスクには、バイアスと公平性、誤情報、自律的な意思決定が含まれる可能性があります。コミュニティに対して、granite-speech-3.2-8bをIBMの責任ある使用ガイドまたは類似の責任ある使用構造と一致する方法で使用することを強く推奨します。IBMは、このモデルを自動音声認識タスクに使用することを推奨しています。モデルのモジュール設計は、音声入力がシステムに影響を与える方法を制限することで安全性を向上させます。不慣れなまたは不正なプロンプトが受信された場合、モデルは単にそのトランスクリプションをエコーします。これにより、オーディオを直接解釈し、そのような攻撃によりさらされる可能性がある統合モデルとは異なり、敵対的入力のリスクが最小限に抑えられます。より一般的な音声タスクは、望ましくない出力を引き起こす固有のリスクが高い可能性があることに注意してください。
安全性を高めるために、granite-speech-3.2-8bをGranite Guardianと併用することをお勧めします。Granite Guardianは、IBM AIリスクアトラスで概説されている主要な次元でプロンプトと応答のリスクを検出およびフラグ付けするように設計されたファインチューンされた指示モデルです。内部のレッドチーミングによって通知された人間が注釈を付けたデータと合成データを含むそのトレーニングにより、標準ベンチマークで類似のオープンソースモデルよりも優れたパフォーマンスを発揮し、追加の安全層を提供します。
リソース
- ⭐️ Graniteの最新アップデートについて学ぶ: https://www.ibm.com/granite
- 🚀 チュートリアル、ベストプラクティス、プロンプトエンジニアリングのアドバイスを開始: https://www.ibm.com/granite/docs/
- 💡 最新のGranite学習リソースについて学ぶ: https://ibm.biz/granite-learning-resources



