DeepMind LabをMacで使ってみる

AlphaGoの開発を行ったDeepMindがAI学習用のプラットフォーム「DeepMind Lab」を公開した。

AlphaGoのDeepmindがAI学習プラットフォーム『Deepmind Lab』をオープンソース化
囲碁の名人に勝利を収めたことで世間の話題をさらったAI『AlphaGo(アルファ碁)』の開発を行ったことで有名なGoogle傘下のAI開発企業「Deepmind」。そのDeepmindが、同社が開発し、使用していたAI学習用のプラットフォーム『Deepmind Lab』をオープンソースとすることを発表した。

ソースコードはGitHubで公開されているので、それを早速使ってみる。

環境

Macを使用し、VagrantでUbuntuを起動した中でDeepMind Labを動かす。

今回の環境は以下の通り

  • macOS Sierra 10.12.1
  • Vagrant 1.8.6
  • Ubuntu 16.04
  • DeepMind Lab, Latest commit 432e063

手順

Vagrantの設定

  1. Vagrantのインストール
  2. boxを指定して起動

$ vagrant init ubuntu/xenial64
$ vagrant up
  1. 仮想マシンの中に入る
$ vagrant up
  • 以降は仮想マシンの中での作業になる

各種依存ライブラリのインストール

公式サイトの説明では簡単にインストールできるように見えるが、実際のインストールには多くの依存ライブラリのインストールが必要になる。

bazelのインストール

$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
$ sudo apt-get update && sudo apt-get install bazel

依存パッケージのインストール

$ sudo apt-get install python-dev -y
$ sudo apt-get install python-numpy-dev -y
$ sudo apt-get install pkg-config -y
$ sudo apt-get install zip -y
$ sudo apt-get install libsdl2-dev -y
$ sudo apt-get install liblua5.1-0-dev -y
$ sudo apt-get install libffi-dev -y
$ sudo apt-get install gettext -y
$ sudo apt-get install libosmesa6-dev -y

DeepMind Labのダウンロード

$ git clone https://github.com/deepmind/lab
$ cd lab/

実行テスト

ここまでで依存するライブラリなどの準備は整った。
しかし、グラフィカルに実行するにはデスクトップ環境が必要になる。
まずはここで一度ヘッドレスで実行して動作の確認を行う

$ bazel run :random_agent --define headless=true -- --length=10000

上記のコマンドを実行し、”Map loaded: ‘demo_map_1′” と表示されれば実行は成功している。
何らかのエラーが発生した場合はここまでの手順を見直す。

デスクトップ環境のインストール

デスクトップ環境でログインするために、ubuntuユーザーのパスワードを変更しておく。

$ sudo passwd ubuntu

ubuntu-desktopをインストールし再起動する。

$ sudo apt-get install ubuntu-desktop  -y
$ sudo shutdown -r now

Vagrantfileを編集し、GUIを有効にする。
ファイルの以下の部分のコメントを外す。ただし、 vb.memory は 1024MB では不足するので、コメントを外さないか、またはコメントアウトしたままにする。

  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true

    # Customize the amount of memory on the VM:
    # vb.memory = "1024"
   end

仮想マシンをリロードする

$ vagrant reload

これでVirtualBoxのウィンドウが開き、デスクトップ画面が表示される。

デスクトップのログイン画面が表示されれば成功

先の手順で設定したubuntuユーザーのパスワードを使い、デスクトップにログインする。

デスクトップ環境でDeepMind Labを実行する

ターミナルを開く

画面左上のボタンを押し、アプリケーションの一覧画面からターミナルを起動する。

左上のボタンを押し”terminal”で検索する

DeepMind Labを実行する

今回はデスクトップ環境で実行するので、ヘッドレスではなく画面を表示して実行する。

$ bazel run :random_agent --define headless=false -- --length=10000 --width=640 --height=480

迷路の中をジタバタする球体が表示されれば成功

次のようなエラーメッセージが表示された場合は正しくデスクトップ環境で実行できていないか、またはグラフィックス用のメモリが不足している可能性がある。

INFO: Running command line: bazel-bin/random_agent '--length=10000' '--width=640' '--height=480'
ERROR: Non-zero return code '3' from command: Process exited with status 3.

これで環境は整ったので、自分のAIをビシビシを鍛えてあげよう。