Upload
atsumori-sasaki
View
206
Download
4
Embed Size (px)
Citation preview
WatsonをささえるハイパフォーマンスクラウドではじめるDeep Learning
2016年11⽉21⽇⽇本アイ・ビー・エム株式会社
クラウド事業本部佐々⽊敦守
HWAUG & GPU-Accelerated VDI Community Meetup in 札幌
⾃⼰紹介• 2006年、⽇本IBM⼊社後、システム製品事業にて、HPCクラウド(IBM
Computing on Demand)、プライベート・クラウド(IBM Cloud Showcase)の開発・運⽤に従事。2014年より、クラウド事業のテクニカル・セールスを担当。
• 最近は、地⽅創⽣を⽬的としたオープン・イノベーション推進プログラム「イノベート・ハブ九州」にてテクニカル・アドバイザーも担当。
http://www.amazon.co.jp/dp/B0168EZKOC
http://www.amazon.co.jp/dp/B01C6UWTSW
http://www.redbooks.ibm.com/redbooks/pdfs/sg248073.pdf
佐々⽊ 敦守⽇本アイ・ビー・エム株式会社クラウド事業本部クラウド・テクニカル・セールスアドバイザリー・アーキテクト
http://hash.city.fukuoka.lg.jp/news/archives/140 2
本⽇の内容• クラウドAIファースト
• 代表的なクラウドAIのサービス⼀覧
• クラウドAIの利⽤と分類
• IBMのクラウドAIの強み
• Visual Recognition v3による画像認識
• ベアメタルGPUによる画像認識
• ベアメタルGPU活⽤事例
• OpenPowerの取り組み
• まとめ
3
クラウドAIファーストIBM is now emerging as a
solutions andcompany.
(IBM は コグニティブ・ソリューションとクラウド・プラットフォーム の会社です。)
We will move from mobile first to an AI first
.(私たちはモバイルファーストからAIファーストの世界へ移るつもりだ。)
for every person and organization.(マイクロソフトは、AIをあらゆる⼈々と組織に対して⺠主化する。)
4
Ginni Rometty Sundar Pichai Satya Nadella
Facebook、Amazon、Google、IBM、MicrosoftがAIで歴史的な提携を発表
https://www.partnershiponai.org/
5
2016年9⽉、⼈⼯知能の普及とベストプラクティスを共有する⾮営利団体「Partnership on AI」を設⽴。AIの倫理や公平性、プライバシー、透明性などを共同で研究し、その成果を公表することを⽬的とする。
Microsoft IBM Facebook Google
代表的なクラウドAIのサービス⼀覧IBM Google Microsoft
⾔語 • AlchemyLanguage• Conversation• DocumentConversion• LanguageTranslator• NaturalLanguageClassifier• PersonalityInsights• RetrieveandRank• ToneAnalyzer
• TranslateAPI• NaturalLanguage API
• BingSpellCheck• LanguageUnderstanding• LinguisticAnalysis• Text Analytics• Translator• WebLM
⾳声 • SpeechtoText• TexttoSpeech
• SpeechAPI • BingSpeechCustomRecognitionSpeakerRecognition
画像・動画 • Visual Recognition(AlchemyAPI)
• VisionAPI • ComputerVision• ContentModerator• Emotion• Face• Video
データ・インサイト • AlchemyData News• Discovery• TradeoffAnalytics
• Academic• EntityLinking• Knowledge Exploration• Recommendations 6
クラウドAIの利⽤と分類モデル開発
(IaaS)データ分析
(PaaS)サービス利⽤
(SaaS)ベアメタルGPUを
利⽤した⾃社モデル開発l ⼿元のデータから独⾃のモデル
を開発するl ディープラーニング・フレーム
ワークを利⽤する
クラウド・リソースを利⽤したモデル開発
l すでに効果が⾒えているデータ群から、リソースを利⽤して機会学習モデルを設計する
• IBM Watson Machine Learning
• Google Cloud Machine Learning
• Microsoft Azure Machine Learning
既存モデルを利⽤したサービス利⽤
l トレーニング済みの機械学習サービスを利⽤したモデル適⽤を⾏う
• Watson Visual Recognition API
• Google CloudVision API
• Microsoft Computer Vision API
カスタマイズ性 俊敏性
⼀般的にクラウド上での機械学習/ディープラーニングの形態は以下3つに分類できます。
7
IBMクラウドAIの強み
MachineLearning
Machine Learning(TensorFlowベース)
MachineLearning
Microsoft Cognitive Services
⾔語 ⾳声 画像
⾔語 ⾳声 画像⾳声 画像 データ⾔語
Dedicated/Local
Watson MachineLearning
9
Redshift
dashDB BigQuery
SQLDW
インターネット
インターネット
インターネット
インターネット
各社機能は似通っており、クラウド提供であることから、クラウド・アーキテクチャーも含めた点が差別化ポイントと考えられます。
① ソフトバンク経由の⽇本語対応メニューがある② 豊富な業界ベースのWatson Knowledge Studioがある③ 豊富なIBMコグニティブコンサルタントが⽀援可能である④ インターネット接続不要で顧客専有環境での提供が可能⑤ ベアメタルGPUやOpenPowerをIaaSとして使える
ハイブリッド・クラウド
Visual Recognition v3
• Visual Recognitionによる事前分類やフィルタリングをすることで、業務における様々な確認や分析作業を⾏う⼈間の負荷低減をする。
• 不適切な画像のフィルタリング• 画像選択での事前分類• 商品や制作物の品質確認
• トレーニングデータ• 分類すべきクラスごとに集められた最低10毎の画像(適切な分類品質を得るには50枚以上)• どのクラスにも該当しないネガティブな最低10枚の画像
9
ディープラーニングのアルゴリズムを使⽤して画像分析し、画像に含まれるオブジェクト、顔、テキストを分析します。
Visual Recognition v3
Node-RED starter
NodeJS CloudantNoSQL DB
画像URL⼊⼒
顔認識結果
深層学習のアルゴリズムを使⽤した顔認識(Detect faces)APIにより⼊⼒画像を分析し、画像に含まれる顔を認識します。画像に含まれる顔を検知し、性別と年齢を判別します。有名⼈については⼈物の特定もします。
VisualRecognition
10
Visual Recognition v3
12https://watson-api-explorer.mybluemix.net/apis/visual-recognition-v3#/
$ curl -X GET "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/detect_faces?api_key=6bb7bda55e32e063175c0e9feadf1e063cb13587&url=http://www.slate.com/content/dam/slate/uploads/2016/02/27/512501530-republican-presidential-candidate-donald-trump-speaks.jpg.CROP.promo-xlarge2.jpg&version=2016-05-20”
Visual Recognition v3
[{"age": {"min": 65,"score": 0.670626
},"face_location": {"height": 645,"left": 573,"top": 153,"width": 456
},"gender": {"gender": "MALE","score": 0.993307
},"identity": {"name": "Donald Trump","score": 0.924142,"type_hierarchy": "/people/celebrities/donald trump"
}}
]
顔認識(Detect faces)APIを使⽤することで、画像に含まれる顔を検知し、性別と年齢を判別します。有名⼈については⼈物の特定もします。
13
企業でのクラウドAIサービス利⽤の課題
15
パフォーマンスにばらつきがある
ユーザー部⾨ 情報システム担当者 データ・サイエンティスト
API呼び出し回数や学習コストによっては
⾼くつく
オンプレミスにあるデータ、システムと
連携させたい
社内のセキュリティ要件やガイドラインが満
たせない膨⼤なデータを取り扱うときは時間がかかる
SLA要件が満たせない
⾃社独⾃のモデルが構築できない
IBMクラウドのコンピューティング選択肢
仮想サーバー
“抽象化”
“制御”
ベアメタル
Dedicated Compute
High Memory
Intensive Disk I/O
Isolation
Familiar
Full OperatingSystem Control
コンテナー
Portable
Flexible
Light-weight
CF Apps
Speed
Manage code,not infrastructure
OpenWhiskStateless
Event-Driven
Short-lived…開
発者
のニ
ーズ
に合
わせ
る…
総合制御 柔軟性最⼤効率 DevOps 最少コスト 反応性16
時間課⾦GPUベアメタルの構成例
18
項⽬ 仕様CPU Dual Intel Xeon E5-2620 v4 (16 Cores, 2.10 GHz)RAM 128 GB RAM1次グラフィック処理装置 NVIDIA Tesla K80 Graphic Card2次グラフィック処理装置 NVIDIA Tesla K80 Graphic CardOS Ubuntu Linux 16.04 LTS Xenial Xerus (64 bit)ハードディスク SSD 800 GB × 2 (RAID1)アップリンクポート速度 1 Gbps Public & Private Network Uplinks電源装置 Redundant Power Supply
$3.927(約435円)/時間
TensorFlow on ベアメタルGPU
22
1. Bluemix InfrastructureのポータルよりベアメタルGPUのオーダー
2. Nvidia GPUドライバインストール(ベアメタルOS上)
3. Dockerインストール(ベアメタルOS上)
4. nvidia-dockerインストール(ベアメタルOS上)
5. Tensorflow + GPU のイメージ作成&実⾏
構築Step
15分
10分
5分
Step 1. ベアメタルGPUのオーダー
23
SoftLayerのカスタマー・ポータル(https://control.softlayer.com)よりGUP対応の時間課⾦ベアメタル・サーバーをオーダーします。現在時間課⾦に対応しているベアメタルGPUはIntel Xeon E5-2690v4 + Grid K2モデルとIntel Xeon E5-2620v4 + Tesla K80モデルの2種類です。
15〜30分程度でプロビジョニングが完了!
システム構成情報がポータル上から確認できます。
Step 2. GPUドライバーのインストール
24
OSプロビジョニング後にシステム・アップデートを実施後、OSS標準ドライバ“nouveau”を無効化した上で最新のNVIDIA GPUドライバーをインストールします。この環境では、最新ドライバーは、wgethttp://fr.download.nvidia.com/XFree86/Linux-x86_64/367.55/NVIDIA-Linux-x86_64-367.55.runでダウンロードします。
./NVIDIA-Linux-x86_64-367.55.runでインストー
ルします。
nvidia-smiコマンドで正常にインストールされたか
を確認できます。
Step 3. Dockerインストール
25
公式のインストール・マニュアル(https://docs.docker.com/engine/installation/linux/ubuntulinux/)にしたがいDockerをインストールします。
#sudo apt-getinstallapt-transport-httpsca-certificates#sudo apt-keyadv --keyserver hkp://ha.pool.sks-keyservers.net:80--recv-keys58118E89F3A912897C070ADBF76221572C52609D#echo"debhttps://apt.dockerproject.org/repoubuntu-xenial main"|sudo tee/etc/apt/sources.list.d/docker.listdebhttps://apt.dockerproject.org/repoubuntu-xenialmain#sudo apt-getupdate#apt-cachepolicydocker-engine#sudo apt-getupdate#sudo apt-getinstalllinux-image-extra-$(uname -r)linux-image-extra-virtual
ここではUbuntu版を利⽤
Step 4. nvidia-dockerインストール
26
#sudo wget -P/tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc.3/nvidia-docker_1.0.0.rc.3-1_amd64.debsudo dpkg -i /tmp/nvidia-docker*.deb&&rm /tmp/nvidia-docker*.deb
#sudo nvidia-docker run--rm nvidia/cuda nvidia-smi
公式のQuickStart(http://qiita.com/ttomoaki/items/5a180f61647750eb8d70)にしたがい、Nvidia-Dockerをインストールします。
ソースコードはGitHubに公開されています。
Step 5. TensorFlow + GPU のイメージ作成&実⾏
27
“nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu”コマンドによりTensorFlow + GPUコンテナが起動します。マスターは、TensorFlowのGithub(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/docker)にも公開されています。
Dockerを起動後、http://${HOST_IP}:8888/にアクセスすればjupyterの画⾯が確認できます。
3_mnist_from_scratch.ipynb のnotebookを起動して Cell -> Run All でサンプルが動くことを確認します。
jupyterのログでGPUを使って計算されていることを確認します。
事例1:Alpaca様
28
個⼈の投資アイデア(認識したい値動きの時系列データ)を投資アルゴリズムにする際に、Deep Learningによって⾦融時系列データの認識機を作成。
Dockerを徹底活⽤してベアメタルGPUサーバにハイパフォーマンスなディープラーニング環境を構築。
Alpaca社のDeep Learningを活⽤したトレーディング・アルゴリズム・サービス(Capitalico)で、ベアメタルGPUが採⽤されました。
Alpaca Head of Japan R&D北⼭ 朝也 ⽒
様々なGPUサービスを⽐較検討した結果、もっともコスト・パフォーマンスの⾼かったBluemixInfrastructure(旧SoftLayer)のGPUを使って、サービスを開発、および本番運⽤しています。
事例2:Bitfusion様
29
CPU-onlyNode
48Cores3TBMemory72TBSSDStorage
LogicallyattachedGP
Us
BoostMassiveVirtualNodeGPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
GPU
RackswithGPUs
GPU GPU
GPU GPU
GPU GPU
GPU GPU
GPU GPU
GPU GPU
GPU GPU
GPU GPU
GPU GPU
GPU GPU
• ベアメタルGPU+Bitfusion Boostにより、MapD(GPUを使ったSQLデータベース)の400億⾏のデータに対するʻselect carrier_name, count(*) from flights2 group by carrier_nameʼの処理をわずか271msで完了(1秒あたり147億レコードをスキャン。)
対象:1987-2008年の⽶国航空情報(1.28億⾏ x 312レプリカ)環境:MapD on IBM Cloud
BitFusion Boostで、異なる物理マシンの64基搭載されたGPUを1台にあるかのように!!
l 1CPUあたり12コアl 1CPUあたり96スレッドl 1 TB RAMl 総I/Oバンド幅7.6Tb/s l GPUs and FPGAs coming…
OpenPOWER
従来からのIntel x86サーバー
http://www.softlayer.com/bare-metal-search?processorModel[]=9
HPCのためのオープンなハードウェア
POWER8Processo
r
MemoryBuffers
MemoryBuffers
PCI
DMI
PCI
POWER8Processor
POWER8Processor
DMI
DMI
DMI
DMI
DMI
DMI
DMI
NODE-to-NODE
ON-NODE SMP
Infrastructure
30
DockerCon Europe 2015デモ環境
合計: 10,011 コンテナ/1ノード
ubuntu (8028台), Node.js(991台), Wordpress (992台)
• 広バンド幅、⾼速メモリ・インターフェース、他スレッド⾼速コア• Split-CoreモードによりインタラクティブなWebアプリケーションのサポートを改善• 2倍のコンテナ密度によるコスト削減
• スループット40%UP、レイテンシー4倍• OpenPowerエコシステムがハードウェア・プラットフォームの選択肢の幅を提供
OpenPOWERで⾼密度Dockerコンテナ
31
IBMとNVIDIAによる⼤規模ディープラーニングソリューション
32
ディープラーニングソフトウェアツール群「IBM PowerAI」を投⼊し、NVLink搭載IBM POWERサーバを組み合わせたアプライアンスによるソリューションを提供します。
IBM Power System S822LC for High Performance Computing
まとめlクイックに⾼品質なコグニティブ・ソリューションを開発するならWatson APIなどクラウドAIサービスが便利です。
l⾃社独⾃モデルを⽤いて本格的にDeep Learningに取り組むのであればIBMクラウドのベアメタルGPU+各種Deep Learningフレームワークがおすすめです。
lIBMはハイブリッド・クラウドで全⽅位的にクラウドAIをサポートします。
33
さらなる詳細は Bluemix(SoftLayer) Advent Calendar 2016にて公開!!http://qiita.com/advent-calendar/2016/bluemix
34
この資料の内容は社員個⼈の⾒解であり、必ずしも所属会社の⽴場、戦略、意⾒を代表するものではありません。この資料は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。この資料の内容の正確性には責任を負いません。また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternationalBusinessMachinesCorporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。当資料に記載された製品名または会社名はそれぞれの各社の商標または登録商標です。
顔認識アプリケーション• 顔認識アプリケーション(Facial Recognition Application)
• 監視カメラのデジタル画像から、⼈を⾃動的に識別するためのコンピュータ⽤アプリケーションである。 ライブ画像内の顔と思われる部分を抜き出し、顔⾯画像データベースと⽐較することで識別を⾏う。
監視カメラシステム。顔認識機能と⾃動⾞の型式、⾊、ナンバーなどを認識する機能がある
煙草の⾃動販売機に備えつけられた顔認証システム
顔認識とは、任意の画像が、顔画像かどうかを、コンピュータに判定させる問題
©CopyrightIBMCorporation2016 36
Visual Recognitionによる顔認識深層学習のアルゴリズムを使⽤して画像を分析し、画像に含まれるオブジェクト、顔、テキストを分析します。顔認識(Detect faces)APIを使⽤することで、画像に含まれる顔を検知し、性別と年齢を判別します。有名⼈については⼈物の特定もします。
[ { "classes": [ { "class": "person", "score": 0.947846, "type_hierarchy": "/people" } ], "classifier_id": "default", "name": "default" } ]
[ { "age": { "max": 64, "min": 55, "score": 0.561065 }, "face_location": { "height": 378, "left": 489, "top": 146, "width": 334 }, "gender": { "gender":"MALE", "score": 0.993307 } } ] ©CopyrightIBMCorporation2016 37
Node-REDによるプロトタイプ開発「Node-RED」は、Node.js上で動作するオープンソースのソフトウェアです。機能をカプセル化したノードと呼ばれるモジュールが⽤意されており、ブラウザベースのUIからノード同⼠を繋げて処理の流れを作成していきます。
©CopyrightIBMCorporation2016 38
システム全体像
Node-RED starter
NodeJS CloudantNoSQL DB
画像URL⼊⼒
顔認識結果
今回のハンズオンでは、Visual RecognitionではなくAlchemyAPIを使います(将来的に統合されます。)
深層学習のアルゴリズムを使⽤した顔認識(Detect faces)APIにより⼊⼒画像を分析し、画像に含まれる顔を認識します。画像に含まれる顔を検知し、性別と年齢を判別します。有名⼈については⼈物の特定もします。
AlchemyAPI
©CopyrightIBMCorporation2016 39
全体の流れ• ステップ0:Bluemixアカウントの作成• ステップ1:Node-REDボイラープレートのプロビジョニング• ステップ2:顔認識アプリケーションの開発• ステップ3:顔認識アプリケーションの動作確認
©CopyrightIBMCorporation2016 40
0-1. アカウントの作成
©CopyrightIBMCorporation2016 42
以下のURLより必要事項を⼊⼒するとBluemixのフリートライアルを開始できます。https://developer.ibm.com/sso/bmregistration?lang=ja_JP
0-2. アカウントの確認
©CopyrightIBMCorporation2016
Hi xxx,
Thank you for signing up for Bluemix! Your 30-day trial starts when you confirm your account by clicking the link that follows. During your trial, you'll have access to Bluemix to build apps, with 2GB of runtime and container memory, as well as up to 10provisioned Bluemix services. And, you won't need to provide any form of payment for this trial.
When you click to confirm your account, you accept the Bluemix Terms of Use.
Confirm your account
If you have any problems logging in, let us know at ibm.biz/bluemixsupport.
差出⼈: "The Bluemix Team" <[email protected]>⽇時: 2016年8⽉29⽇ 13:35:32 JST宛先: [email protected]件名: Confirm your Bluemix account返信先: "The Bluemix Team" <[email protected]>
通常10分程度でBluemixチームからメールが届きます。”Confirm your account”をクリックしてアカウントをアクティベーションします。
43
0-3. 初回ログインアカウントがアクティベーションされると、ログイン画⾯に遷移しますので、登録したアカウント(メール・アドレス)を使いログインしてください。
©CopyrightIBMCorporation2016 44
0-4. 初期設定初回ログイン時に”組織”と”スペース”を作成してください。組織は、名称は⾃由に変更が可能ですが、Bluemix環境でユニークでなければなりません。スペースは”test”や”production”など必要に応じた作業スペースを複数作成し利⽤できます。
©CopyrightIBMCorporation2016 45
1-1. アプリケーションの作成を開始前⾴の”準備ができました”をクリックすると、Bluemixのダッシュボードが開きます。”アプリケーショの作成”ボタンをクリックしてください。
©CopyrightIBMCorporation2016 47
1-5. AlchemyAPIのバインド接続メニューを選択し、” AlchemyAPI”を新規に接続します。もともとのボイラープレートには、Cloudant NoSQL DBが接続されています。
©CopyrightIBMCorporation2016 51
1-9. Node-REDアプリの表⽰DashboardからプロビジョニングしたNode-REDアプリケーションを選択し、開始メニューよりアプリの表⽰をクリックします。
©CopyrightIBMCorporation2016 55
1-10. Node-REDの表⽰Node-REDの初期ページが表⽰されます。”Go to your Node-RED flow editor”を、クリックするとNode-REDのフロー・エディターが起動します。
©CopyrightIBMCorporation2016 56
1-11. フロー・エディターの表⽰Node-REDのパレットが表⽰されます。ノードのドラッグ&ドロップでアプリケーションを開発していきます。
©CopyrightIBMCorporation2016 57
2-1. サンプル・フローの準備以下のURLをブラウザで開き[Raw]ボタンより内容を表⽰しコピーしてください。https://gist.github.com/asasaki4github/a0055870ae07a9bee3959d1e1202453a
©CopyrightIBMCorporation2016 60
2-3. サンプル・フローのインポートコピーしたサンプル・フローを貼り付けて、[Import]ボタンをクリックすればインポート完了です。
©CopyrightIBMCorporation2016 62
3-1. 顔認識アプリケーションの稼働確認⾃分のNode-REDのURL( http://<⾃分のNode-RED>.mybluemix.net/)パスに”faces”を追加したURLをブラウザで表⽰するとアプリケーションが表⽰されます。例)http://ihkdemo.mybluemix.net/faces
©CopyrightIBMCorporation2016 68
3-2. 顔認識アプリケーションの結果確認前ページのイメージURLに”.jpg”や”.png”などの画像URLを⼊⼒し、分析ボタンをクリックすると顔認識の結果が表⽰されます。画像に含まれる顔が検知され、性別と年齢を判別されていることを確認します。有名⼈については⼈物の名前も特定されます。
©CopyrightIBMCorporation2016 69
Bluemixチュートリアルhttp://www.ibm.com/developerworks/jp/bluemix/tutorial.html
©CopyrightIBMCorporation2016 70