Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ヤフー音声認識YJVOICEにおけるディープラーニングの実用化

4,215 views

Published on

https://idcf.doorkeeper.jp/events/63057

Published in: Technology
  • Be the first to comment

ヤフー音声認識YJVOICEにおけるディープラーニングの実用化

  1. 1. 2017年8月1日 データ&サイエンスソリューション統括本部 サイエンス本部 三宅 純平 ヤフー音声認識YJVOICEにおける ディープラーニングの実用化 株式会社IDCフロンティア主催セミナー 2017/07/31
  2. 2. 目次 • ヤフー音声認識のご紹介 • 音声認識の要素技術の概要 • ディープラーニングを用いた音響モデル • 音声認識サービスでのDNN実用について • まとめと今後の展開 2
  3. 3. ヤフー音声認識 YJVOICEについて 3 • 2011年3月から音声認識サービス開始 • 100万語彙以上の連続単語認識 • 約15弱のヤフーアプリに導入 • 2015年5月よりDNN音響モデルを利用 Yahoo!音声検索アプリ (※)Ken-ichi Iso et al., "Improvements in Japanese Voice Search", Interspeech 2012
  4. 4. YJVOICE音声認識システムの概要 4 通信制御部(ASRプロトコル) 認識エンジン部 (音声検出/デコード) 通信制制御部 (ASRプロトコル) 音声圧縮処理 (Speex,Flac) 音声取り込み (OS/ドライバ) 音声データ (圧縮音声) 音声検出をサーバで 音声認識デコーダ: ⇒WFSTベース 認識結果 Server (Apache Module) 音響モデル 言語モデル Client (iOS/Android) App(表示) WakeUp用 音声認識 (音声検出/デコード) 音響モデル 言語モデル • 分散型音声認識システム • iOS/Android SDKを社内配布してアプリ導入
  5. 5. 5 音声区間 検出 音響モデル 言語モデル 認識デコーダ 認識結果 ka to 晴れ 晴 れ ます明日 荒れ 単語と単語の繋がり易さを 表現する知識 「あ」等の音を 表現する知識 ヤフー日本語音声認識 YJVOICEについて 音声認識の基本構成 ディープラーニングの 実装範囲 特徴量 抽出 音声波形
  6. 6. 音声認識のモデル学習からプロダクト導入まで 6 音声波形 音声認識結果 実機での性能検証 on CPU • 音声認識の精度 • リアルタイム性 • CPU/メモリ消費率 • アルゴリズム検証 音声認識のモデル学習 on GPU • 音響モデルや音声区間検出モデル等の ニューラルネットワークの学習 • 学習時間は数日から1週間以上まで色々 大規模音声ログの収集 (数億発話) 音声書き起こし(学習データ) (約300万発話,約2000時間)
  7. 7. ディープラーニングを用いた音響モデル
  8. 8. 8 今日 京都 に 遊び に 行きますは 音響モデル=音声信号(時系列データ)のモデル化 周波数軸(Hz) きょー きょー に あそび に いきますは と 類似した音声スペクトル パターンのモデル化 30ms 60ms 時間軸伸縮のモデル化
  9. 9. 音声系列のパターン認識の代表的な手法について • Left-to-Right Hidden Markov Model(HMM) • 1980sから広く用いられている手法 • 各音素の時間軸伸縮の違いを有限オートマトンの一種で制御 • 初期状態確率、状態遷移確率、シンボル出力確率で表現 • Connectionist Temporal Classification(*1) • リカレントニューラルネットワークを用いて、 各音素と何も出力しない空文字(blank) ”_” を 出力ラベルとして系列を違いを吸収できるようにした • 大規模な学習データを用いた時に有効 9 a1 a2 a3 i4 i5 i6 “aaa____i_i__uuuu__”  “aiiu” a i【例】10msec毎に音素「a」の 始端、中間、終端等の状態遷移 (*1)Graves, Alex, et al. "Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks." ICML2006
  10. 10. DNN-HMM hybrid 音響モデル 10 や ふー お ん せー に ん し き y-a+f 1フレーム(10ミリ秒)毎に 音声特徴量ベクトル40次元を抽出 ... ... ... ... ... ... ... ... y-a+f p(x|s1) p(x|s2) p(x|s3) s1 s2 s3 時間軸伸縮のある音素系列を効率的にモデル化 ⇒ 1音素毎に3状態HMMで表現 状態 の事前確率 各状態における 出力確率 ... ... .. . . . . 入力層 (440) 中間層 (2048x5層) 出力層 (約4000) ニューラルネットワークの構造:DNN ... ...... sil-a+sh:0.01 y-a+f(s1):0.9 音素状態 :事後確率 DNNでモデル化 特徴量ベクトル40次元を11フレーム (認識対象1+前後5フレーム)
  11. 11. DNN音響モデルの学習データ 11 学習データサイズ • 約2000時間の音声データ • データ規模感 • 1000時間=590GB(360Mサンプル) • 1サンプル(10ミリ秒)=440次元特徴量 • 440次元*(float32)=1.7KB • 自動車走行音などの雑音データによる重畳音声のデータ拡張あり 学習プログラム • TensorFlowツールの利用 • 学習アルゴリズム:Minibatch SGD, 開発セット認識率でearly stopping • 音声は1バッチ当たり学習が数msecで終わるので、 CPU-GPU間のデータ転送の工夫が必要 • (※) 詳細は 磯健一, “ヤフー音声認識サービス「YJVOICE」における ディープラーニング活用事例” , GTC Japan 2015 学習時間 • 例:1000時間, 2048x5層, 15epoch • Tesla M2090で約1ヶ月 • TITAN Xで約2週間
  12. 12. GMM (※) (DNN=2048x5) 文正解率(%) 1/32 1/16 1/8 1/4 1/2 1 DNNによる性能の向上 12 ※ GMM : Gaussian Mixture Models • これまでのデファクト音響モデル • GMMの学習データ量を1として DNNの学習データ量を1〜1/32の場合での比較 • 既存手法から誤り率が30〜40%改善 • 音声検索1万発話による文正解率 • 約3%(1/32)の学習データ量でも DNNの方が精度が高い Good
  13. 13. ミニバッチサイズとマルチGPUによる速度変化 13 • ミニバッチサイズ変更:サイズに合わせて適切な学習率を調整 • マルチGPU:各GPUから修正量を集めてCPU上で重み更新して各GPUへ配布 (※)CPU-GPUのデータ転送タイミングなどまだ調査中で改善余地あり。 37.0 14.3 5.2 0 10 20 30 40 256 16384 16384 1sampleあたりの処理時間(usec) ミニバッチサイズ 1GPU 1GPU 4GPU usec Xeon E5-2697v3 2.60GHz TITAN X 1024x5層 2.56倍 ミニバッチサイズ変更 2.75倍 マルチGPU
  14. 14. 音声認識サービスでのDNNの実用について
  15. 15. 改めて ... 15 音声波形 音声認識結果 音声認識の学習 on GPU • 音響モデルや音声区間検出モデル等の ニューラルネットワークの学習 • 学習時間は数日から1週間以上まで色々 実機での性能検証 on CPU • 音声認識の精度 • リアルタイム性 • CPU/メモリ消費率 • アルゴリズム検証 大規模音声ログの収集 (数億発話) 音声書き起こし (約300万発話,約2000時間)
  16. 16. CPU上でのDNN演算速度改善 • 音声認識サービスはintel CPUサーバを使用 • 大規模なモデルに用いることで精度向上が期待できるが リアルタイム性も重視する必要がある • 実時間比(Real Time Factor;RTF)が1以下になるように調整 RTF = デコード処理時間 / 音声の長さ (10ミリ秒の音声断片を10ミリ秒以内に処理) • リアルタイム処理を実現 • DNNのforward演算のみを高速化 • Intel MKLライブラリ(数値演算ライブラリ) • CPUのSIMD演算のAVX拡張機能(32bit 8並列) • マルチスレッドを利用 16
  17. 17. Intel C++ Compiler & Math Kernel Library の導入 Intelコンパイラ+MKL(2スレッド)利用で CPUのまま約50%の高速化, 速度劣化なくDNN版をリリース 17 11.3187 7.5991 7.45025 5.6293 4.66473 g++-4.4 icpc-15.0 icpc-w/MKL-1th icpc-w/MKL-2th icpc-w/MKL-4th 1フレームあたりの平均処理時間 [ミリ秒] (コンパイラ/利用スレッド数) 約32% Intelコンパイラ利用 約50%改善 Intelコンパイラ +MKL2スレッド利用
  18. 18. まとめと今後の展開 • ヤフー音声認識のDNNを用いた音響モデル学習 • 約2000時間の学習データ • モデル学習時間は約2週間 • 音声認識サービスにおけるDNNの実用 • 音声認識サービスはintel CPUサーバを使用 • Intel MKLライブラリの導入 • 今後の展望 • マルチGPU,マルチノード学習によるモデル学習の大規模化(kukaiに期待) • 音声は1サンプルあたり学習がすぐに終わるので、 CPU-GPU間のデータ転送やパラメータ更新の同期処理がボトルネック Microsoft: CNTK 1bit SGD Data-Parallel Distribute Training Amazon :Strom Nikko, "Scalable distributed dnn training using commodity gpu cloud computing." Interspeech 2015. • 音声認識処理の高速化 • RNNにより認識処理を行なうフレーム単位を下げても精度劣化がほとんどない G. Pundak and T. N. Sainath, “Lower Frame Rate NeuralNetwork Acoustic Models,” in Proc. Interspeech201618
  19. 19. 音声認識の学習からプロダクト導入まで 19 音声波形 音声認識結果 音声認識の学習 on GPU • 音響モデルや音声区間検出モデル等の ニューラルネットワークの学習 • 学習時間は数日から1週間以上まで色々 実機での性能検証 on CPU • 音声認識の精度 • リアルタイム性(デコード時間/音声長) • CPU/メモリ消費率 • アルゴリズム検証 • スパコンkukaiを用いた学習 ⇒ kukai に期待! 大規模音声ログの収集 (数億発話) 音声書き起こし (約300万発話,約2000時間)

×