Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

4 281 vues

Publié le

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

Publié dans : Technologie
  • Soyez le premier à commenter

ヤフー音声認識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時間)

×