SlideShare a Scribd company logo
1 of 23
Download to read offline
富士通株式会社
山中惇平
ReNom User Group #2
Infrastructure as Codeで
ReNom環境構築入門
Copyright 2017 FUJITSU LIMITED0
本資料及びLTでお話する内容は、個人の見解であり、
所属する組織の公式見解でも代表する意見でもありません。
Who?
 名前 山中 惇平 / Jumpei Yamanaka
 所属 富士通株式会社
AIサービス事業本部
AIインテグレーション事業部
 仕事 AIプラットフォームサービスの開発
↑で作ったAIプラットフォームを用いた商談対応、データ分析
 言語 R/Python/Javascript/Java
 昔 ロボットの強化学習 (DL黎明期、まだ黒魔術と呼ばれていた頃。私は触れずに卒業)
Copyright 2017 FUJITSU LIMITED1
話しの内容
Copyright 2017 FUJITSU LIMITED
Infrastructure as Codeで
ReNom環境構築入門
2
話しの内容
Copyright 2017 FUJITSU LIMITED
Infrastructure as Codeで
ReNom環境構築入門
?
3
話しの内容
Copyright 2017 FUJITSU LIMITED
Infrastructure as Codeで
ReNom環境構築入門
多くの人が
ReNomを
すぐに
使えるように!
4
データ分析環境の構築
 データ分析の「環境」をどう整えるか?
Copyright 2017 FUJITSU LIMITED
1. サーバーを用意する
2. OSをインストールする
3. 分析に用いる言語(Python、Rなど)をインストールする
4. パッケージをインストールする
5. エディタ、または統合開発環境を用意する
データ分析を始めるまで
ただしデータそのもののの準備は除く
5
データ分析環境の構築
 データ分析の「環境」をどう整えるか?
Copyright 2017 FUJITSU LIMITED
1. サーバーを用意する
2. OSをインストールする
3. 分析に用いる言語(Python、Rなど)をインストールする
4. パッケージをインストールする
5. エディタ、または統合開発環境を用意する
データ分析を始めるまで
ただしデータそのもののの準備は除く
その後
このパッケージPython 2しか
対応して無い!
Pythonのバージョンを変えないと~
上司「分析の手が足り無そうなので
新しい分析者をアサインしました。
環境の準備をよろしく。」
実データの分析に移行するにあたって
より強力なクラウドサーバで分析を…パッケージがアップデートされて
以前と同じ実験結果が出ない…
6
Docker!!
Copyright 2017 FUJITSU LIMITED7
DockerでReNom分析環境構築
Copyright 2017 FUJITSU LIMITED8
注:今回はGPU、cudaまわりは置いておいて
まずはCPU環境で作ります。
DockerでReNom分析環境構築
Copyright 2017 FUJITSU LIMITED
nvidia-dockerという
dockerのラッパーのようなもので
作れそうではあります
9
Dockerとは
 オープンソースの仮想化プラットフォーム
 「コンテナ」としてソフトウェアをパッケージングし、
個別の仮想マシンのように使えるようにする。
Copyright 2017 FUJITSU LIMITED
コンテナと仮想マシンの違い
Docker公式Webページより https://www.docker.com/what-container
コンテナは個別にOSを持たない=仮想マシンより軽量、立ち上がりも早い
⇒分析環境の構築/分離/再現に便利
10
Docker導入
 https://www.docker.com/
 様々なプラットフォームに対応
•デスクトップ *| Windows / Mac
•クラウド向け | Docker for AWS / Docker for Azure
•サーバ | Windows Server / CentOS / Debian / RHEL / Ubuntu /…
*) Windows、MacはバージョンによりDockerの種類が変わる
Copyright 2017 FUJITSU LIMITED
イメージの作成
or
ダウンロード
イメージから
コンテナの起動
使ってみる
ここから
入手
インストール後
イメージ
=コンテナの素
Docker Hubで
様々なものが公開されている
https://hub.docker.com/
11
ReNomイメージの作成
Copyright 2017 FUJITSU LIMITED12
Python分析環境の導入
 DockerはDockerfileというスクリプトからイメージのビルドを行う
Copyright 2017 FUJITSU LIMITED
# イメージの取得。今回はReNomの推奨環境であるUbuntu 16.04ベース
FROM Ubuntu:16.04
# パッケージのインストールとアップデート
RUN apt-get update && apt-get –y upgrade
RUN apt-get –y install build-essential ¥
git vim curl wget ¥
zlib1g-dev ¥
libssl-dev ¥
libreadline-dev ¥
libyaml-dev ¥
libxml2-dev ¥
libxslt-dev ¥
libncurses5-dev ¥
libncursesw5-dev
# pyenvのインストール
RUN git clone https://github.com/yyuu/pyenv.git /root/.pyenv
RUN git clone https://github.com/yyuu/pyenv-pip-rehash.git ¥
/root/.pyenv/plugins/pyenv-pip-rehash
ENV PYENV_ROOT root/.pyenv
ENV PATH $PYENV_ROOT/bin:$PATH
# anacondaのインストール
ENV ANACONDA_VER 4.4.0
RUN pyenv install anaconda3-$ANACONDA_VER
RUN pyenv global anaconda3-$ANACONDA_VER
ENV PATH $PYENV_ROOT/versions/anaconda-$ANACONDA_VER/bin:$PATH
# pyenvの初期化
RUN cd /root && eval “$(pyenv init -)”
RUN echo ‘eval “$(pyenv init -)”’ >> /root/.bashrc
# ReNomインストール
RUN git clone https://github.com/ReNom-dev-team/ReNom.git ¥
/root/ReNom
RUN mkdir /root/work
ENV RENOM_PRECISION 64
RUN cd /root/ReNom && /root/.pyenv/shims/pip install -e .
# コンテナ起動時の実行コマンド(Jupyterの起動)
CMD /bin/bash -l –c ¥
'/root/.pyenv/shims/jupyter notebook ¥
--NotebookApp.open_browser=False ¥
--NotebookApp.ip=* ¥
--allow-root ¥
--NotebookApp.notebook_dir="/root/work/"'
ReNom推奨であるUbuntuイメージから作成
Anacondaで必要なライブラリやJupyterを
一気にいれる
肝のReNomインストール
コンテナ起動時にJupyterが動くようにする
イメージの作成
or
ダウンロード
イメージから
コンテナの起動
使ってみる
注)2017/9/26現在(ReNom ver 2.1.0)でビルド確認
13
Python分析環境の導入
 Dockerfileがあるフォルダでビルドのコマンドを実行する
 コンテナを起動
Copyright 2017 FUJITSU LIMITED
$ docker build –t renom-jupyter:2.1.0 .
…(省略)…
$ docker images
REPOSITORY TAG IMAGE ID CREATED
renom-jupyter 2.1.0 3f63a0357beb 42 seconds a
イメージの作成
or
ダウンロード
イメージから
コンテナの起動
使ってみる
$ docker run -d -p 8989:8888 -v /home/yamanaka/work/:/root/work/ --name renom_2_1_0_yamanaka renom-jupyter
f30d5b9504b5855c6f0cf4714e28c5055c62e3fa2eb5c95ab865336029aae749
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
PORTS
f30d5b9504b5 renom-jupyter:2.1.0 "/bin/sh -c '/bin/..." 16 minutes
minutes 0.0.0.0:8989->8888/tcp
yamanaka
ホストのポート8989を8888にフォワード
ホストのフォルダを作業フォルダとしてマウント
Dockerはコンテナ立ち上げ後にデータを保持できない
(終了させるとイメージの状態に戻る)ため
データはコンテナ外部に保存する必要がある
14
Python分析環境の導入
 コンテナが起動したらブラウザでPythonを使える(Jupyter)
Copyright 2017 FUJITSU LIMITED
イメージの作成
or
ダウンロード
使ってみる
イメージから
コンテナの起動
15
できあがったもの
Copyright 2017 FUJITSU LIMITED
Docker コンテナ
サーバOS(基本的にはLinux、Windows等でも可)
Docker
pyenv
anaconda (Jupyter, Numpy, …)
Python
ReNom
できたこと→ReNomを使ったデータ分析環境の素早い構築
一度イメージを作れば、あとはdocker run ~~で環境を作成可能
Anacondaが入った重めのイメージでも約2.6GB
16
まだできていないこと
 Docker Hub等への公開
 誰か有志がいらっしゃいましたら作ってくださってもいいです
 GPU対応
 必要に迫られるまでは…
 ポート枯渇問題
 一サーバに環境をたくさんたてすぎるとポートが枯渇する(してる)
 その他分析環境とあわせる
 R / Rstudio等
 その他ツールとあわせる
 Git等
Copyright 2017 FUJITSU LIMITED17
Infrastracture as Code?
 インフラのコード化
 インフラの構成をコードとして自動化し、また管理、再利用しやすくする
 コードなのでアプリケーションの知見(テストやバージョン管理など)が適用できる
 特に「アジャイル」の文脈から継続的インテグレーションに運用面の課題を解決する
ために出てきた経緯がある
 データ分析における役割
 分析環境を自動で立ち上げる(本日の話でおそらく第一歩)
 作ったロジックをディストリビュートするには?
 データ分析とアプリとインフラをつなぐ「たしなみ」
 データ分析者を増やす
→データ分析への敷居を下げに下げることが重要
Copyright 2017 FUJITSU LIMITED
データ
アプリ インフラ
初学者的理解
18
Infrastracture as Code?
 インフラのコード化
 インフラの構成をコードとして自動化し、また管理、再利用しやすくする
 コードなのでアプリケーションの知見(テストやバージョン管理など)が適用できる
 特に「アジャイル」の文脈から継続的インテグレーションに運用面の課題を解決する
ために出てきた経緯がある
 データ分析における役割
 分析環境を自動で立ち上げる(本日の話でおそらく第一歩)
 作ったロジックをディストリビュートするには?
 データ分析とアプリとインフラをつなぐ「たしなみ」
 データ分析者を増やす
→データ分析への敷居を下げに下げることが重要
Copyright 2017 FUJITSU LIMITED
データ
アプリ インフラ
初学者的理解
より多くのデータサイエンティストを!!
19
http://renom.jp/ja/notebooks/tutorials.html
Copyright 2017 FUJITSU LIMITED
より多くのデータサイエンティストを!!
20
まとめ
 データ分析の環境をどう立ち上げる?
 DockerでReNomコンテナをたててみた
 二度目以降は数分で分析環境を立ち上げられるようになる
 Infrastructure as Code
 データ分析にもとっても役立つ
Copyright 2017 FUJITSU LIMITED21
Copyright 2017 FUJITSU LIMITED
Thank you!_
22

More Related Content

What's hot

[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例Naoya Kishimoto
 
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法Kazuto Kusama
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話Daichi Koike
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandMasakazu Matsushita
 
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発TylerShukert
 
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)Hiroshi Tokumaru
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501稔 小林
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
UE4+Photonでネットワーク同期を行う
UE4+Photonでネットワーク同期を行うUE4+Photonでネットワーク同期を行う
UE4+Photonでネットワーク同期を行うShohei Yamamoto
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌LINE Corporation
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたakira6592
 
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~GREE VR Studio Lab
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
CephのベンチマークをしましたOSSラボ株式会社
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門xyzplus_net
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 

What's hot (20)

[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
 
アプリのバックグラウンド処理 | iOS 7エンジニア勉強会
アプリのバックグラウンド処理 | iOS 7エンジニア勉強会アプリのバックグラウンド処理 | iOS 7エンジニア勉強会
アプリのバックグラウンド処理 | iOS 7エンジニア勉強会
 
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
 
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
UE4+Photonでネットワーク同期を行う
UE4+Photonでネットワーク同期を行うUE4+Photonでネットワーク同期を行う
UE4+Photonでネットワーク同期を行う
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
BGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみたBGP Unnumbered で遊んでみた
BGP Unnumbered で遊んでみた
 
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
Cephのベンチマークをしました
 
エクストリーム ネットワークス レイヤ2/3スイッチ基本設定ガイド
エクストリーム ネットワークス レイヤ2/3スイッチ基本設定ガイドエクストリーム ネットワークス レイヤ2/3スイッチ基本設定ガイド
エクストリーム ネットワークス レイヤ2/3スイッチ基本設定ガイド
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 

Viewers also liked

Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介ThinkIT_impress
 
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDocker, Inc.
 
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化Hinemos
 
Dockerの事例紹介
Dockerの事例紹介Dockerの事例紹介
Dockerの事例紹介Hiroki Endo
 
元BIエバンジェリストが語る!脱獄matplot!
元BIエバンジェリストが語る!脱獄matplot!元BIエバンジェリストが語る!脱獄matplot!
元BIエバンジェリストが語る!脱獄matplot!ReNom User Group
 
ReNomによるNeural Style Transfer
ReNomによるNeural Style TransferReNomによるNeural Style Transfer
ReNomによるNeural Style TransferReNom User Group
 
TDAを構成する技術の紹介 ~PCA編~
TDAを構成する技術の紹介 ~PCA編~TDAを構成する技術の紹介 ~PCA編~
TDAを構成する技術の紹介 ~PCA編~ReNom User Group
 
AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~
AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~
AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~ReNom User Group
 
深層学習を医療に応用するために
深層学習を医療に応用するために深層学習を医療に応用するために
深層学習を医療に応用するためにReNom User Group
 
~チュートリアル第1弾~ チュートリアルの概要と事例の紹介
~チュートリアル第1弾~ チュートリアルの概要と事例の紹介~チュートリアル第1弾~ チュートリアルの概要と事例の紹介
~チュートリアル第1弾~ チュートリアルの概要と事例の紹介ReNom User Group
 
強化学習を用いたポートフォリオマネジメントの試み
強化学習を用いたポートフォリオマネジメントの試み強化学習を用いたポートフォリオマネジメントの試み
強化学習を用いたポートフォリオマネジメントの試みReNom User Group
 
Style transfer
Style transferStyle transfer
Style transferzaburo
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural NetworksSeiya Tokui
 
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会Shotaro Sano
 
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
NVIDIA Seminar ディープラーニングによる画像認識と応用事例NVIDIA Seminar ディープラーニングによる画像認識と応用事例
NVIDIA Seminar ディープラーニングによる画像認識と応用事例Takayoshi Yamashita
 
AWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWSAWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWSAmazon Web Services Japan
 

Viewers also liked (20)

Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
 
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
 
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
【HinemosWorld2015】A1-3_コンテナ技術Dockerの導入事例と完全運用自動化
 
Dockerの事例紹介
Dockerの事例紹介Dockerの事例紹介
Dockerの事例紹介
 
元BIエバンジェリストが語る!脱獄matplot!
元BIエバンジェリストが語る!脱獄matplot!元BIエバンジェリストが語る!脱獄matplot!
元BIエバンジェリストが語る!脱獄matplot!
 
ReNom User Group #1 Part3
ReNom User Group #1 Part3ReNom User Group #1 Part3
ReNom User Group #1 Part3
 
ReNomによるNeural Style Transfer
ReNomによるNeural Style TransferReNomによるNeural Style Transfer
ReNomによるNeural Style Transfer
 
TDAを構成する技術の紹介 ~PCA編~
TDAを構成する技術の紹介 ~PCA編~TDAを構成する技術の紹介 ~PCA編~
TDAを構成する技術の紹介 ~PCA編~
 
AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~
AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~
AIによる働き方改革!~本当にストレスを感じている社員を見逃すな~
 
ReNom User Group #1 Part1
ReNom User Group #1 Part1ReNom User Group #1 Part1
ReNom User Group #1 Part1
 
深層学習を医療に応用するために
深層学習を医療に応用するために深層学習を医療に応用するために
深層学習を医療に応用するために
 
~チュートリアル第1弾~ チュートリアルの概要と事例の紹介
~チュートリアル第1弾~ チュートリアルの概要と事例の紹介~チュートリアル第1弾~ チュートリアルの概要と事例の紹介
~チュートリアル第1弾~ チュートリアルの概要と事例の紹介
 
ReNom User Group #1 Part2
ReNom User Group #1 Part2ReNom User Group #1 Part2
ReNom User Group #1 Part2
 
強化学習を用いたポートフォリオマネジメントの試み
強化学習を用いたポートフォリオマネジメントの試み強化学習を用いたポートフォリオマネジメントの試み
強化学習を用いたポートフォリオマネジメントの試み
 
Style transfer
Style transferStyle transfer
Style transfer
 
Recurrent Neural Networks
Recurrent Neural NetworksRecurrent Neural Networks
Recurrent Neural Networks
 
AWS OpsWorksのご紹介
AWS OpsWorksのご紹介AWS OpsWorksのご紹介
AWS OpsWorksのご紹介
 
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会
 
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
NVIDIA Seminar ディープラーニングによる画像認識と応用事例NVIDIA Seminar ディープラーニングによる画像認識と応用事例
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
 
AWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWSAWS Black Belt Online Seminar 2017 Deployment on AWS
AWS Black Belt Online Seminar 2017 Deployment on AWS
 

Similar to Infrastructure as CodeでReNom環境構築入門

Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!Wataru NOGUCHI
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!泰史 栃折
 
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyPHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyHikari Fukasawa
 
Cent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみようCent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみよう2bo 2bo
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説LeapMind Inc
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeomantomo_masakura
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~Takeshi Kuramochi
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築Hideharu MATSUFUJI
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
Dodai projectの紹介
Dodai projectの紹介Dodai projectの紹介
Dodai projectの紹介Osamu Habuka
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介Uchio Kondo
 

Similar to Infrastructure as CodeでReNom環境構築入門 (20)

Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
 
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyPHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
 
Cent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみようCent osにpyhtonをインストールしてみよう
Cent osにpyhtonをインストールしてみよう
 
Puppet入門
Puppet入門Puppet入門
Puppet入門
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Dodai projectの紹介
Dodai projectの紹介Dodai projectの紹介
Dodai projectの紹介
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介
 

More from ReNom User Group

AI画像認識モデル開発をやってみた!#1
AI画像認識モデル開発をやってみた!#1AI画像認識モデル開発をやってみた!#1
AI画像認識モデル開発をやってみた!#1ReNom User Group
 
ReNomを利活用した溶接モニタリングの取組について
ReNomを利活用した溶接モニタリングの取組についてReNomを利活用した溶接モニタリングの取組について
ReNomを利活用した溶接モニタリングの取組についてReNom User Group
 
ReNom IMG version3.0最新情報の紹介
ReNom IMG version3.0最新情報の紹介ReNom IMG version3.0最新情報の紹介
ReNom IMG version3.0最新情報の紹介ReNom User Group
 
Renomロードマップの紹介
Renomロードマップの紹介Renomロードマップの紹介
Renomロードマップの紹介ReNom User Group
 
EDGEMATRIX社のご紹介と、Edge AI Computing Platformについて
EDGEMATRIX社のご紹介と、Edge AI Computing PlatformについてEDGEMATRIX社のご紹介と、Edge AI Computing Platformについて
EDGEMATRIX社のご紹介と、Edge AI Computing PlatformについてReNom User Group
 
AIのビジネス実装を成功に近づけるために
AIのビジネス実装を成功に近づけるためにAIのビジネス実装を成功に近づけるために
AIのビジネス実装を成功に近づけるためにReNom User Group
 
ReNomDL 高速化の紹介
ReNomDL 高速化の紹介ReNomDL 高速化の紹介
ReNomDL 高速化の紹介ReNom User Group
 
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
量子コンピュータ向けアプリケーション開発フレームワークReNomQとはReNom User Group
 
ReNom IMGの活用事例 + ReNom TAGの告知
ReNom IMGの活用事例 + ReNom TAGの告知ReNom IMGの活用事例 + ReNom TAGの告知
ReNom IMGの活用事例 + ReNom TAGの告知ReNom User Group
 
ReNom RG新機能の紹介
ReNom RG新機能の紹介ReNom RG新機能の紹介
ReNom RG新機能の紹介ReNom User Group
 
エンジニアではなくてもAIモデル構築が可能な時代に
エンジニアではなくてもAIモデル構築が可能な時代にエンジニアではなくてもAIモデル構築が可能な時代に
エンジニアではなくてもAIモデル構築が可能な時代にReNom User Group
 
バージョンアップした「ReNomIMG」の紹介
バージョンアップした「ReNomIMG」の紹介バージョンアップした「ReNomIMG」の紹介
バージョンアップした「ReNomIMG」の紹介ReNom User Group
 
数値回帰モデル作成アプリケーション 「ReNomRG」の紹介
数値回帰モデル作成アプリケーション 「ReNomRG」の紹介数値回帰モデル作成アプリケーション 「ReNomRG」の紹介
数値回帰モデル作成アプリケーション 「ReNomRG」の紹介ReNom User Group
 
ReNomIMG を使った料理名判別による栄養管理アプリ
ReNomIMG を使った料理名判別による栄養管理アプリReNomIMG を使った料理名判別による栄養管理アプリ
ReNomIMG を使った料理名判別による栄養管理アプリReNom User Group
 
AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~
AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~
AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~ReNom User Group
 
ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~
ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~
ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~ReNom User Group
 
ReNom 2016 ~ 2018振り返り
ReNom 2016 ~ 2018振り返りReNom 2016 ~ 2018振り返り
ReNom 2016 ~ 2018振り返りReNom User Group
 
ユニアデックスのAIに向けた取り組みご紹介
ユニアデックスのAIに向けた取り組みご紹介ユニアデックスのAIに向けた取り組みご紹介
ユニアデックスのAIに向けた取り組みご紹介ReNom User Group
 

More from ReNom User Group (20)

AI画像認識モデル開発をやってみた!#1
AI画像認識モデル開発をやってみた!#1AI画像認識モデル開発をやってみた!#1
AI画像認識モデル開発をやってみた!#1
 
ReNomを利活用した溶接モニタリングの取組について
ReNomを利活用した溶接モニタリングの取組についてReNomを利活用した溶接モニタリングの取組について
ReNomを利活用した溶接モニタリングの取組について
 
ReNom IMG version3.0最新情報の紹介
ReNom IMG version3.0最新情報の紹介ReNom IMG version3.0最新情報の紹介
ReNom IMG version3.0最新情報の紹介
 
Renomロードマップの紹介
Renomロードマップの紹介Renomロードマップの紹介
Renomロードマップの紹介
 
EDGEMATRIX社のご紹介と、Edge AI Computing Platformについて
EDGEMATRIX社のご紹介と、Edge AI Computing PlatformについてEDGEMATRIX社のご紹介と、Edge AI Computing Platformについて
EDGEMATRIX社のご紹介と、Edge AI Computing Platformについて
 
AIのビジネス実装を成功に近づけるために
AIのビジネス実装を成功に近づけるためにAIのビジネス実装を成功に近づけるために
AIのビジネス実装を成功に近づけるために
 
ReNomDL 高速化の紹介
ReNomDL 高速化の紹介ReNomDL 高速化の紹介
ReNomDL 高速化の紹介
 
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
 
ReNom IMGの活用事例 + ReNom TAGの告知
ReNom IMGの活用事例 + ReNom TAGの告知ReNom IMGの活用事例 + ReNom TAGの告知
ReNom IMGの活用事例 + ReNom TAGの告知
 
ReNom RG新機能の紹介
ReNom RG新機能の紹介ReNom RG新機能の紹介
ReNom RG新機能の紹介
 
ReNomDL V3の紹介
ReNomDL V3の紹介ReNomDL V3の紹介
ReNomDL V3の紹介
 
エンジニアではなくてもAIモデル構築が可能な時代に
エンジニアではなくてもAIモデル構築が可能な時代にエンジニアではなくてもAIモデル構築が可能な時代に
エンジニアではなくてもAIモデル構築が可能な時代に
 
バージョンアップした「ReNomIMG」の紹介
バージョンアップした「ReNomIMG」の紹介バージョンアップした「ReNomIMG」の紹介
バージョンアップした「ReNomIMG」の紹介
 
数値回帰モデル作成アプリケーション 「ReNomRG」の紹介
数値回帰モデル作成アプリケーション 「ReNomRG」の紹介数値回帰モデル作成アプリケーション 「ReNomRG」の紹介
数値回帰モデル作成アプリケーション 「ReNomRG」の紹介
 
ReNomIMG を使った料理名判別による栄養管理アプリ
ReNomIMG を使った料理名判別による栄養管理アプリReNomIMG を使った料理名判別による栄養管理アプリ
ReNomIMG を使った料理名判別による栄養管理アプリ
 
AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~
AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~
AI/DeepLearningに必要なデータ準備〜そのデータ本当ですか?~
 
ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~
ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~
ReNom チュートリアルと今後 ~renom.jpで始めるAI開発~
 
ReNom DP&TDA
ReNom DP&TDAReNom DP&TDA
ReNom DP&TDA
 
ReNom 2016 ~ 2018振り返り
ReNom 2016 ~ 2018振り返りReNom 2016 ~ 2018振り返り
ReNom 2016 ~ 2018振り返り
 
ユニアデックスのAIに向けた取り組みご紹介
ユニアデックスのAIに向けた取り組みご紹介ユニアデックスのAIに向けた取り組みご紹介
ユニアデックスのAIに向けた取り組みご紹介
 

Infrastructure as CodeでReNom環境構築入門

  • 1. 富士通株式会社 山中惇平 ReNom User Group #2 Infrastructure as Codeで ReNom環境構築入門 Copyright 2017 FUJITSU LIMITED0 本資料及びLTでお話する内容は、個人の見解であり、 所属する組織の公式見解でも代表する意見でもありません。
  • 2. Who?  名前 山中 惇平 / Jumpei Yamanaka  所属 富士通株式会社 AIサービス事業本部 AIインテグレーション事業部  仕事 AIプラットフォームサービスの開発 ↑で作ったAIプラットフォームを用いた商談対応、データ分析  言語 R/Python/Javascript/Java  昔 ロボットの強化学習 (DL黎明期、まだ黒魔術と呼ばれていた頃。私は触れずに卒業) Copyright 2017 FUJITSU LIMITED1
  • 3. 話しの内容 Copyright 2017 FUJITSU LIMITED Infrastructure as Codeで ReNom環境構築入門 2
  • 4. 話しの内容 Copyright 2017 FUJITSU LIMITED Infrastructure as Codeで ReNom環境構築入門 ? 3
  • 5. 話しの内容 Copyright 2017 FUJITSU LIMITED Infrastructure as Codeで ReNom環境構築入門 多くの人が ReNomを すぐに 使えるように! 4
  • 6. データ分析環境の構築  データ分析の「環境」をどう整えるか? Copyright 2017 FUJITSU LIMITED 1. サーバーを用意する 2. OSをインストールする 3. 分析に用いる言語(Python、Rなど)をインストールする 4. パッケージをインストールする 5. エディタ、または統合開発環境を用意する データ分析を始めるまで ただしデータそのもののの準備は除く 5
  • 7. データ分析環境の構築  データ分析の「環境」をどう整えるか? Copyright 2017 FUJITSU LIMITED 1. サーバーを用意する 2. OSをインストールする 3. 分析に用いる言語(Python、Rなど)をインストールする 4. パッケージをインストールする 5. エディタ、または統合開発環境を用意する データ分析を始めるまで ただしデータそのもののの準備は除く その後 このパッケージPython 2しか 対応して無い! Pythonのバージョンを変えないと~ 上司「分析の手が足り無そうなので 新しい分析者をアサインしました。 環境の準備をよろしく。」 実データの分析に移行するにあたって より強力なクラウドサーバで分析を…パッケージがアップデートされて 以前と同じ実験結果が出ない… 6
  • 10. 注:今回はGPU、cudaまわりは置いておいて まずはCPU環境で作ります。 DockerでReNom分析環境構築 Copyright 2017 FUJITSU LIMITED nvidia-dockerという dockerのラッパーのようなもので 作れそうではあります 9
  • 11. Dockerとは  オープンソースの仮想化プラットフォーム  「コンテナ」としてソフトウェアをパッケージングし、 個別の仮想マシンのように使えるようにする。 Copyright 2017 FUJITSU LIMITED コンテナと仮想マシンの違い Docker公式Webページより https://www.docker.com/what-container コンテナは個別にOSを持たない=仮想マシンより軽量、立ち上がりも早い ⇒分析環境の構築/分離/再現に便利 10
  • 12. Docker導入  https://www.docker.com/  様々なプラットフォームに対応 •デスクトップ *| Windows / Mac •クラウド向け | Docker for AWS / Docker for Azure •サーバ | Windows Server / CentOS / Debian / RHEL / Ubuntu /… *) Windows、MacはバージョンによりDockerの種類が変わる Copyright 2017 FUJITSU LIMITED イメージの作成 or ダウンロード イメージから コンテナの起動 使ってみる ここから 入手 インストール後 イメージ =コンテナの素 Docker Hubで 様々なものが公開されている https://hub.docker.com/ 11
  • 14. Python分析環境の導入  DockerはDockerfileというスクリプトからイメージのビルドを行う Copyright 2017 FUJITSU LIMITED # イメージの取得。今回はReNomの推奨環境であるUbuntu 16.04ベース FROM Ubuntu:16.04 # パッケージのインストールとアップデート RUN apt-get update && apt-get –y upgrade RUN apt-get –y install build-essential ¥ git vim curl wget ¥ zlib1g-dev ¥ libssl-dev ¥ libreadline-dev ¥ libyaml-dev ¥ libxml2-dev ¥ libxslt-dev ¥ libncurses5-dev ¥ libncursesw5-dev # pyenvのインストール RUN git clone https://github.com/yyuu/pyenv.git /root/.pyenv RUN git clone https://github.com/yyuu/pyenv-pip-rehash.git ¥ /root/.pyenv/plugins/pyenv-pip-rehash ENV PYENV_ROOT root/.pyenv ENV PATH $PYENV_ROOT/bin:$PATH # anacondaのインストール ENV ANACONDA_VER 4.4.0 RUN pyenv install anaconda3-$ANACONDA_VER RUN pyenv global anaconda3-$ANACONDA_VER ENV PATH $PYENV_ROOT/versions/anaconda-$ANACONDA_VER/bin:$PATH # pyenvの初期化 RUN cd /root && eval “$(pyenv init -)” RUN echo ‘eval “$(pyenv init -)”’ >> /root/.bashrc # ReNomインストール RUN git clone https://github.com/ReNom-dev-team/ReNom.git ¥ /root/ReNom RUN mkdir /root/work ENV RENOM_PRECISION 64 RUN cd /root/ReNom && /root/.pyenv/shims/pip install -e . # コンテナ起動時の実行コマンド(Jupyterの起動) CMD /bin/bash -l –c ¥ '/root/.pyenv/shims/jupyter notebook ¥ --NotebookApp.open_browser=False ¥ --NotebookApp.ip=* ¥ --allow-root ¥ --NotebookApp.notebook_dir="/root/work/"' ReNom推奨であるUbuntuイメージから作成 Anacondaで必要なライブラリやJupyterを 一気にいれる 肝のReNomインストール コンテナ起動時にJupyterが動くようにする イメージの作成 or ダウンロード イメージから コンテナの起動 使ってみる 注)2017/9/26現在(ReNom ver 2.1.0)でビルド確認 13
  • 15. Python分析環境の導入  Dockerfileがあるフォルダでビルドのコマンドを実行する  コンテナを起動 Copyright 2017 FUJITSU LIMITED $ docker build –t renom-jupyter:2.1.0 . …(省略)… $ docker images REPOSITORY TAG IMAGE ID CREATED renom-jupyter 2.1.0 3f63a0357beb 42 seconds a イメージの作成 or ダウンロード イメージから コンテナの起動 使ってみる $ docker run -d -p 8989:8888 -v /home/yamanaka/work/:/root/work/ --name renom_2_1_0_yamanaka renom-jupyter f30d5b9504b5855c6f0cf4714e28c5055c62e3fa2eb5c95ab865336029aae749 $ docker ps CONTAINER ID IMAGE COMMAND CREATED PORTS f30d5b9504b5 renom-jupyter:2.1.0 "/bin/sh -c '/bin/..." 16 minutes minutes 0.0.0.0:8989->8888/tcp yamanaka ホストのポート8989を8888にフォワード ホストのフォルダを作業フォルダとしてマウント Dockerはコンテナ立ち上げ後にデータを保持できない (終了させるとイメージの状態に戻る)ため データはコンテナ外部に保存する必要がある 14
  • 16. Python分析環境の導入  コンテナが起動したらブラウザでPythonを使える(Jupyter) Copyright 2017 FUJITSU LIMITED イメージの作成 or ダウンロード 使ってみる イメージから コンテナの起動 15
  • 17. できあがったもの Copyright 2017 FUJITSU LIMITED Docker コンテナ サーバOS(基本的にはLinux、Windows等でも可) Docker pyenv anaconda (Jupyter, Numpy, …) Python ReNom できたこと→ReNomを使ったデータ分析環境の素早い構築 一度イメージを作れば、あとはdocker run ~~で環境を作成可能 Anacondaが入った重めのイメージでも約2.6GB 16
  • 18. まだできていないこと  Docker Hub等への公開  誰か有志がいらっしゃいましたら作ってくださってもいいです  GPU対応  必要に迫られるまでは…  ポート枯渇問題  一サーバに環境をたくさんたてすぎるとポートが枯渇する(してる)  その他分析環境とあわせる  R / Rstudio等  その他ツールとあわせる  Git等 Copyright 2017 FUJITSU LIMITED17
  • 19. Infrastracture as Code?  インフラのコード化  インフラの構成をコードとして自動化し、また管理、再利用しやすくする  コードなのでアプリケーションの知見(テストやバージョン管理など)が適用できる  特に「アジャイル」の文脈から継続的インテグレーションに運用面の課題を解決する ために出てきた経緯がある  データ分析における役割  分析環境を自動で立ち上げる(本日の話でおそらく第一歩)  作ったロジックをディストリビュートするには?  データ分析とアプリとインフラをつなぐ「たしなみ」  データ分析者を増やす →データ分析への敷居を下げに下げることが重要 Copyright 2017 FUJITSU LIMITED データ アプリ インフラ 初学者的理解 18
  • 20. Infrastracture as Code?  インフラのコード化  インフラの構成をコードとして自動化し、また管理、再利用しやすくする  コードなのでアプリケーションの知見(テストやバージョン管理など)が適用できる  特に「アジャイル」の文脈から継続的インテグレーションに運用面の課題を解決する ために出てきた経緯がある  データ分析における役割  分析環境を自動で立ち上げる(本日の話でおそらく第一歩)  作ったロジックをディストリビュートするには?  データ分析とアプリとインフラをつなぐ「たしなみ」  データ分析者を増やす →データ分析への敷居を下げに下げることが重要 Copyright 2017 FUJITSU LIMITED データ アプリ インフラ 初学者的理解 より多くのデータサイエンティストを!! 19
  • 21. http://renom.jp/ja/notebooks/tutorials.html Copyright 2017 FUJITSU LIMITED より多くのデータサイエンティストを!! 20
  • 22. まとめ  データ分析の環境をどう立ち上げる?  DockerでReNomコンテナをたててみた  二度目以降は数分で分析環境を立ち上げられるようになる  Infrastructure as Code  データ分析にもとっても役立つ Copyright 2017 FUJITSU LIMITED21
  • 23. Copyright 2017 FUJITSU LIMITED Thank you!_ 22