Skip to main content
QUICK REVIEW

[論文レビュー] A GPU-based WFST Decoder with Exact Lattice Generation

Zhehuai Chen, Justin Luitjens|arXiv (Cornell University)|Apr 9, 2018
Speech Recognition and Synthesis参考文献 28被引用数 3
ひとこと要約

この論文は、Kaldi用のGPUアクセラレートWFSTデコーダーを提示し、正確なラティス生成を可能にするとともに、トークン再結合のためのアトミック演算、動的負荷分散、最適化されたラティス処理を活用して、CPUデコーディング比で3–15倍の高速化を達成する。このシステムは一般の音声認識モデルおよび言語モデルをサポートし、多様なGPUアーキテクチャで動作し、シーケンス並列処理とマルチプロセスサービス(MPS)を用いることで、最高で46倍の高速化を達成し、認識結果および信頼性測定値に同一の結果をもたらす。

ABSTRACT

We describe initial work on an extension of the Kaldi toolkit that supports weighted finite-state transducer (WFST) decoding on Graphics Processing Units (GPUs). We implement token recombination as an atomic GPU operation in order to fully parallelize the Viterbi beam search, and propose a dynamic load balancing strategy for more efficient token passing scheduling among GPU threads. We also redesign the exact lattice generation and lattice pruning algorithms for better utilization of the GPUs. Experiments on the Switchboard corpus show that the proposed method achieves identical 1-best results and lattice quality in recognition and confidence measure tasks, while running 3 to 15 times faster than the single process Kaldi decoder. The above results are reported on different GPU architectures. Additionally we obtain a 46-fold speedup with sequence parallelism and multi-process service (MPS) in GPU.

研究の動機と目的

  • 特別な音声認識モデルや言語モデルを必要とせずに、GPU並列処理を活用して自動音声認識(ASR)におけるWFSTデコーディングを高速化すること。
  • GPUベースのデコーディングにおける大規模言語モデル(LM)の高いメモリ使用量とスケーラビリティの低さの課題に対処し、正確なラティス生成を可能にする2パスデコーディングを実現すること。
  • 旧世代のGPUアーキテクチャ(例:Kepler)をサポートする汎用的かつポータブルなGPUデコーダーを設計し、既存のKaldiワークフローとシームレスに統合すること。
  • 最適化されたトークン再結合、動的負荷分散、同期とメモリ転送のオーバーヘッドを低減した並列ラティス処理を通じて、デコーディング効率を向上させること。

提案手法

  • CUDAのatomicMinを用いて、トークン再結合をGPUのアトミック演算として実装し、シリアル化を排除し、ビタービビームサーチにおける完全な並列処理を可能にする。
  • GPUスレッド間でのトークン伝搬作業を分散する動的負荷分散戦略を設計し、アイドルタイムを最小限に抑え、スレッド利用率を向上させる。
  • GPU実行に最適化された正確なラティス生成およびプルーニングアルゴリズムを再設計し、データ移動とカーネル起動のオーバーヘッドを低減する。
  • 2パスデコーディングフレームワークを採用:第1パスで正確なラティスを生成し、後続の後処理に使用し、第2パスで大規模言語モデルによる再スコアリングを実行する。
  • シーケンス並列処理とマルチプロセスサービス(MPS)を活用し、コンテキストスイッチングを低減し、最新のGPUで最高で46倍の高速化を達成する。
  • Kaldiツールキットにオープンソース拡張機能として統合し、リリース済みのすべてのKaldiレシピとの後方互換性を確保する。

実験結果

リサーチクエスチョン

  • RQ1GPUベースのWFSTデコーディングは、CPUデコーディングと同等の1-bestおよびラティス品質を維持しながら、顕著な高速化を達成できるか?
  • RQ2GPU上でビタービビームサーチにおけるトークン再結合を、精度損失や同期ボトルネックを回避して効率的に並列化できるか?
  • RQ3WFSTデコーディング中のトークン伝搬段階で、GPUスレッド間の作業を効果的にバランスさせる動的負荷分散戦略は何か?
  • RQ4正確なラティス生成およびプルーニングをGPU上で効率的に並列化できるか?これにより、メモリ転送とカーネル起動のオーバーヘッドが低減されるか?
  • RQ5シーケンス並列処理とマルチプロセスサービス(MPS)は、実世界のASR環境におけるGPUベースのWFSTデコーディングをどの程度さらに高速化できるか?

主な発見

  • GPUデコーダーは、さまざまなGPUアーキテクチャ上で、単一プロセスCPUデコーダー比で3–15倍の高速化を達成し、1-best認識結果およびラティス品質に同一の結果をもたらす。
  • シーケンス並列処理とマルチプロセスサービス(MPS)を用いることで、CPUと同等の条件下で46倍の高速化を達成したのに対し、CPUではわずか1.8倍にとどまる。
  • トークン再結合にアトミック演算を用いることで、クリティカルセクションが排除され、Keplerなどの旧世代GPUアーキテクチャとも互換性が保証される。
  • 動的負荷分散は、静的負荷分散やグラフ分割手法よりも性能が優れ、1-bestデコーディングで15倍、ラティスデコーディングで9.7倍の高速化を達成する。
  • ラティスプルーニングは、データ転送とカーネル起動コストの低減に寄与し、GPUバージョンはスピードとスケーラビリティの両面でCPUを上回る。
  • 13MBから258MBまでのさまざまな言語モデルサイズにおいても、性能が一貫しており、12GB GPU上でメモリ使用量が11GBに制限されるなど、効果的なメモリ最適化が実現されている。

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

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

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

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