LoginSignup
75
73

More than 3 years have passed since last update.

Google CloudのAI Platform Notebooksで楽々コンペ環境の構築

Last updated at Posted at 2020-07-06

kaggleやSIGNATEのようなデータ分析コンペでは時に大容量データを扱うことがあるので、ラップトップPCではメモリが足りなくなることがあります。そういう場合はつよつよPCを購入するかGCPやAWSのようなクラウド環境を利用するのですが、後者はプログラミング初心者には難しい面があります。Google CloudのAI Platform Notebooksを使うと簡単にコンペの分析環境を作れるため紹介したいと思います。

AI Platform Notebookのインスタンスを作成する

  1. Google Cloud Platformで新しいプロジェクトを作成する。(typoでpropjectになってしまいました)プロジェクト作成
  2. ナビゲーションメニュー > 人工知能 > AI Platform > ノートブック を選択する。 ノートブック選択
  3. APIを有効にしていない場合は有効にする。
  4. 新しいインスタンスから好きな環境を選ぶ。(今回はCustomize instanceを選択します)インスタンス作成
  5. 環境を設定する。(今回はコンペに必要なライブラリが一通りインストールされているKaggle Pythonを選択します)インスタンス詳細
  6. 保存してしばらくするとインスタンスが作成されるので、JUPYTER LABを開くとJUPYTER LABが開ける。おしまい

スワップ領域を設定する

pandasで集約操作を行うときや、LightGBMで訓練前にbinを良い感じに設定する時等、瞬間的にメモリが必要になる場合があります。普段はそんなにメモリを使わないのに、ピークの時だけメモリが必要だからという理由でメモリの大きなインスタンスを立てたくはないですよね。そういう場合はスワップ領域を設定すると解決できる場合があります。

  1. ノートブックインスタンス一覧から設定したいインスタンスの名前をクリックする。
  2. リモートアクセス > SSH を押下する。
  3. 次のコマンドを入力する。(今回は32GiBのスワップ領域を設定しています)
sudo dd if=/dev/zero of=/swapfile bs=1M count=32768
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

SSHでの設定

  1. しばらく待つとスワップ領域が作成されるので、topコマンドでスワップ領域ができているか確認する。 topコマンドでの確認

Google Cloud Storageからデータを転送する。

JUPYTER LABから直接データをアップロードすることもできますが、大容量のデータを複数インスタンスにアップロードしたいときはGoogle Cloud Storageを中継すると便利です。

  1. ノートブックインスタンス一覧からインスタンスの名前をクリックし、サービスアカウント名をメモしておく。 サービスアカウント名取得
  2. ナビゲーションメニュー > ストレージ > Storage > ブラウザ を選択する。メニューからストレージを選択
  3. バケットを作成する。
  4. ナビゲーションに従ってストレージの設定を行う。(よくわかっていませんがアクセス制御を均一にしています)
  5. バケットが作成出来たら、権限のタブに移動し、先ほどメモしたサービスアカウントに権限を付与する。 権限付与
  6. バケットに転送したいファイルをアップロードする。(フォルダを作成してまとめておくと便利です)
  7. JUPYTER LABを開きterminalを開いて以下のコマンドで転送を行う。(-rは複数ファイルを送るときのプロパティです)
gsutil cp -r [転送したいディレクトリ] [転送先のディレクトリ]

スクリーンショット (272).png

おわりに

コンペに参加してみたいけど高いPCを買うのはちょっと……という人はAI Platformを利用すると手軽にコンペに参加できます。
最初の300$は無料なのでぜひ使ってみてください。

75
73
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
73