エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~ エヌビディア ディープラーニングソリューションアーキテクト 兼 CUDAエンジニア 村上 真奈 ディープラーニングとは 3 人工知能にとって驚くべき一年 マイクロソフト スーパーディープネットワーク マイクロソフトとグーグルが 画像認識で人間を超える バークレーのブレット 全てのロボットを 一つのネットワークで AlphaGo 世界チャンピオンを倒す Deep Speech 2 二つの言語を 一つのネットワークで 新コンピューティングモデル がポップカルチャーにも 5 ディープラーニングによって加速するAI競争 IMAGENET Accuracy Rate 100% Traditional CV Deep Learning 90% 80% 70% IBM Watson Achieves Breakthrough in Natural Language Processing Facebook Launches Big Sur Baidu Deep Speech 2 Beats Humans Google Launches TensorFlow Toyota Invests $1B in AI Labs Microsoft & U. Science & Tech, China Beat Humans on IQ 60% 50% 40% 30% 20% 10% 0% 2009 2010 2011 2012 2013 2014 2015 2016 6 ILSVRC top-5 error on Image Net 人間よりも早く正確な認識 ILSVRC15 7 拡がり続けるモダンAIの地平 1000以上のAIベンチャー 5000億円調達 8 様々な分野でディープラーニングを応用 インターネットとクラウド 医学と生物学 メディアとエンターテイメント セキュリティと防衛 機械の自動化 画像分類 音声認識 言語翻訳 言語処理 感情分析 推薦 癌細胞の検出 糖尿病のランク付け 創薬 字幕 ビデオ検索 リアルタイム翻訳 顔検出 ビデオ監視 衛星画像 歩行者検出 白線のトラッキング 信号機の認識 9 AlphaGo プロ棋士を破った世界初の囲碁のコンピュータープログラム モンテカルロ木探索とディープラーニングを組み合わせたシステム 3 週間、50GPUを用いて3億4千万回のトレーニング・ステップでDNNをト レーニング 対局: 40の検索スレッド、1202個のCPUと176個のGPUを使用して計算 バリューネットワークで基盤の状況を予測し、ポリシーネットワークで手の評 価を行う 全5局の対局、囲碁のヨーロッパチャンピオンと世界チャンピオンに勝利 http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html http://deepmind.com/alpha-go.html 10 Baidu Deep Speech 2 英語と中国語のディープラーニングを用いたエンドツーエンド音声認識 英語と中国語(北京語)の音声認識 シンプルにエンドツーエンドのディープラーニングを用いて英語から中国語への変換を行う 人間より高い認識精度 エラー率(Deep Speech 2) 3.7% エラー率(人間へのテスト) 4% http://svail.github.io/mandarin/ http://arxiv.org/abs/1512.02595 NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE. 11 自律走行車の為のディープラーニング 12 ディープラーニングを用いた画像合成 CNNを用いたテクスチャ合成と変換 NVIDIA Research、 Timo Aila 他 13 ディープラーニング事例 シーンセグメンテーションとシーン分類 Farabet, PAMI 2013 http://places.csail.mit.edu/ B. Zhou et al. NIPS 14 14 ディープラーニング事例 絵画様式認識と模倣 http://demo.vislab.berkeleyvision.org/ 15 ディープラーニングの事例 画像ノイズ除去および高解像度化 Eigen , ICCV 2010 Dong et al, ECCV 2014 16 ディープラーニングの事例 曲調をベースとした音楽のリコメンデーション http://benanne.github.io/2014/08/05/spotify-cnns.html 音楽のスペクトログラム を入力 “タグ”出力 17 ディープラーニングの事例 言語理解 Stanford NLP Group 18 ディープラーニングの事例 ゲームプレイ Google DeepMind 19 なぜGPUがディープラーニングに向いているか 20 ディープラーニングを加速する3つの要因 DNN ビッグデータ GPU “The GPU is the workhorse of modern A.I.” 21 多量なトレーニングデータと多数の行列演算 典型的なネットワーク例 目的 顔認識 トレーニングデータ 1,000万~1億イメージ ネットワークアーキテクチャ ラーニングアルゴリズム 10 層 30 エクサフロップスの計算量 10 億パラメータ GPU を利用して30日 22 従来型の機械学習を用いた認識 人間が設計した特徴量を使用 Rowデータ 特徴抽出 分類・検出 結果 SVM, shallow neural net, … HMM, shallow neural net, … Clustering, HMM, LDA, LSA … Speaker ID, speech transcription, … Topic classification, machine translation, sentiment analysis… 23 機械学習ソフトウェア 反復 フォワード プロパゲーション “亀” 木 トレーニング バックワード プロパゲーション 猫 犬 推論 “亀” から “犬” へ 計算の重み付けを更新 学習済みモデル “猫” 25 DLトレーニングシステム DLアプリケーション DLフレームワーク Caffe Theano Torch Chainer Tensor Flow CNTK GPUs 29 DLトレーニングシステム DLアプリケーション DLフレームワーク Caffe Theano Torch Chainer Tensor Flow CNTK cuBLAS, cuDNN, cuSPARSE GPUs 30 データサイエンティスト R&D サイクル Idea Test Code クリティカルパス: Ideaが沸いてから Testが完了するまで サイクルを速く回すことが重要 Train 31 データサイエンティスト R&D サイクル Idea Test Code Train 時間がかかる GPUの利用 32 ディープラーニングSDK 33 NVIDIA ディープラーニングSDK GPUで高速化されたディープラーニングのアプリケー ションを設計、開発する為の強力な開発ツールおよ びライブラリ NVIDIA GPUの為の高速なディープラーニング環 境を保障 最新のディープラーニング・アルゴリズムをGPUに 最適化した状態で提供 ディープラーニング・アプリケーションを簡単に構築 https://developer.nvidia.com/deep-learning-software 34 NVIDIA ディープラーニング SDK GPUで高速化されたディープラーニングの為の開発ツールおよびライブラリ cuBLAS cuSPARSE NCCL cuDNN ディープラーニング cuFFT 数学ライブラリ マルチGPU 35 NVIDIA cuDNN Pascal (cuDNN v5) 12.0x 10.0x 8.0x M40 (cuDNN v3) 6.0x GPU上でディープニューラルネットワークの計算を 高速に行う為のプリミティブ群 ディープニューラルネットワークの学習の高いパ フォーマンスを発揮 Caffe、 CNTK、 Tensorflow、 Theano、 Torch、Chainerなどディープラーニングフレー ムワークを高速化 バージョンアップ毎にパフォーマンスが向上 4.0x K40 (cuDNN v1) 2.0x 0.0x 2014 2015 2016 AlexNet training throughput based on 20 iterations, CPU: 1x E5-2680v3 12 Core 2.5GHz. “NVIDIAはcuDNNのリリースの度により多くの操作 ができるような機能拡張をおこなっており、同時 に計算速度も向上させている” —UC バークレー、 Caffe リードデベロッパー、 Evan Shelhamer developer.nvidia.com/cudnn 36 cuDNN 5 のアップデート Pascal世代GPU, リカレントニューラルネットワーク, パフォーマンスの向上 Torch上でLSTM リカレントニューラルネットワークの 計算を6倍高速化 パフォーマンスの向上: • VGG、GoogleNet、ResNetsのような3x3 畳み込み 層を持つネットワークの高速化 • 3次元畳み込み • Pascal世代のGPUの為のFP16ルーティンの追加 5.9x char-rnn RNN レイヤーの速度向上 2.8x DeepSpeech 2 RNNレイヤーの速度向上 Performance relative to torch-rnn (https://github.com/jcjohnson/torch-rnn) DeepSpeech2: http://arxiv.org/abs/1512.02595 Char-rnn: https://github.com/karpathy/char-rnn 37 DL学習を加速するCUDAライブラリ cuFFT cuBLAS cuSPARSE 高速フーリエ変換用ライブラリ 密行列演算ライブラリ 疎行列演算ライブラリ cuSPARSE 39 cuSPARSE: 疎行列演算ライブラリ NVIDIA cuSPARSE 自然言語処理向け機能拡張 密行列 x 疎ベクトル cusparse<T>gemvi() (例) テキスト内の単語の出現頻度 y = α ∗ op(A) ∗ x + β ∗ y y1 y2 y3 密ベクトル α A11 A21 A31 A12 A22 A32 A13 A23 A33 密行列 A14 A15 A24 A25 A34 A35 2 1 +β y1 y2 y3 疎ベクトル 40 密行列演算ライブラリ: cuBLAS GPU向け行列演算ライブラリ(BLAS完全準拠) DLで使われるのは単精度の行列積(SGEMM) cuBLAS 6.5 on K40m, ECC on, input and output data on device. m=n=k=4096, transpose=no, side=right, fill=lower cuBLAS 6.5 on K40m, ECC ON, input and output data on device. MKL 11.0.4 on Intel IvyBridge single socket 12 -core E5-2697 v2 @ 2.70GHz 41 密行列演算ライブラリ: cuBLAS FP16(半精度浮動小数点)ストレージ FP32と比べて, 2倍のデータをGPUメモリに搭載可能, メモリバンド幅 要求が半分 cublasSgemmEx() FP16データ入出力対応の行列積 (演算はFP32) 符号部 指数部 (1 bit) (5 bit) 仮数部 (10 bit) 42 NCCL(NVIDIA Collective Collection Library) ディープラーニング SDK マルチGPU集合通信ライブラリ • 最新リリースはv1.2.1 • https://github.com/NVIDIA/nccl all-gather, reduce, broadcast など標準的な集合通信の処理をバンド幅が出るように最適化 シングルプロセスおよびマルチプロセスで使用する事が可能 49 NCCL(NVIDIA Collective Collection Library) NCCLの集合通信処理 50 DIGITS 52 DIGITS ディープラーニング SDK WebベースのディープラーニングGPUトレーニングシステム ユーザー データセット の作成 インターフェース 学習モデルの 作成 学習過程の 可視化 レイヤーの 可視化 Chainer Theano DIGITS(UI/Server) ディープラーニングの学習・テストを 簡単に行う為のUI 別マシンからDIGITSを操作する為の サーバ機能 Torch NVCaffe Caffe cuDNN, cuBLAS CUDA 学習 GPU HW GPU マルチGPU GPUクラスタ NVCaffe BVLC/caffe(本家)からフォーク 最新のCUDAライブラリを使用 エヌビディアGPUに最適化 クラウド 53 NVIDIA DIGITS GPUで高速化されたディープラーニングトレーニング・システム 学習データの作成 モデルの作成 学習過程の可視化 モデルのテスト Test Image http://developer.nvidia.com/digits 54 DIGITS3 強化されたワークフローで効率よく学習 Torch7に対応(プレビュー) cuDNN4を使った学習/推論 HDF5形式のデータセットのサポート 学習データセットのブラウジング機能 LMDB形式の学習データの中身を確認出来る機能が追加 ジョブマネージメント機能の強化 現在実行中のジョブ一覧を分かりやすく表示する機能が追加 学習結果比較用ブラウザ 学習済みモデルを正解率やロス率など幾つかの項目でソートしたり、分析できる画面が追加 55 DIGITS download developer.nvidia.com/digits github.com/NVIDIA/DIGITS 56 ディープラーニングの基礎 ディープラーニング・フレームワーク 58 ディープラーニング・フレームワーク GPUで高速化されているディープラーニング・フレームワークが多数存在 Mocha.jl ディープラーニング・フレームワーク 59 NVIDIA ディープラーニング学習コース NVIDIA ディープラーニング・インスティチュート ディープラーニングの為の自習型のクラス。ハンズオン、講義資料、講義の録画を公開 https://developer.nvidia.com/deep-learning-courses 1. ディープラーニング入門 2. 画像分類の為のDIGITS入門 3. Caffe入門 4. Theano入門 5. Torch入門 61 qwikLABS:AWSを用いた自主学習ラボ 手元のPCにGPUが搭載されていなくてもOK • https://nvidia.qwiklab.comに多数のラボが存在 • 「ディープラーニング入門」は無料。日本語で受講可能。 62 NVIDIA ディープラーニング学習コース NVIDIA ディープラーニング・インスティチュート ディープラーニング・インスティチュートで今後公開予定のコース 1. TensorFlow入門 2. CNTK入門 3. Chainer入門 4. DIGITS中級講座 63 Thank you!
© Copyright 2024 ExpyDoc