Skip to main content
QUICK REVIEW

[論文レビュー] Pkwrap: a PyTorch Package for LF-MMI Training of Acoustic Models

Srikanth Madikeri, Sibo Tong|arXiv (Cornell University)|Oct 7, 2020
Speech Recognition and Synthesis参考文献 15被引用数 5
ひとこと要約

Pkwrap は、Kaldi の LF-MMI フレームワークをラップすることで、PyTorch におけるエンド・ツー・エンドの LF-MMI 学習を可能にするパッケージです。コスト関数を PyTorch の自動微分関数として公開し、アライメントベースおよびフラットスタートの両方の学習をサポートしています。複数のデータセットにおいて Kaldi と同等の WER を達成しており、4-gram モデルを用いた Switchboard CH では相対的に 5.7% の WER の改善を達成しています。

ABSTRACT

We present a simple wrapper that is useful to train acoustic models in PyTorch using Kaldi's LF-MMI training framework. The wrapper, called pkwrap (short form of PyTorch kaldi wrapper), enables the user to utilize the flexibility provided by PyTorch in designing model architectures. It exposes the LF-MMI cost function as an autograd function. Other capabilities of Kaldi have also been ported to PyTorch. This includes the parallel training ability when multi-GPU environments are unavailable and decode with graphs created in Kaldi. The package is available on Github at https://github.com/idiap/pkwrap.

研究の動機と目的

  • Kaldi の最先端の LF-MMI 学習フレームワークを維持しつつ、PyTorch における柔軟な音声モデル設計を可能にすること。
  • Kaldi の学習パラダイムに準拠した、アライメントベースおよびフラットスタートの両方の LF-MMI 学習をサポートすること。
  • マルチGPUおよび非マルチGPU環境をカバーする、PyTorch における NG-SGD の並列学習をサポートすること。
  • Kaldi 互換のデータおよびデコードグラフを用いた、スムーズなモデルロードとデコードを可能にすること。
  • 研究者および実務家向けに、レシピベースの学習およびデコードワークフローを簡素化すること。

提案手法

  • KaldiChainObjfFunction クラスを用いて、Kaldi の LF-MMI 目的関数を PyTorch の自動微分関数として公開する。
  • Kaldi の NaturalGradientAffineTransform および NGState をラップすることで、PyTorch 互換の NG-SGD オプティマイザを実装する。
  • pybind11 を用いて、Kaldi の C++ 関数の主要部分をバインドし、Kaldi と PyTorch のテンソル間で低遅延のメモリ転送を実現する。
  • モデルのロードと相互運用性を実現するため、Kaldi 行列と PyTorch テンソルの双方向変換をサポートする。
  • subprocess 呼び出しを介して Kaldi ツールを用いて、データ準備、特徴抽出、egs 生成、デコードを処理するレシピスクリプトを提供する。
  • Kaldi のデフォルト動作を模倣するように、モデルマージと指数スケジューリングによる学習率の減少を統合する。

実験結果

リサーチクエスチョン

  • RQ1PyTorch ラッパーは、LF-MMI 音声モデル学習において Kaldi と同等の WER 性能を達成できるか?
  • RQ2PyTorch のモデルの柔軟性と Kaldi の堅牢な LF-MMI 学習パイプラインをどれだけ効果的に統合できるか?
  • RQ3Kaldi の NG-SGD オプティマイザを PyTorch に統合することで、分散および非分散学習においてどれほど効果的か?
  • RQ4最小限のユーザー介入で、アライメントベースおよびフラットスタートの両方の LF-MMI 学習をラッパーがサポートできるか?
  • RQ5このパッケージは、デコードおよびモデル評価のための既存の Kaldi レシピとどれほど良好に相互運用できるか?

主な発見

  • Minilibrispeech では、Pkwrap が 19.3% の WER を達成したのに対し、Kaldi は 20.7% であったため、小規模データセットにおいても競争力のある性能を示した。
  • Switchboard では、4-gram モデルを用いた CH サブセットで相対的に 5.7% の WER の改善、SWBD サブセットで 4.9% の改善を達成した。
  • 多言語 BABEL では、全4言語で Kaldi と 1% 以内の WER 差を示し、スワヒリ語では 3.5% の相対的改善(36.4% 対 37.7%)を達成した。
  • Librispeech 100h では、dev-clean で 5.1%、test-clean で 5.9% を達成し、Kaldi の 5.5% および 6.0% と同等の結果を得た。dev-other では 5.5% の相対的改善を達成した。
  • Adam オプティマイザと指数的学習率減少を用いた学習が成功裏に実行され、Kaldi の NG-SGD ベースラインと一貫した結果が得られた。
  • load_kaldi_models ブランチを介して、Kaldi から PyTorch へのモデルロードが可能になり、フレームワーク間でのモデル再利用が可能になった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。