そして、Baidu Speechでの具体的な性能改善については、開発者のBryan Catanzaro氏が登壇して説明を行った。
入力データを読み込むのに必要な時間は54nsで、これは全体の0.2%程度の時間で済む。しかし、ニューロンの各入力の重みは数が多いので、これを読み込むには全体の8%の20μsを必要とする。そして、入力データと重みを掛けて和を取るという計算部分が全体の15%の3.5μs掛かる。
しかし、RNNの場合は、横方向に並んでいるネットワークの重みは同じであるので、一度読み込んで、すべてのネットワークにコピーしてやれば良い。そうすると、入力データのロードと重みのロードがそれぞれ1.5%の時間で済み、97%の時間を積和計算に使えるようになる。
普通のネットワークでは、使用するGPUを100個以上に増やしても50TFlops程度で性能が飽和してしまうが、RNNの場合は、このような処理を行うことにより、スケーラビリティが大幅に改善し、100GPUで190TFlopsと4倍近い性能が得られる。
BaiduやGoogleなどでは、膨大な数のユーザがニューラルネットにアクセスして認識を行う。このため、学習済みのニューラルネットを使うInference処理が大きな負荷となる。普通にCPUで処理する場合は、4人のユーザが居れば、4つのInference処理を並列に実行し、それぞれのユーザに認識結果を返す。
しかし、Baiduでは4ユーザの処理をまとめてバッチとして処理を行い、その結果を4人のユーザに分配するバッチディスパッチという方法を使っている。バッチ処理の場合は重みの読み込みなどは一回行えば良いので、Inference処理あたりのオーバヘッドを減らすことができる。
GPUを使って、このように処理することにより、同じ応答レーテンシを維持して7倍の数のユーザを処理することができるようになったという。
ディープラーニングのトレンドの第2は、より複雑な出力にチャレンジするようになっている点である。E-mailのスパム判定やイメージの認識は実用レベルに達し、現在は、オーディオの言語認識、イメージなら説明文を付けるキャプショニング、異なる言語間の翻訳、文法の崩れたテキストの理解などに開発の主力は向かっている。
しかし、分野が広がるにつれ、正解のラベル付きのデータが少ないことが制約になって来ているという。写真を見て、コーヒーマグが写っているかどうかのYes/Noを付けるのは簡単であるが、いろいろな対象が写っている写真にどのような説明文を付けるのが正解かというのは容易ではない。
このようなAIの発展で影響を受けるのは、どのような分野であろうか? ヘルスケア、製造、メディアやエンタテイメント、運輸などの業界が大きな影響を受けると考えられるが、詳細はNg氏のTwitterを参照いただきたい。