0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Project Bonsai] Bonsaiをローカル環境で使ってみる

Posted at

はじめに

Project Bonsaiについて調べてみましたの4回目です。
過去の内容はこちら。
1回目は「Bonsaiを触ってみる」
2回目は「Bonsaiをいじってみる」
3回目は「BonsaiをBonsaiのシミュレータを触ってみる」

今回は、学習されたBonsaiをローカル環境で使ってみたいと思います。

Bonsaiって何?

Microsoftが提供している自律システム向け機械教示サービスです。(現在はPublic Preview)
産業制御システムに焦点を当てた汎用ディープ強化学習プラットフォームのようです

Bonsaiを使ってみる

学習結果は、Dockerのコンテナとしてパッケージ化して使用することができます。

使用するにあたり、以下のソフトが必要となります。
インストール方法や操作方法は、ここでは説明いたしませんので、個別でお調べください。

学習されたBonsaiを出力する

まずは、学習済みの情報を表示させ、「Train」ページから「Export Brain」をクリックします。
Export

出力するコンテナの形式を指定します。
※例えばRaspberryPi3で動作させたい場合は、arm64(v8)などを指定します。
利用する環境の出力形式が決定したら「Export」ボタンをクリックします。
完了には少し時間がかかります。
Exportウィザード画面

コンテナをダウンロード&実行

Exportが完了すると、左のメニューの「Simulators」の下に、Expoeted Brainsの項目が追加されます。
メニュー
追加された項目の右にある「...」を選択し、メニューから「View deployment instructions」をクリックします。
コマンド表示
ログインから、取得、起動までのコマンドが表示されますので、コピーしてローカル環境で実行します。

コマンドは以下の通りです。


# Azure Container Registryにログイン
az acr login

# イメージのダウンロード
docker pull \
WORKSPACE_NAME.azurecr.io/WORKSPACE_ID/BRAIN_NAME:VERSION-OS_TYPE-ARCHITECTURE

# 起動
docker run              \
  --detach              \
  --publish 5000:5000   \
  --name CONTAINER_NAME \
WORKSPACE_NAME.azurecr.io/WORKSPACE_ID/BRAIN_NAME:VERSION-OS_TYPE-ARCHITECTURE

WORKSPACE_NAME: Bonsaiのワークスペースに付けた名前。
WORKSPACE_ID: Azure によって割り当てられたBonsaiのWokespace ID。
CONTAINER_NAME: ローカルのDocker コンテナー名前。

コピー内容を実行すると、ACRへのログイン、ダウンロード、実行が実行されます。
実行

起動の確認

起動コマンドまで実行出来たら、Bonsaiが起動されているか確認するため、以下のコマンドを実行します。

docker logs -f CONTAINER_NAME

Bonsaiが正常に実行されている場合は、Bosanaiのログが表示されます。
Bonsaiログ

動作の確認

起動させたローカルのBonsaiに対して、RESTにて学習の結果を取得することができます。

以下のURLに対して、学習カリキュラムで指定したSimStateのJSON情報をPOSTすることで、内容に対するSimActionが返却されます。

http://localhost:5000/v1/prediction

ためしに以下に情報を送信してみます。

{
  "cart_position":0,
  "cart_velocity":0,
  "pole_angle":0,
  "pole_angular_velocity":0
}

POST成功
しっかり、SimStateに対するSimAction(command)が返却されています。

ちなみに、pole_angleのパラメータを削除して、実行した場合は、以下のようなエラーとなります。
POST失敗

余談

APIのマニュアルは、http://localhost:5000/v1/doc/index.html で参照することができます。
マニュアル

まとめ

今回は、学習後にBonsaiをどうやって使用していくのか?を中心に調べてみました。
お手軽にできるのはいい感じです。
ただ、学習させたCartpoleを現実環境でテストできる環境がないのが残念なところです。

ここまででBonsaiについて一通り触ることができたので、次(いつになるかわからないけど)は、全部独自で用意してみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?