遠隔のサーバールームを望むアニメ背景調の夜の作業机
制作ノート

Vertex AI ​Notebooksと​VSCode SSH​プラグインを使った​ローカルVSCodeからの​クラウドGPU開発

2023年10月16日

使い​慣れた​ローカルエディタから、​クラウド上の​GPU付きNotebookへ接続する​実践手順。

エンジニアリングGPUVertex AIVS Code

クレジット: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の力を活用したい場合にとても便利です。