Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

AIを学ぶ3 〜H2O.ai(Driverless AI)を使ってみる〜

こんにちは、鯨井貴博@opensourcetechです。

 

 AIを学ぶ 第3弾は、H2O.ai(Driverless AI)を使ってみます。

 

H2O.ai とは?

H2O.ai とは、オープンソースのデータ分析を行うことができる 機械学習のプラットフォームです。

https://www.h2o.ai/

f:id:opensourcetech:20180703183307p:plain

 

 

Linux / Windows / Mac / IBM Power に対応しており、

今回はMac のコンテナ環境(docker)で実施します。

 ※dockerについて知りたい方は、こちらを参照ください。

 

 

環境構築

①まず、必要なファイルをダウンロードします。

https://www.h2o.ai/download/

f:id:opensourcetech:20180703182637p:plain

ダウンロードされたファイルは、約2.5GB。

f:id:opensourcetech:20180703182648p:plain

 

Mac用のインストールガイドは、以下。

Mac OS X — Using Driverless AI 1.2.1 documentation

ガイド全体は、以下となります。

Overview — Using Driverless AI 1.2.1 documentation

 

②dockerを起動しておきます。

③インストールガイド 手順3 にあるように、docker環境をカスタムします。

④インストールガイド 手順4・5 にあるように、dai_rel_VERSION ディレクトリを作成し、そこへ移動します。

 

 

⑤ターミナルから以下のように操作します。

bash-3.2$ docker load < ./Downloads/driverless-ai-docker-cuda9-runtime-latest-release.gz・・・・ダウンロードファイルの読み込み(コンテナイメージの追加)
ff986b10a018: Loading layer 115.7MB/115.7MB
9c7183e0ea88: Loading layer 15.87kB/15.87kB
c98ef191df4b: Loading layer 14.85kB/14.85kB
92914665e7f6: Loading layer 5.632kB/5.632kB
6f4ce6b88849: Loading layer 3.072kB/3.072kB
a0169c839d92: Loading layer 32.26kB/32.26kB
13701cf91704: Loading layer 1.391MB/1.391MB
cc4e5c3e7335: Loading layer 3.072kB/3.072kB
4e12f24e6f42: Loading layer 852.3MB/852.3MB
f24850c00141: Loading layer 288.5MB/288.5MB
3086f8e3b0e4: Loading layer 573.2MB/573.2MB
d66ac92a51a6: Loading layer 299.9MB/299.9MB
9251a7b3d4c2: Loading layer 17.28MB/17.28MB
b9033fab29cc: Loading layer 152MB/152MB
297d7af8dd56: Loading layer 1.113GB/1.113GB
c599f1a6b344: Loading layer 1.063GB/1.063GB
33fafce88853: Loading layer 185.2MB/185.2MB
0f3cacdb51b7: Loading layer 18.94kB/18.94kB
692c6d8b0742: Loading layer 17.41kB/17.41kB
426acddd34e0: Loading layer 190.1MB/190.1MB
a3ee39f8850a: Loading layer 942.3MB/942.3MB
872fffda3543: Loading layer 20.57MB/20.57MB
68afc77ccfb9: Loading layer 39.44MB/39.44MB
a8b02f3c6d23: Loading layer 361.3MB/361.3MB
f23ecca851d7: Loading layer 104.8MB/104.8MB
8cfc269025fa: Loading layer 151kB/151kB
f8adbc4c43d1: Loading layer 3.584kB/3.584kB
428cca36f8a2: Loading layer 2.636MB/2.636MB
7c87c69da862: Loading layer 2.292MB/2.292MB
facbd63bc67d: Loading layer 13.56MB/13.56MB
11a5c0f4e8df: Loading layer 2.048kB/2.048kB
fee8fcb43ce0: Loading layer 11.26MB/11.26MB
90612d7c4e3a: Loading layer 1.536kB/1.536kB
fc8c754fdffb: Loading layer 1.536kB/1.536kB
8068cbb16950: Loading layer 3.584kB/3.584kB
e107bcf00b80: Loading layer 3.584kB/3.584kB
9daae604afaa: Loading layer 8.192kB/8.192kB
d9c56bf84ec1: Loading layer 20.99kB/20.99kB
Loaded image: opsh2oai/h2oai-runtime:latest
bash-3.2$ docker images・・・・コンテナイメージの確認
REPOSITORY TAG IMAGE ID CREATED SIZE
opsh2oai/h2oai-runtime latest 7ec30cee9588 4 days ago 6.27GB
sample/nginx2 latest 5c4776e2ffa1 4 days ago 276MB
kujiraitakahiro/submattnesk latest 2100cb31ecba 5 days ago 276MB
sample/nginx latest 2100cb31ecba 5 days ago 276MB
centos latest 49f7960eb7e4 11 days ago 200MB

bash-3.2$ mkdir data・・・・必要ディレクトリの作成
bash-3.2$ mkdir log
bash-3.2$ mkdir license
bash-3.2$ mkdir tmp

bash-3.2$ ls -l
total 56
.
.
.
drwxr-xr-x 2 xxxxxxx staff 64 6 16 21:15 dai_rel_1.2.0
drwxr-xr-x 2 xxxxxxx staff 64 6 16 21:25 data
drwxr-xr-x 2 xxxxxxx staff 64 6 16 21:25 license
drwxr-xr-x 2 xxxxxxx staff 64 6 16 21:25 log
drwxr-xr-x 2 xxxxxxx staff 64 6 16 21:25 tmp
.
.
.

bash-3.2$ docker run \
> --pid=host \
> --init \
> --rm \
> -u `id -u`:`id -g` \
> -p 12345:12345 \
> -p 54321:54321 \
> -p 9090:9090 \
> -v `pwd`/data:/data \
> -v `pwd`/log:/log \
> -v `pwd`/license:/license \
> -v `pwd`/tmp:/tmp \
> opsh2oai/h2oai-runtime・・・・コンテナイメージの起動
---------------------------------
Welcome to H2O.ai's Driverless AI
---------------------------------
version: TensorFlow is disabled. To enable, export DRIVERLESS_AI_ENABLE_TENSORFLOW=1 or set enable_tensorflow=true in config.toml.
2018-06-16 12:28:03,070 C:▄▄ D:11.8GB M:7.2GB 2174 INFO : font search path ['/h2oai_env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf', '/h2oai_env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/afm', '/h2oai_env/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/pdfcorefonts'] <----Python & Matplotlibなどが使われている
2018-06-16 12:28:03,546 C:▇ D:11.8GB M:7.2GB 2174 INFO : generated new fontManager
1.2.0

- Put data in the volume mounted at /data
- Logs are written to the volume mounted at /log/20180616-122759
- Connect to Driverless AI on port 12345 inside the container <----Port 12345でコンテナへアクセス可能
- Connect to Jupyter notebook on port 8888 inside the container

 

⑥ブラウザからアクセスします。

http://localhost:12345

 

⑦Agreementが表示されるので、下部のボタンをクリック。

f:id:opensourcetech:20180703182713p:plain

f:id:opensourcetech:20180703182719p:plain

f:id:opensourcetech:20180703182724p:plain

 

ログインプロンプトが表示されます。

f:id:opensourcetech:20180703182728p:plain

 

⑧ログイン情報取得の為、以下の「here」からアカウントやトライアルライセンスを作成します。

※ライセンス等は、登録したE-mailに送られてきます。

https://www.h2o.ai/try-driverless-ai/

f:id:opensourcetech:20180703182731p:plain

f:id:opensourcetech:20180703182735p:plain

f:id:opensourcetech:20180703182742p:plain

 

 

⑨ログイン後、ライセンスを投入。

f:id:opensourcetech:20180703182746p:plain

f:id:opensourcetech:20180703182750p:plain

 

⑩ライセンスのアラートが消えました。

 

 

f:id:opensourcetech:20180703183112p:plain

 

 

 

データ投入

今回は、Google analyticsから取得したCSVデータを使用しました。

f:id:opensourcetech:20180703183317p:plain

 

CSVファイルを、Exploreから選択します。

f:id:opensourcetech:20180703183322p:plain

f:id:opensourcetech:20180703183326p:plain

f:id:opensourcetech:20180703183330p:plain

 

f:id:opensourcetech:20180703183413p:plain

f:id:opensourcetech:20180703183418p:plain

f:id:opensourcetech:20180703183423p:plain

f:id:opensourcetech:20180703183428p:plain

 

 

データ解析

データの解析ですが、かなり時間(40分くらい)がかかりました。

 ※おそらくGPUを使用していないからだと思います。

f:id:opensourcetech:20180703183434p:plain

 

f:id:opensourcetech:20180703183629p:plain

f:id:opensourcetech:20180703183634p:plain

 

f:id:opensourcetech:20180703183645p:plain

 

 

 

まとめ

今回は、とりあえず使ってみるということにフォーカスしましたが、

実際に解析する場合には、以下のようなことをあらかじめ考えておく必要があるかと思います。

・使用するデータを揃える

・どのように解析するか決めておく必要がある

・解析結果の利用方法を考えておく

 

 

 

 

 

www.slideshare.net

github.com

www.facebook.com

twitter.com

www.instagram.com

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

 

Opensourcetech by Takahiro Kujirai