クレジット:Joanna Kosinska(Unsplash)
深層学習モデルの開発や推論テストを高速に行うために、ローカル環境に自分専用のGPUがあればと思うことがあります。
このチュートリアルでは、Vertex AI NotebookへVSCodeからSSH接続し、クラウドインスタンスのGPUを使いながらローカルのVSCodeに近い開発環境を構築する方法を紹介します。
この考え方は、どのクラウドプロバイダーのGPU VMインスタンスでも利用できます。ただし、このチュートリアルではCUDAやcondaなどのML環境が最初から用意されているため、GCP Vertex AI Notebooksを例に使用します。
前提条件
- GCP IAMでCompute EngineインスタンスへのSSH権限を持つGCPアカウント(Editorロール)
- gcloud auth loginで認証済みのgcloud
- CUDA対応のVertex AI Notebookインスタンス
- VSCodeのRemote Development拡張機能パック
手順
1. Compute EngineでNotebookの外部IPアドレスを確認します。
ℹ️ 注:インスタンスの再起動時にIPアドレスが変わらないよう、静的IPアドレスとして予約しておくことをおすすめします。
2. 使用したい名前と手順1で確認した外部IPアドレスを使い、~/.ssh/configへ次のエントリーを追加します。
Host <使用したい名前。例:research-notebook>
HostName <手順1で確認した外部IPアドレス>
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/google_compute_engine
User jupyter
ℹ️ 注:ここで指定しているIdentityFileは、gcloudのデフォルトSSH秘密鍵です。別の鍵を使用している、または設定している場合は、IdentityFileの値をそのgcloud秘密鍵の場所へ変更してください。
3. VSCodeでコマンドパレット(デフォルトはCtrl/⌘ + Shift + P)を開き、Remote SSH: Connect to Hostを検索します。
4. 一覧から接続したいホスト名を選びます。
ℹ️ 注:~/.ssh/configに追加したエントリーは、一覧へ自動的に表示されます。例:remote-notebook
5. NotebookインスタンスのリモートSSHウィンドウでコマンドパレット(デフォルトはCtrl/⌘ + Shift + P)を開き、Remote: Install Remote Development Extensionsを検索します。
6. PythonとJupyterの拡張機能をインストールします。
7. これでローカルのVSCodeでディレクトリを開いたときと同じ感覚で、GPUを搭載したNotebookインスタンスを使用し、ターミナルコマンドも実行できるようになります。
おわりに
ローカル環境とほぼ同じワークフローのままNotebookインスタンスのGPUを利用できるため、多くのセットアップをせずにGPUの力を活用したい場合にとても便利です。
