🚀 ノルウェー語のWav2Vec2モデル - 300M - VoxRex - ボクマール
このモデルは、スウェーデン国立図書館の特徴抽出器VoxRex-modelをベースに微調整されています。微調整されたモデルは、5-gram KenLMを使用したテストセットで以下の結果を達成しています。括弧内の数字は言語モデルを使用しない場合の結果です。
- WER: 0.0703 (0.0979)
- CER: 0.0269 (0.0311)
📚 ドキュメント
モデルの説明
このモデルは、🤗が主催するRobust Speech Eventの際にチームが作成した複数のWav2Vecモデルの1つです。以下は、当チームが作成したモデルとその最終スコアの完全なリストです。
データセット
イベントと並行して、チームはノルウェー議会演説コーパス (NPSC)を🤗 Dataset形式のNbAiLab/NPSCに変換し、これをトレーニングの主なデータソースとして使用しました。
コード
ノルウェーのNLPコミュニティがさらに良いノルウェー語の自動音声認識モデルを開発する際に活用できるように、イベント中に開発されたすべてのコードを公開しています。これらのモデルの微調整は、計算負荷がそれほど高くありません。以下の手順に従えば、平均的なGPUで1日以内に独自の自動音声認識システムをトレーニングすることができます。
チーム
このモデルの構築に貢献したのは、以下の人物たちです。Rolv - Arild Braaten、Per Egil Kummervold、Andre Kåsen、Javier de la Rosa、Per Erik Solberg、Freddy Wetjen。
トレーニング手順
これらの結果を再現するためには、🤗の指示に従って、シンプルなスウェーデン語モデルをトレーニングすることを強くおすすめします。
これができることを確認したら、新しいリポジトリを作成します。その後、当リポジトリからファイルrun.sh
とrun_speech_recognition_ctc.py
をコピーして始めることができます。これらを実行すると、他の必要なファイルがすべて作成され、当チームの結果を再現することができます。ハイパーパラメータを調整することで、さらに良い自動音声認識モデルを構築することもできるかもしれません。幸運を祈ります!
言語モデル
スコアが示すように、単純な5-gram言語モデルを追加するだけで結果が向上します。🤗は、自動音声認識モデルを改善するために5-gram言語モデルを追加する方法を説明した非常に良いブログを提供しています。これは、独自のコーパスから構築することができます。たとえば、ノルウェーの巨大コーパスから適切なテキストを抽出することができます。また、ガイドの一部の手順を省略して、このリポジトリの5-gramモデルをコピーすることもできます。
パラメータ
最終的なモデルは、以下のパラメータを使用して実行されました。
--dataset_name="NbAiLab/NPSC"
--model_name_or_path="KBLab/wav2vec2-large-voxrex"
--dataset_config_name="16K_mp3_bokmaal"
--output_dir="./"
--overwrite_output_dir
--num_train_epochs="15"
--per_device_train_batch_size="16"
--per_device_eval_batch_size="16"
--gradient_accumulation_steps="2"
--learning_rate="1e-4"
--warmup_steps="2000"
--length_column_name="input_length"
--evaluation_strategy="steps"
--text_column_name="text"
--save_steps="500"
--eval_steps="500"
--logging_steps="100"
--layerdrop="0.041"
--attention_dropout="0.094"
--activation_dropout="0.055"
--hidden_dropout="0.047"
--save_total_limit="3"
--freeze_feature_encoder
--feat_proj_dropout="0.04"
--mask_time_prob="0.082"
--mask_time_length="10"
--mask_feature_prob="0.25"
--mask_feature_length="64"
--gradient_checkpointing
--min_duration_in_seconds="0.5"
--max_duration_in_seconds="30.0"
--use_auth_token
--seed="42"
--fp16
--group_by_length
--do_train --do_eval
--push_to_hub
--preprocessing_num_workers="32"
これらの設定を使用すると、平均的なGPUでトレーニングに3 - 4日かかる場合があります。ただし、これらのパラメータを調整することで、適度なモデルを得ることができ、結果も早く得られるかもしれません。
パラメータ |
コメント |
per_device_train_batch_size |
これを利用可能なメモリの最大値に調整します。システムに応じて、16または24が適切な設定かもしれません。 |
gradient_accumulation_steps |
バッチサイズを増やし、メモリの問題を引き起こすことなくトレーニングを高速化するために、さらに大きく調整することができます。 |
learning_rate |
増やすことができます。最大で1e - 4程度にすることができます。トレーニングを高速化しますが、不安定性を引き起こす可能性があります。 |
epochs |
大幅に減らすことができます。これは非常に大きなデータセットであり、数エポックで適度な結果が得られる場合があります。 |
引用
@inproceedings{de-la-rosa-etal-2023-boosting,
title = "Boosting {N}orwegian Automatic Speech Recognition",
author = "De La Rosa, Javier and
Braaten, Rolv-Arild and
Kummervold, Per and
Wetjen, Freddy",
booktitle = "Proceedings of the 24th Nordic Conference on Computational Linguistics (NoDaLiDa)",
month = may,
year = "2023",
address = "T{\'o}rshavn, Faroe Islands",
publisher = "University of Tartu Library",
url = "https://aclanthology.org/2023.nodalida-1.55",
pages = "555--564",
abstract = "In this paper, we present several baselines for automatic speech recognition (ASR) models for the two official written languages in Norway: Bokm{\aa}l and Nynorsk. We compare the performance of models of varying sizes and pre-training approaches on multiple Norwegian speech datasets. Additionally, we measure the performance of these models against previous state-of-the-art ASR models, as well as on out-of-domain datasets. We improve the state of the art on the Norwegian Parliamentary Speech Corpus (NPSC) from a word error rate (WER) of 17.10{\%} to 7.60{\%}, with models achieving 5.81{\%} for Bokm{\aa}l and 11.54{\%} for Nynorsk. We also discuss the challenges and potential solutions for further improving ASR models for Norwegian.",
}
詳細は https://arxiv.org/abs/2307.01672 を参照してください。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。