🛰️

【PyCharm】GCPのTPU/GPU VMでリモートデバッグ実行する方法

2024/06/06に公開

GCPのTPU/GPU VMでリモートデバッグ実行する方法

LLM開発中に、ログだけでは問題を解決できず、ブレークポイントを設定して変数の中身を確認しながらステップ実行したい場合があります。本記事では、PyCharmのリモートインタープリター機能を利用し、SSH経由でPythonコードをリモートデバッグする最も簡単な方法を紹介します。

1. SSHトンネルを作る

TPU/GPU VMにSSHアクセスする際に、同時にSSHトンネルも作ります。
以下の例では、ローカルホストのTCP/10022番ポートにSSHトンネルを作っています。
GPUとTPUで、gcloud CLIのsshコマンドの書式が異なります。

GPU VMの場合
  • 名前:my-gpu-vm
  • ゾーン:us-central1-a
(local)$ gcloud compute ssh my-gpu-vm --zone=us-central1-a -- -L 10022:localhost:22
TPU VMの場合
  • 名前:my-tpu-vm
  • ゾーン:us-central1-a
(local)$ gcloud compute tpus tpu-vm ssh my-tpu-vm --zone=us-central1-a -- -L 10022:localhost:22

2. SSH接続の作成

[設定]-[ツール]-[SSH構成]に、ローカルホスト宛のSSH接続を作成します。

  • ホスト:localhost
  • ポート:10022
  • ユーザ名:hoge
  • 認証タイプ:キーペア
  • 秘密鍵ファイル:/Users/hoge/.ssh/google_compute_engine

ユーザ名は、gcloud CLIのログインユーザーと同一にします。
秘密鍵ファイルは、ユーザーのホームディレクトリにあるキーファイルを指定します。

3. Pythonインタープリターの設定

[設定]-[Pythonインタープリター]-[インタープリターの追加]-[SSH]を選択します。

  • SSH接続:既存
  • SSHサーバー:hoge@localhost:10022

先ほど作成した、SSH接続構成を選択して次へを押します。

Pythonランタイム構成で、Pythonインタープリターと同期フォルダを設定します。

  • ランタイム構成:システムインタープリター
  • 同期フォルダ:/tmp/pycharm_project_xxx

ここでは、TPU/GPU VMにインストール済みのシステムインタープリターを選択しました。

4. デプロイ機能の設定

[設定]-[ビルド、実行、デプロイ]-[デプロイ]に自動的にデプロイ設定が追加されているはずです。
デプロイパスには、先ほど設定した同期フォルダが設定されています。

以上で、リモートデバッグ実行のための設定は完了です。

リモートデバッグ実行の方法

リモートデバッグの実行方法は、画面右下の[現在のインタープリター設定]で、先ほど作成したPythonインタープリターを選択し、デバッグ実行ボタンを押すだけです。(通常のデバッグ実行と同じ)

このように、ブレークポイントで停止してステップ実行が可能になっているはずです。

Discussion