ITインフラSummit 2019

実践ガイド著者が語る!
機械学習/AIのためのプラットフォーム
~GPUやコンテナの活用~

日本ヒューレット・パッカード
オープンソース・Linuxテクノロジーエバンジェリスト
古賀 政純

機械学習のビジネスへの活用が進んでいる。日本ヒューレット・パッカードの古賀政純氏は、機械学習に適したシステム基盤としてDockerコンテナを推奨する。コンテナを使えば、機械学習に使うドライバやライブラリの整合性を保つことができる。コンテナを効率よく運用するためには、空いているサーバー資源をコンテナに自動的に割り当てるデータセンターOSも有効だ。

コンピュータの進化で機械学習が現実解に
GPUと機械学習ライブラリが揃う

日本ヒューレット・パッカード
オープンソース・Linuxテクノロジーエバンジェリスト
古賀 政純

ビッグデータ分析を主な用途として、機械学習が注目を集めている。機械学習自体は昔からあるが、最近になって急速に事例が出てきた。以前と違って使い物になるからだ。GPU(グラフィックス処理ユニット)などによってハードウエアの処理性能が高まったほか、機械学習ライブラリなどの開発環境が整ってアプリケーションを開発しやすくなっている。

ソフトウエア面では、ディープラーニング(深層学習)が成果を上げた。ディープラーニングの代表的な事例が、CNN(畳み込みニューラルネットワーク)を用いた画像認識だ。すでにある画像を学習して特徴をつかみ、同類の画像かどうかを判定するモデルを生成する。これにより、監視カメラで不審人物を検出したり、工場の製造ラインで不良品を検出したりできるようになる。

ハードウエア面では、3次元グラフィックス処理向けの半導体で、浮動小数点演算を高速に処理できるGPUが、安価に手に入るようになった。GPUを3次元グラフィックス以外の汎用用途に使うGPGPUの例に、金融分野のモンテカルロシミュレーションなどがある。機械学習も、3次元グラフィックス処理と同様に行列計算なので、GPUの恩恵を受けられる。

機械学習を活用したアプリケーションを簡単に開発できるようにするソフトウエア開発キットも揃ってきた。機械学習用のライブラリとしては、例えばGoogleのTensorFlowがある。このほかにも、国内企業が開発したものを含め、市場には多数のライブラリがある。開発言語も、C/C++だけでなく、より開発生産性が高いPythonなどを使用できる。

機械学習はドライバやライブラリの整合性が煩雑
コンテナ技術の可搬性を活かして問題を解決

では、機械学習のためのIT基盤は、どう構築すればよいのか。日本ヒューレット・パッカードの古賀氏は、結論として「Dockerコンテナが有効」と指摘する。コンテナは可搬性があるため、アプリケーションとハードウエアの依存関係を減らせるほか、様々なバージョンのライブラリを簡単に試すことができる。

機械学習の利用にあたっては、注意点がある。ライブラリなどのアプリケーション開発用部品ごとに、GPUの対応可否などが異なるのだ。例えば、カーネルに組み込むGPUのドライバや、GPUプログラミングのためのライブラリなどのバージョンを揃えないと、動作してくれない。

ソフトウエア同士でバージョンを合わせる煩雑さを回避する手段として、コンテナ化が有効だと古賀氏は指摘する。Dockerにプラグインを適用すれば、NVIDIAのGPUをコンテナ環境で使えるようになる。「開発者視点では、コンテナを使えば異なるバージョンのライブラリを採用した複数のコンテナを同時に試すこともできます」(古賀氏)。

コンテナに含める機能にも工夫が必要という。具体的には、GPUライブラリをコンテナに含めた場合、コンテナが動作する環境のGPUドライバとGPUライブラリの整合性がとれずに動作しない可能性がある。これを回避する工夫として、GPUライブラリを外部ストレージに格納しておき、コンテナ起動時にストレージからGPUライブラリを読み込むとよいと古賀氏は指南する。

大量コンテナの起動をデータセンターOSで自動化
空いたリソースを自動で割り当てて稼働率を向上

コンテナの運用にあたっては、ソフトウエアのバージョンの整合性のほかにも、注意しなければならないポイントがある。数千個といった大量のコンテナを起動し、空いているリソースを個々のコンテナに割り当てる必要があるので、手動でコンテナを起動することはあり得ない。運用ソフトを利用した自動化が必須となる。

大量のコンテナにデータセンター資源を適切に割り当てられるソフトとして古賀氏が挙げるのが、日本ヒューレット・パッカードが取り扱っているMesosphere DC/OSだ。「複数のコンピュータで構成するデータセンター全体を1台のコンピュータと見なし、空いているリソースを個々のコンテナに自動で割り当てることができます」(古賀氏)。

一方、DC/OSを使わずに大量のコンテナを運用した場合、使っているリソースと使っていないリソースが明確に分かれてしまい、データセンターのリソースの使用状態にムラが生じてしまう。データセンターの利用効率が低くなってしまう。

古賀氏は「コンテナは業務改革にもつながる」と主張する。コンテナのメリットの1つは、負荷に応じてコンテナの数を自動で増やしたり減らしたりできること。コンテナの運用を続けることで「どういった事象があるとアクセスが増えるか」という傾向も分析できるようになる。こうして得た知見を使って顧客を増やせると指摘する。

海外では、Mesosphere DC/OSを用いた事例も多い。Verizonはビッグデータ基盤の配備に、SamsungがIoT分析ジョブの実行に、AppleはSiriの基盤(Hadoop)に、Bloombergはストリーム処理の基盤に、Uberは分散データベースの基盤に、PayPalは開発環境に、それぞれ利用している。

単機能のコンテナを複数組み合わせて
データを収集、加工、分析、学習する

今後、データ分析用途では、コンテナを駆使したアプリケーションが増えてくると古賀氏は指摘する。特定の機能を提供するコンテナを組み合わせて一連のデータ処理を実現するといった使い方が一般的になる。データの収集、加工、分析、学習といった機能群をコンテナに担わせるようになる。

日本ヒューレット・パッカードでは、機械学習のためのハードウエアも用意している。例えば、ビッグデータの保存・分析用には、より多くのストレージを積める「HPE Apollo 4200」を、AI/機械学習用にはGPUカードを8基積める「HPE Apollo 6500」を用意している。巨大なメモリー空間を使いたい需要に対してはSMP(対称型マルチプロセッシング)マシンの「HPE Superdome Flex」を用意している。

お問い合わせ

日本ヒューレット・パッカード

https://www.hpe.com/jp/ja/home.html

▲ページの先頭へ