Hugging Face Transformers を使用した Whisper の多言語 ASR ファインチューニング
Hugging Face は、OpenAI の Whisper モデルを多言語自動音声認識(ASR)向けにファインチューニングするための技術ガイドを公開しました。🤗 Transformers ライブラリを活用することで、開発者は Whisper の事前学習済み多言語知識を低リソース言語に適応させることができ、ヒンディー語でのファインチューニング実行では、わずか 8 時間の学習データで単語誤り率(WER)を 63.5% から 32.0% に削減したことが示されています。
Whisper モデルのアーキテクチャと事前学習
Whisper は、音声スペクトログラムの特徴をテキストトークンにマッピングするよう設計された、Transformer ベースのエンコーダ‑デコーダ(シーケンス‑ツー‑シーケンス)モデルです。Wav2Vec 2.0 などの従来モデルとは異なり、ラベル付き音声‑文字起こしデータの膨大な量(合計 68 万時間、うち多言語 ASR データが 11.7 万時間)で事前学習されています。
主な技術的特性
- 教師あり事前学習: 音声からテキストへのマッピングで直接学習されているため、Whisper はマスク予測などの教師なしタスクで事前学習されたモデルに比べて、はるかに少ないファインチューニングで済みます。
- ディープフュージョン: デコーダ内部に言語モデルを組み込んでおり、単一の損失関数(クロスエントロピー)でシステム全体をエンドツーエンドに学習できます。
- 入力処理: 生音声はログメルスペクトログラムに変換されます。エンコーダはこれらのスペクトログラムを隠れ状態に変換し、デコーダはそれを用いて自己回帰的にテキストトークンを予測します。
モデル構成
Whisper は、性能と計算コストのバランスを取るために、いくつかのサイズで提供されています。
| サイズ | パラメータ | 英語のみ | 多言語 |
|---|---|---|---|
| tiny | 39 M | はい | はい |
| base | 74 M | はい | はい |
| small | 244 M | はい | はい |
| medium | 769 M | はい | はい |
| large (v1, v2, v3) | 1550 M | いいえ | はい |
ファインチューニングパイプライン
Whisper のファインチューニングは、音声前処理用の特徴抽出器、シーケンス‑ツー‑シーケンスモデル、テキスト後処理用のトークナイザという 3 つのパートからなるパイプラインです。
音声前処理と特徴抽出
Whisper は音声入力が 16kHz でサンプリングされていることを要求します。WhisperFeatureExtractor は以下の 2 つの重要な操作を行います。
- パディング/トランケーション: すべての音声サンプルは 30 秒の長さに統一されます。短いサンプルはゼロでパディングされ、長いサンプルは切り詰められます。
- スペクトログラム変換: パディングされた音声配列はログメルスペクトログラムに変換され、信号の時間的な周波数を表します。
トークナイゼーションとラベリング
WhisperTokenizer は、96 言語をカバーする事前学習済みバイトペアエンコーディング(BPE)語彙を使用します。ファインチューニング時には、特定の対象言語とタスク(例: language="Hindi"、task="transcribe")でトークナイザを設定し、必要な特殊トークンをラベルシーケンスの先頭に付加します。
低リソース言語向け実装の詳細
ヒンディー語用の Common Voice 11.0 データセットを使用し、ガイドでは whisper-small チェックポイントを適応させるための具体的なワークフローを示しています。
データ準備
- リサンプリング: Common Voice の音声はしばしば 48kHz でサンプリングされているため、
datasets.Audioのcast_columnメソッドを使用して、音声をリアルタイムで 16kHz にリサンプリングします。 - マッピング:
prepare_dataset関数はログメル入力特徴を計算し、対象の文字起こしをラベル ID にエンコードします。
訓練設定
- データコレータ: カスタム
DataCollatorSpeechSeq2SeqWithPaddingを使用して、input_features(固定次元テンソル)とlabels(可変長シーケンスで、損失計算時に無視するため -100 でパディング)を処理します。 - 評価指標: パフォーマンスは、ASR の業界標準である単語誤り率(WER)で測定されます。
- ハイパーパラメータ: デモでは学習率
1e-5、fp16精度、最大 5,000 ステップの訓練が使用されました。
パフォーマンス結果と示唆
whisper-small モデルを約 8 時間のヒンディー語データでファインチューニングすることで、ゼロショットの事前学習モデルに比べて大幅なパフォーマンス向上が得られました。
- 事前学習時の WER: 63.5%
- ファインチューニング後の WER: 32.0%
- 絶対改善: 31.5%
この結果は、Whisper の大規模な事前学習により、最小限の追加データで低リソース言語に対しても効果的に汎化できることを示しています。結果をさらに改善するために、ガイドではハイパーパラメータ(学習率、ドロップアウト)の最適化や、medium や large-v3 といったより大きなチェックポイントの利用を提案しています。