2026年1月21日水曜日

VS codeとgithub copilot chatで環境構築を楽にしようとするもGPUクラウドのセキュリティに阻まれる

昨年12月からVS Codeを使い始めて最も評価している点は、プロトタイピングの効率性だ。プロトタイピングにおける最大の関門は計算環境の構築である。初めて触れるフレームワークやライブラリのインストールは手間がかかり、ソフトウェアのバージョン競合が発生すれば、その解決のために多大な時間と労力を費やすことになる。

この煩雑な作業を劇的に効率化してくれるのが、VS Code上で動作するGitHub Copilot Chatだ。例えばアルゴリズムの高速化を依頼すると、PythonのコードをC++へ書き換えるだけでなく、GPU対応ライブラリの選定から動作環境の構築までを代行してくれる。ビルド時にエラーが発生しても、ターミナル出力やログを解析してバグを特定してくれる。論理的なバグは人間でも対処できるが、不慣れなソフトウェアのバージョン依存によるエラーは、AIのサポートなしには解決が難しい。

この利便性に慣れると他の環境へは戻れなくなる。しかし大規模計算のためにA100を8基搭載したGPUクラウドへ移行した際、同様のワークフローを実現する上で課題に直面した。GPUクラウドは一般的にログインノードと計算ノードに分かれており、Slurm経由で計算ノードを確保し、その内部でSingularityやDockerコンテナを運用する構成をとる。VS Codeのリモート開発機能は、SSHやMicrosoftのトンネル経由でサーバーと通信する仕組みだが、セキュリティ上の制約により、コンテナ内部と直接通信することができなかった。

管理者へ個別にセキュリティ設定変更を依頼することも可能だが、セキュリティを甘くすることになるのでそれはしたくない。結果として、現在はコンテナ内のログファイルをGitHub Copilot Chatに読み込ませてアドバイスを受けたり、コンテナのビルドスクリプトを更新させたりする運用に留まっている。この方法ではインタラクティブ性が損なわれるため、試行錯誤を繰り返すプロトタイピングには向かない。アルゴリズム確定後のバッチ処理であれば問題ないが、開発初期段階は手元のローカルマシンで行い、大規模な計算実行時のみクラウドを利用するのが最適解といえる。この運用ではローカル側にもクラウドと互換性のあるGPUを搭載する必要があり、その機材準備が新たな手間となっている。

GPUカードを買うのが面倒なので、インタラクティブ性には劣るもののGPUクラウドで開発している。計算時間契約ではなく、1ヶ月いくらで借りているので使わなくては損だ。ログインノードでVS code serverを動かして、GitHub Copilot Chatにコンテナビルドスクリプトを書かせて計算ノードでビルドとテストを行う。エラーが出たらログをCopilot Chatに食わせて修正する。今はローカル開発の1割程度の効率しか出てないが、エラーが減ってきてビルド時間より計算時間の方が長くなってくれば、この効率はよくなる。ビルド中は他のことして遊んでいるので、それほど嫌ではない。

Copilot Chatはモデルを選べて、無料のGPT-4、有料のGPT-5、さらに高価なclaude-4.5が使える。値段の順に有能になる。無限に使えるならclaude-4.5で全て済ませたいが、今のCopilotの契約だと1週間くらいclaude-4.5を使うと1ヶ月分のCopilotの資源を使い切ってしまう。回復するのは次の月の一日だ。そうなると月末まであまり賢くないGPT-4で仕事をしなくてはならない。そこで、GPT-4/5でできそうな仕事はなるべくそいつらにやらせて、claude-4.5はここぞというところだけに使うようにしている。claude-4.5を無限に使える契約に変えた方が効率を考えると経済的に賢い気はする。

0 件のコメント:

コメントを投稿