🚀 ノルウェー語のWav2Vec2モデル - 1Bボクマール版
このモデルは、Facebook/Metaの特徴抽出器XLS - Rをベースに微調整されています。微調整されたモデルは、5-gram KenLMを使用したテストセットで以下の結果を達成しています。括弧内の数値は言語モデルを使用しない場合の結果です。
- WER: 0.0633 (0.0738)
- CER: 0.0248 (0.0263)
✨ 主な機能
このモデルは、🤗 が主催した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="facebook/wav2vec2-xls-r-1b"
--dataset_config_name="16K_mp3_bokmaal"
--output_dir="./"
--overwrite_output_dir
--num_train_epochs="40"
--per_device_train_batch_size="12"
--per_device_eval_batch_size="12"
--gradient_accumulation_steps="2"
--learning_rate="2e-5"
--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"
--ctc_zero_infinity=True
--use_auth_token
--seed="42"
--fp16
--group_by_length
--do_train --do_eval
--push_to_hub
--preprocessing_num_workers="16"
これらの設定では、平均的なGPUでトレーニングに3 - 4日かかる場合があります。ただし、これらのパラメータを調整することで、適度なモデルを得ることができ、結果もより早く得られます。
パラメータ |
コメント |
per_device_train_batch_size |
利用可能なメモリの最大値に合わせて調整します。システムによっては、16または24が適切な設定かもしれません |
gradient_accumulation_steps |
バッチサイズを増やし、メモリの問題を引き起こさずにトレーニングを高速化するために、さらに調整することができます |
learning_rate |
増やすことができます。最大で1e - 4までにすることもできます。トレーニングを高速化しますが、不安定性が生じる可能性があります |
epochs |
大幅に減らすことができます。これは非常に大きなデータセットであり、数エポックで適度な結果が得られる可能性があります |
📄 ライセンス
このモデルは、Apache - 2.0ライセンスの下で提供されています。
🔧 技術詳細
引用
@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 を参照してください。