# きっかけ

最近AIが流行っているので私もAIや機械学習について勉強したくなりました。

その勉強用の環境構築をGCPで構築したので、やったことをメモとして残します。

# 何故にGCP?

  1. ローカル環境を汚したくない
    • 手元のpcはゲーム用で、kaggleのdocker imageやanacondaの容量はでかいのでローカルに置きたくない
  2. GPU Imageを簡単に導入できる
    • GPU Imageでnvidia container tool kitやwslなどなど入れるソフトが多くてめんどくさい

以上の理由で環境をGCPのVertexAIで構築しようと思いました。

# 1. VertexAIでインスタンスを作成する

  1. ノートブック名
    • ノートブックの名前です、好きな名前をつけます
  2. リージョン
    • インスタンスのリージョンです、とりあえず東京にしました
  3. ゾーン
    • よくわからないのでとりあえずaにしました
  4. 環境
    • Kaggle Python[BETA]にします、これでkaggle環境のインスタンスが作れます
  5. マシンタイプ
    • 適当にn1-standard-4に、GPUタイプはNVIDIA T4にしました
    • NVIDIA GPUドライバを自動的にインストールするをチェックすればよしなにやってくれます

以上の5つの設定項目を埋めていって、最後に作成ボタンを押してしばらく待てばインスタンスができます。JupyterNotebookの補完機能だけで十分だという場合はここで終わりですが、私はVSCodeの補完機能を使いたいのでsshなどの設定を行います。

画像1

# 2. VSCodeにRemoteDevelopmentをインストールする

RemoteDevelopmentはvscodeでリモートpcをsshで繋げられたり、DockerContainerに繋げられたりできる便利なextensionです。インストールします。

画像2

# 3. RemoteDevelopment用の設定ファイルを作成する

インスタンスへssh接続するための設定ファイルなどを作ります、gitbashやpowershellを呼び出して以下のコマンドを実行します。

$ ssh-keygen

できた秘密鍵(id_rsa)と公開鍵(id_rsa.pub)をuserフォルダの下に.sshというフォルダを作り、そこにぶち込みます。

次にインスタンスに作成した公開鍵を登録します。公開鍵を適当なテキストエディタで開きます。公開鍵の最後の=符号の後ろがuser名となっているので、気に入らなければ他のやつに変えます。

次にこの公開鍵の文字列をコピーして、先程作成したインスタンスを開き、編集より公開鍵をペーストして、登録します。

画像3

これで秘密鍵を使って、先程作成したインスタンスにログインできるようになったので、RemoteDevelopmentで繋げるためのconfigファイルを作成します。

configファイルは以下の図のようにVSCodeの左にあるタブで開きます。

画像4

configファイルを開いたら、空なので以下のような行を追加します。それぞれの項目は

  1. Host
    • configの一覧で表示される名前です、好きな名前をつけましょう
  2. HostName
    • インスタンスのIPアドレスを入れます、IPを固定してそれを入力した方がいいかもしれません
  3. User
    • 先程の公開鍵にあったuser名を入れます
  4. IdentifyFile
    • 先程作成した秘密鍵へのパスを入れます
Host gcp_kaggle
    HostName a.b.c.d
    User username
    IdentityFile ~/.ssh/id_rsa

これでsshでインスタンスに繋げる設定はすべて完了です。

# 4. VSCodeのRemoteDevelopmentを使ってインスタンスに接続する

設定が完了すれば、ssh targetsに先程登録した名前が現れるはずです。それを右クリックして、Connect to Host in New Windowでssh接続します。

新しい窓が開いたら、更にf1を押してattachって入力して、Dev Containers:Attach to Running Containerから/payload-containerを選択すれば構築したkaggle環境に接続できます。

> attach
Dev Containers:Attach to Running Container
/payload-container

これでkaggle環境に繋げられたので、最後に補完機能を使うために、python extensionをremote containerにインストールします。

画像5

インストールし終えたら、VSCodeの補完機能が使える使えるようになるので快適なkaggle環境の完成です。