目次
はじめに
今回は,AWSのGPUインスタンスを用いて強化学習を行う方法をまとめました.
強化学習を行うためのフレームワークはOpenAIGym,Pybulletなど様々なものがありますが,この記事ではNVIDIA製のIsaac Simを使う手法を紹介していきたいと思います!Isaac Simは主にロボット開発などに用いられるフレームワークで,ロボットが強化学習によって歩き出す様子などをリアルタイムで見ることができます.
なぜクラウドなのか
1番の理由はお金です💰.
下がIsaac Simに必要なマシンスペックなのですが,
このクラスのPCを用意するには,最低20万円は用意する必要があります.(あくまで最低基準に準拠した金額です.快適にIsaac Simを動かすためには30~50万円程度はかかると思います)
また,マシン上にPytorchを入れる必要があり,GPUドライバを入れ替えたりと面倒で怖い環境構築を行う必要があります.
クラウド上に環境構築を行えば,
- 従量課金制 → 初期費用を抑えることができる
- 環境構築で失敗したらすぐにやり直すことができる
などのメリットがあります!
AWSでインスタンスを作成する
NVIDIA社が提供しているAMIがあるので,これをEC2を起動する際に指定するだけです.
この際,SSHを行うため,セキュリティグループ上でポート22から自分のIPアドレスが通過できるようにしておいてください.
また,リモートデスクトップにAmazon DCVを使用するため,8443番の開通も必要です.
パスワードの設定
色々な人に勝手にアクセスされると困るので,リモートインスタンス上にパスワードをかけておきます.
ssh -i $"(EC2作成時に使用した鍵の場所)" ubuntu@$"(EC2インスタンスの「接続」→ 「SSH」で記載)"
としてCLI上からインスタンスにアクセスします.
インスタンスにアクセスしたら,
sudo passwd ubuntu
とすると,ユーザ名ubuntuのパスワードを作成することができます.
作成したら,ブラウザ上で https://(public_ip):8443
を打ち込むと,インスタンスにリモートアクセスすることができます.
Isaac Simの起動
起動できたら,ターミナル上で
sudo chown -R ubuntu.root /opt/IsaacSim
cd ~/IsaacSim
./warmup.sh
./isaac-sim.sh
を一つづつ起動しましょう.この際,warmup.shはかなり時間がかかるのと,物理ウインドウが存在しない関係で大量のエラーを吐きますがそれらは全て無視でOKです!
結果
IsaacSimの起動に成功しました!
終わりに
AWSのAMI(Amazon Machine Image)を活用することで、従来の手順に比べて大幅に作業を省略し、効率的に環境構築が行えるとわかりました。AMIを用いることで、初期設定や各種依存関係の導入をあらかじめ済ませた状態から開始できるため、構築作業の再現性と一貫性が向上し、手作業によるミスも抑制されます。今後もこの手法を積極的に取り入れることで、迅速かつ安定したシステム構築が可能になるのではないかと考えています!