【Dockerでワンパン】PokéLLMonを動かしてみる

チュートリアル

PokéLLMonは、ポケモンバトルのゲームにおいて、人間並みのパフォーマンスを実現する最初のLLM(Large Language Model)を体現したエージェントです。この記事では、PokéLLMonを実際に動かすための手順を初心者向けに解説します。Dockerを使用して環境を構築し、ローカルでヒューリスティックボットと対戦する方法までを説明します。


こちらの記事もおすすめ

【日本語訳】PokéLLMon: A Human-Parity Agent for Pokémon Battles with Large Language Models
概要(abstract)我々は、戦術的なバトルゲームにおいて人間並みのパフォーマンスを達成した初のLLM(大規模言語モデル)搭載エージェント、「ポケLLモン」を紹介します。これは、ポケモンバトルで示されています。ポケLLモンの設計は三つの鍵...
AIエージェント達の仮想ソフトウェア開発会社【ChatDev】公式Wikiの日本語版 作ってみた
Quick Start元のWIKIInstall ChatDev(ChatDev のインストール ):設置説明書に記載されているクイックスタートセクション を参照してください。Start building software in one c...

環境構築

まずは、PokéLLMonを動かすための環境を構築することから始めます。Dockerを活用することで、環境依存を最小限に抑えることができます。

Dockerイメージの構築

以下のDockerfileを使用して、必要な環境を構築します。PythonとNode.jsがプリインストールされたイメージをベースにして、PokéLLMonの動作に必要なパッケージをインストールします。

# Python 3.11とNode.js 21を含むイメージをベースに使用
FROM nikolaik/python-nodejs:python3.11-nodejs21

# 必要なツールをインストール
RUN apt-get update && apt-get install -y git curl

# アプリケーションディレクトリを作成
WORKDIR /usr/src/app

# pokemon-showdownリポジトリをクローンし、必要な依存関係をインストール
RUN git clone https://github.com/smogon/pokemon-showdown.git 
WORKDIR /usr/src/app/pokemon-showdown
RUN npm install
RUN cp config/config-example.js config/config.js

# PokéLLMon環境の依存関係をインストール
COPY requirements.txt .
RUN pip install -r requirements.txt

# アプリケーションがリッスンするポートを指定
EXPOSE 8000
# アプリケーションを起動するコマンド
CMD [ "node", "pokemon-showdown", "start", "--no-security" ]

Docker Composeを使用したサービスの起動

次に、docker-compose.ymlファイルを使用して、サービスを定義します。このファイルを通じて、ポートの設定や環境変数の指定を行います。

version: '3'

services:
  pokemon-showdown:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8000:8000"
    volumes:
      - .:/usr/src/app/PokeLLMon
    tty: true
    env_file:
      - .env

OpenAI APIの設定

GPT-4 APIを https://platform.openai.com/account/api-keys から取得します。

プレイヤーの設定

https://play.pokemonshowdown.com/ でアカウントに登録し、パスワードを取得します。

アカウント登録方法はこちら👇

Pokemon Showdown!の使い方について - メガミミロップ使いの気ままなドイツ生活
この記事はPokemon Showdonw!の使い方について、初心者の方になるべく分かりやすく説明するものになります。 今でこそ結構いろんなサイトがやり方解説してますが僕が始めた当初は載ってるサイトが少なくてかなり苦労した記憶があります... **目次** そもそもShowdown!とは? 実際に使ってみよう パーティ...

環境変数の設定

.envファイルには、PokéLLMonを動かすために必要な環境変数を設定します。

USERNAME=XXXX
PASSWORD=YYYY
OPENAI_API_KEY=sk-ZZZZ

これらの環境変数は、PokéLLMonを実行する際に、ユーザー認証やOpenAIのAPIを使用するために必要です。

PokéLLMonの起動と対戦

環境構築が完了したら、PokéLLMonを起動し、ポケモンバトルを楽しむことができます。

コンテナの起動

以下のコマンドを実行して、Dockerコンテナをビルドし、起動します。

docker-compose up --build

コンテナ内での操作

コンテナが起動したら、以下のコマンドでコンテナ内に移動します。

docker-compose exec pokemon-showdown /bin/bash

PokeLLMonのフォルダに移動します

root@0efdf8c76f75:/usr/src/app/pokemon-showdown# cd ../PokeLLMon/
root@0efdf8c76f75:/usr/src/app/PokeLLMon#

ヒューリスティックボットとの対戦

最後に、以下のコマンドを実行して、ローカルでヒューリスティックボットと対戦します。この時、あなたのユーザー名とパスワードを入力する必要があります。

python vs_bot.py

バトルの可視化

下記の場所にHTMLがあるので、それを開きましょう。
PokeLLMon\battle_log\pokellmon_vs_ladder_player\win

file

バトル動画

まとめ

これで、PokéLLMonを使用してポケモンバトルを楽しむ準備が整いました。
ポケモンバトルで勝利を目指して、頑張ってください!

Docker調整済みリポジトリ

GitHub - Sunwood-ai-labs/PokeLLMon: PokéLLMon: A Human-Parity Agent for Pokémon Battles with Large Language Models
PokéLLMon: A Human-Parity Agent for Pokémon Battles with Large Language Models - GitHub - Sunwood-ai-labs/PokeLLMon: PokéLLMon: A Human-Parity Agent for Pokémon...

コメント

タイトルとURLをコピーしました