【日本語訳】PokéLLMon: A Human-Parity Agent for Pokémon Battles with Large Language Models

## 概要（abstract）

我々は、戦術的なバトルゲームにおいて人間並みのパフォーマンスを達成した初のLLM（大規模言語モデル）搭載エージェント、「ポケLLモン」を紹介します。これは、ポケモンバトルで示されています。ポケLLモンの設計は三つの鍵となる戦略を取り入れています。

---

こちらの記事もおすすめ

https://hamaruki.com/japanese-version-of-the-wiki-of-ai-agents-virtual-software-development-company-chatdev/

https://hamaruki.com/i-tried-running-chatdev-with-local-llm-that-supports-japanese-lmstudio/

### 三つの鍵となる戦略

#### インコンテキスト強化学習：
バトルから得られたテキストベースのフィードバックを即時に活用し、ポリシー（方針）を反復的に洗練させる。

#### 知識拡張生成：
外部知識を取得して幻覚を防ぎ、エージェントがタイムリーかつ適切に行動できるようにする。

#### 一貫した行動生成：
エージェントが強力な対戦相手に直面し、戦いを避けたいと思ったときに発生する「パニックスイッチング」現象を軽減する。

### 結果
オンラインバトルでの人間との対戦は、ポケLLモンが人間らしいバトル戦略とタイミング良い意思決定を行うことを示しています。これにより、ラダーコンペティションでは勝率49％、招待バトルでは勝率56％を達成しています。

### 実装とプレイ可能なバトルログ
実装とプレイ可能なバトルログは、以下のURLで利用可能です

https://github.com/git-disl/PokeLLMon

## 導入（Introduction）

生成型AI（Generative AI）と大規模言語モデル（Large Language Models、LLM）は、自然言語処理（NLP）のタスクで前例のない成功を達成しています（Ouyang et al., 2022; Brown et al., 2020; Xi et al., 2023; Wang et al., 2023b）。これからの進歩の一つに、LLMがテキストから行動へと生成の範囲を広げ、物理的な世界で自律的に行動する方法を探ることがあります。これは人工汎用知能（Artificial General Intelligence、AGI）の追求において重要なパラダイムを代表しています（Goertzel & Pennachin, 2007; Goertzel, 2014）。

### ゲームを使った実験（Games as Experiments）

ゲームは、人間の行動に似せた方法で仮想環境と相互作用するLLM搭載エージェントを開発するのに適した実験場です（Duan et al., 2022; Batra et al., 2020）。例えば、「Generative Agents」（Park et al., 2023）は、LLMが「The Sims」風のサンドボックス環境で様々な役割を引き受け、人間の行動や社会的相互作用を模倣する社会実験を行っています。また、「Minecraft」では、意思決定を行うエージェント（Wang et al., 2023a;c; Singh et al., 2023）が世界を探索し、課題を解決したり、新しいスキルやツールを開発するために設計されています。

これらの進歩は、LLMがどのようにしてより複雑なタスクや環境で自律的に行動できるようになるかを理解するための基盤を築いています。ゲームを使用することで、研究者は人間のような行動や社会的相互作用を模倣するエージェントの開発における課題と機会を探ることができます。


### 戦術的バトルゲーム（Tactical Battle Games）

既存のゲームと比較して、戦術的バトルゲーム（Ma et al., 2023）は、LLMのゲームプレイ能力を評価するのに適しています。勝率が直接測定可能で、AIや人間のプレイヤーなど常に一貫した対戦相手がいるためです。

### ポケモンバトルの利点（Advantages of Pokemon Battles）

ポケモンバトルは、トレーナーの戦闘能力を評価するメカニズムとして機能し、LLMが戦術的バトルゲームをプレイする最初の試みとしていくつかのユニークな利点を提供します。

#### 状態と行動の空間（State and Action Spaces）

状態と行動の空間は離散的で、損失なくテキストに変換できます。ポケモンバトルでは、各ターンにプレイヤーが現在のポケモンの状態に基づいて行動を生成するよう求められます。行動空間には4つの動きと、切り替え可能な5匹のポケモンが含まれます。

#### ターン制フォーマット（Turn-based Format）

ターン制フォーマットは、集中的なゲームプレイの要求をなくし、LLMの推論時間コストに対するストレスを軽減します。これにより、パフォーマンスはLLMの推論能力のみに依存するようになります。

#### 戦略性と複雑さ（Strategic Complexity）

ポケモンバトルは、そのシンプルなメカニズムにもかかわらず、戦略的かつ複雑です。経験豊富なプレイヤーは、フィールド上およびオフのすべてのポケモンの種族/タイプ/能力/ステータス/アイテム/技など、様々な要因を考慮に入れます。ランダムバトルでは、1,000を超える候補プールからランダムに選ばれた各ポケモンが独自の特徴を持っており、プレイヤーにポケモンの知識と推論能力の両方を要求します。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707186940081.png)
>プレイヤーが各ターンでどの行動を行うかを決定する必要がある



### 研究範囲と貢献（Scope and Contributions）

この論文の目的は、人間のプレイヤーがポケモンバトルで行動する方法を模倣する大規模言語モデル（LLM）搭載エージェントを開発することです。目標は、LLM搭載エージェントが優れたプレイヤーとなるための重要な要因を探究し、人間のプレイヤーとのバトルにおけるその強みと弱みを検証することです。

#### 自律的なゲームプレイ（Autonomous Game Play）

LLMが自律的にゲームをプレイできるようにするため、バトルの状態をテキストの説明に変換し、生成された行動をサーバーに送り返す環境を実装しました。既存のLLMを評価することで、幻覚（hallucination）とパニックスイッチング（panic switching）という現象が存在することを特定しました。

#### 幻覚（Hallucination）

エージェントは、タイプの不利なポケモンを誤って送り出したり、効果のない技を相手に対して繰り返し使うことがあります。その結果、最も進んだLLMであるGPT-4は、ヒューリスティックボットに対して26％の勝率を達成していますが、これは人間のプレイヤーの60％の勝率と比較されます。幻覚に対処するために、以下の二つの戦略を導入しました：

##### 文脈内強化学習（In-context reinforcement learning）：
バトルから直接派生したテキストベースのフィードバックをエージェントに提供し、新しい形の「報酬」として行動生成ポリシーを反復的に洗練する。

##### 知識拡張生成（Knowledge-augmented generation）：
エージェントにポケモン図鑑（Pokedex）を装備し、ポケモンゲームで提供される外部知識、例えばタイプの有利関係や技/能力の説明を与え、知らないポケモンの情報を探す人間のプレイヤーをシミュレートします。

#### パニックスイッチング（Panic Switching）

エージェントが強力なポケモンに遭遇すると、戦いを避けるために連続ターンで異なるポケモンを切り替えるなど、一貫性のない行動を生成する傾向があります。この現象は、特に「Chain-of-Thought」推論を使用した場合に顕著です。一貫した行動生成は、過度に考えすぎることなく最も一貫した行動を選出することで問題を軽減します。この観察は、ストレスがかかる状況での人間の行動を反映しており、考えすぎや困難の誇張がパニックを引き起こし、行動の妨げになることがあります。

### オンラインバトル（Online Battles）

POKE´LLMONは、ヒューマンコンペティティブなバトル能力を示し、オンラインでのランダーバトルで49%、招待バトルで56%の勝率を達成。
人間のプレイヤーの消耗戦略や欺瞞的なトリックに対する脆弱性も明らかに。

### まとめ（Summary）

LLMが自律的にポケモンバトルをプレイできる環境を実装し、リリース。
文脈内強化学習を提案し、幻覚に対抗するための知識拡張生成を導入。
強力な相手に直面した時のエージェントのパニックを発見し、一貫した行動生成がこの問題を緩和できることを発見。
POKE´LLMONは、戦術的バトルゲームにおける人間並みのパフォーマンスを持つ最初のLLM搭載エージェントであると考えられる。


## LLMをゲームプレイヤーとして（LLMs as Game Players）

### コミュニケーションゲーム (Communicative Games)
コミュニケーションゲームは、プレイヤー間のコミュニケーション、推理、時には欺瞞に回るゲームです。既存の研究では、LLM（Large Language Models、大規模言語モデル）が「ウェアウルフ（Werewolf）」「アヴァランチ（Avalane）」「第二次世界大戦（World War II）」「外交戦略（Diplomacy）」といったボードゲームで戦略的な振る舞いを示すことが確認されています。

### オープンエンドゲーム (Open-ended Games)
オープンエンドゲームは、プレイヤーがゲームの世界を自由に探索し、他者と交流することを可能にします。Generative Agentは、LLMが搭載されたエージェントが人間らしい行動や社会的交流を展開することを示しています。MineCraftでは、Voyagerがカリキュラムメカニズムを用いて世界を探索し、タスク解決のためのコードを生成・実行します。DEPSは「Describe, Explain, Plan and Select」のアプローチを提案し、70以上のタスクを達成します。AutoGPTやMetaGPTなどの計画ベースのフレームワークも探索タスクに利用できます。

### 戦術バトルゲーム (Tactic Battle Games)
ゲームの種類の中でも、戦術バトルゲームは、勝率が直接測定でき、常に一貫した対戦相手がいるため、LLMのゲームプレイ能力をベンチマークするのに特に適しています。最近では、LLMを使ってStarCraft IIで内蔵AIと対戦し、テキストベースのインターフェースと要約チェーンのアプローチを使用しています。比較すると、POKE´LLMONにはいくつかの利点があります：
- (1) ポケモンバトルの状態をテキストに翻訳することは損失がない
- (2) ターンベースの形式はLLMの推論時間のコストを考慮してリアルタイムのストレスを排除します
- (3) 規律正しい人間のプレイヤーとの戦いは難易度を新たな高みに引き上げます

## 背景（Background）

### ポケモン (Pokemon)
ポケモンとは、それぞれ独自の能力、タイプ、ステータス（stats）、戦闘技（battle moves）を持つ、1000種類以上の生き物です。図2では、代表的なポケモンである「リザードン（Charizard）」と「フシギバナ（Venusaur）」が示されています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707215724928.png)

>代表的な2匹のポケモン：「リザードン（Charizard）」と「フシギバナ（Venusaur）」。それぞれのポケモンはタイプ、能力、ステータス、4つのバトル技を持っています。

#### タイプ (Type)
各ポケモン種には最大で2つの属性タイプがあり、それによって長所と短所が決まります。図3では、18種類の攻撃タイプと受けるポケモンの有利・不利関係が示されています。例えば、「リザードン」の「ファイアブラスト」のような火タイプの技は、「フシギバナ」のような草タイプのポケモンに倍のダメージを与えることができますが、リザードン自身は水タイプの技に弱いです。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707215714027.png)
>タイプの有利・不利の関係。

#### ステータス (Stats)
ステータスはポケモンが戦闘でどの程度の性能を発揮するかを決定します。4つのステータスがあります：(1) ヒットポイント（HP）: ポケモンが戦闘不能になるまでに耐えるダメージ量、(2) 攻撃（Atk）: 攻撃技の強さに影響、(3) 防御（Def）: 攻撃に対する抵抗力、(4) スピード（Spe）: 戦闘での行動順序を決定します。

#### 能力 (Ability)
能力は戦闘に影響を及ぼす受動的な効果です。例えば、「リザードン」の能力「もうか（Blaze）」は、HPが少なくなったときに火タイプの技を強化します。

#### 技 (Move)
ポケモンは4つの戦闘技を覚えることができ、攻撃技または状態技に分類されます。攻撃技は瞬間的にダメージを与え、威力と命中率があり、特定のタイプに関連しています。これはしばしばポケモンのタイプと関連があるものの、必ずしも一致するわけではありません。状態技は瞬間的にダメージを与えるわけではないですが、ステータスの変更、回復や保護など、様々な方法で戦闘に影響を与えます。全体で919種類の技があり、それぞれに独特の効果があります。


### 戦闘のルール (Battle Rule) 

一対一のランダムバトル（Wikipedia, 2023）では、それぞれがランダムに選ばれた6匹のポケモン（Pokemon）を持つ2人のバトラーが対戦します。

#### 戦闘の始まり (Beginning of the Battle) 

- **ランダムバトル** : プレイヤーはそれぞれランダムに選ばれた6匹のポケモンを持ちます。 
- **フィールドに送る** : 各プレイヤーは最初に1匹のポケモンを戦場に送ります。

#### 戦闘の目的 (Objective of the Battle) 
- **ポケモンを気絶させる** : 相手のポケモンのHPを0にしてすべて気絶させます。 
- **自分のポケモンを守る** : 少なくとも1匹のポケモンが気絶しないようにします。

#### ターン制の戦闘 (Turn-based Battle) 
- **ターンの開始** : 各ターンの始めに、プレイヤーは行動を選びます。 
- **行動の選択肢** : 
1. **技を使う (Taking a move)** : 攻撃や状態変化の技を使用します。 
2. **ポケモンを交代する (Switching Pokemon)** : 戦闘中のポケモンを別のポケモンに交代します。

#### 戦闘の更新 (Updating the Battle) 
- **行動の実行** : 戦闘エンジンがプレイヤーの選んだ行動を実行します。 
- **次のステップへ** : 戦闘状態が更新され、次のターンに移ります。

#### ポケモンが気絶した場合 (When a Pokemon Faints) 
- **強制交代** : ポケモンが気絶すると、他に気絶していないポケモンがいれば、戦闘エンジンにより強制的に交代させられます。 
- **プレイヤーの選択** : 強制交代後も、プレイヤーは新しい技を選んだり、さらに別のポケモンに交代することができます。---

## 戦闘の環境（Battle Environment）

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707182962428.png)

>このフレームワークは、LLMsが人間のプレイヤーとバトルすることを可能にします。バトルサーバーからのメッセージを解析し、歴史的なターンログを入力として取り、次のステップのための行動を生成します。この行動は、対戦相手のプレイヤーが選択した行動と共にバトルサーバーで実行されます。

### バトルエンジン (Battle Engine)

この環境は「ポケモンショーダウン」(Pokémon Showdown) というバトルエンジンサーバーと対話します。これは、人間のプレイヤーのためのウェブベースのグラフィカルユーザーインターフェイス（GUI）や、定義された形式のメッセージでやりとりするウェブAPIを提供します。

### バトル環境 (Battle Environment)

私たちは、大型言語モデル（LLMs）が自律的にポケモンバトルを行う環境を「サホビック2023a」(Sahovic, 2023a)を基に実装しました。図4は、このフレームワーク全体がどのように動作するかを示しています。サーバーからのアクション要求メッセージを受け取り、前回のターンからの実行結果を含んでいます。環境はまずメッセージを解析し、ローカルの状態変数を更新してから、以下の4つの部分からなるテキストの説明に変換します。 
1. 自チーム (Own Team) 情報
- フィールド上にいるポケモンとフィールド外にいるポケモンの属性を含む。 
2. 相手チーム (Opponent Team) 情報
- フィールド上およびフィールド外の対戦ポケモンの属性を含む（一部は不明）。 
3. バトルフィールド (Battle Field) 情報
- 天候 (Weather)、エントリーハザード (Entry hazard)、地形 (Terrain) などの情報。 
4. 歴史的ターンログ (Historical Turn Log) 情報
- 両チームのポケモンの過去の行動を含む。

LLMsは、これらの状態記述と歴史的なターンログを入力として取り、次のステップのための行動を生成します。その行動はバトルサーバーに送信され、人間のプレイヤーが選択した行動と並行して実行されます。---


## ポケモンバトルの評価（Preliminary Evaluation）

ポケモンバトルにおける挑戦と問題点を理解するために、既存の人工知能モデル、GPT-3.5（オウヤンら、2022）、GPT-4（アチャムら、2023）、LLaMA-2（トゥロンら、2023）の能力を評価しました。

### 対人バトル（Pokemon Battles）

人工知能モデルを人間のプレイヤーと直接対戦させるのは、人間が考える時間が必要なため時間がかかります（平均して1バトルに4分）。時間節約のため、まずはヒューリスティックボット（サホヴィッチ、2023b）を使って人間のプレイヤーとランダーコンペティションで対戦させ、その後、人工知能モデルとボットとのベンチマークを行いました。このボットは、ポケモンのステータス強化、エントリーハザードの設置、ポケモンのステータス、技の威力、タイプの有利・不利を考慮した最適な行動を選択するようにプログラムされています。

### 統計結果（Statistic Results）

統計結果は「Table 1（表1）」に示されており、バトルスコアはバトル終了時の相手のポケモンの倒れた数とプレイヤーのポケモンの倒れていない数の合計として定義されています。その結果、相手プレイヤーのバトルスコアは、プレイヤーのバトルスコアから12を引いた数になります。「Random（ランダム）」はランダムにアクションを生成する単純な戦略で、「MaxPower（マックスパワー）」は最も威力の高い技を選択します。GPT-3.5とLLaMA-2はランダムよりわずかに優れているだけであり、GPT-4もボットには勝てませんでした。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707183542650.png)
>ボットとの戦いにおけるLLMのパフォーマンス

### LLMsのプレイ分析（LLMs Play Analysis）

人工知能モデルがバトルを行い、その行動に伴う説明を分析することにより、ホールサネーション（幻覚）の発生を特定しました（ラウテら、2023；カベロら、2023）。人工知能モデルは存在しないタイプの有利関係を主張したり、さらに悪いことには、タイプの有利関係を逆にしてしまうことがあります。例えば、草タイプのポケモンを火タイプのポケモンに対峙させるなどです。ポケモンバトルにおいてタイプの有利・不利を正しく理解することは非常に重要で、有利なタイプのポケモンを選択することで、より多くのダメージを与え、少ないダメージを受ける結果となります。

---

### 幻覚テスト（Test of Hallucination）

人工知能モデル（LLMs）の出力における幻覚現象を評価するために、タイプの有利・不利を予測するタスクを構築しました。このタスクでは、あるタイプの攻撃が特定のタイプのポケモンに対して、A. 大ダメージ（2倍のダメージ）、B. 標準ダメージ（1倍のダメージ）、C. 小ダメージ（0.5倍のダメージ）、またはD. 無効（0倍のダメージ）のどれに該当するかをLLMsに判断させます。テストのペアは324組（18×18）で構成され、これは図3に基づいています。

#### 混同行列（Confusion Matrices）

「Table 2（表2）」には、3つの人工知能モデルの混同行列が示されており、その性能は「Table 1（表1）」の勝率と高い関連性があります。LLaMA-2とGPT-3.5は深刻な幻覚問題に苦しみ、GPT-4が84.0%の精度で最高の性能を達成していますが、無効な行動を頻繁に行うことが観察されます。これは、一回のバトルでLLMsが相手のポケモンのタイプと自分のポケモンのタイプ、さらに技のタイプを比較する必要があるためです。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707183850809.png)
>タイプ・アドバンテージ予測のためのコンフュージョン・マトリックス。


## POKE´LLMON

### 概要（Overview）

PokéLLMonの全体的な枠組みは図5に描かれています。PokéLLMonは、過去の行動とそれに関連するテキストベースのフィードバックを使い、ポリシーを段階的に改善していきます。さらに、現在の状態に、タイプの優劣や技の効果などの外部知識を追加します。これらの情報をもとに、PokéLLMonはいくつかの行動を自ら生成し、その中から最も適したものを実行するための最終的な選択を行います。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707186883640.png)
>PokéLLMonには三つの戦略が備わっています。

1. **インコンテキスト強化学習 (In-Context RL)** ：バトルからの直接のフィードバックを利用して、反復的に改善していきます。 
2. **知識拡張生成 (Knowledge-Augmented Generation)** ：外部からの知識を取り入れ、想像力を制御し、適切でタイムリーな行動をとるためです。 
3. **一貫したアクション生成 (Consistent Action Generation)** ：急な切り替えによる混乱を避けるためのものです。

### 文脈内強化学習（In-Context Reinforcement Learning, ICRL）

ポケモンのバトルでは、プレイヤーは現在の状態だけでなく、過去の行動から得られるフィードバック（例えば、攻撃によるポケモンのHPの変化）も考慮して次の行動を決定します。AIエージェントがこのフィードバックを受け取らずに同じ攻撃を繰り返すと、ポケモンの特性「ドライスキン（Dry Skin）」のように、特定の攻撃を無効化する能力を持つ相手に対して無駄な行動を取ってしまいます。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707186857013.png)

>エージェントが「クラブハンマー」を繰り返し使っていますが、相手の「ドクロッグ」は「ドライスキン」の能力のため、攻撃が全く効いていません。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707186869188.png)

>3ターン目にエージェントが「サイコショック（Psyshock）」を使用しましたが、これも効果がありませんでした。ICRLを用いると、エージェントは別のポケモンに交代します。

#### 問題点
AIは「ドライスキン」を理解していないため、水タイプの「クラブハンマー（Crabhammer）」攻撃を無効にされても、同じ攻撃を繰り返し、敗北につながることがあります。

#### 解決策
文脈内強化学習は、戦闘アニメーション中に表示される「免疫（Immune）」といったメッセージなどのテキストベースのフィードバックを考慮に入れ、ポリシーを改善します。これにより、AIは過去のターンからのフィードバックを活用し、リアルタイムで行動を変更することができます。

#### フィードバックの種類

1. HPの変化 - 攻撃による実際のダメージを反映します。
2. 攻撃の効果 - 攻撃が「効果抜群（super-effective）」か「無効（immune）」などを示します。
3. 技の優先度 - 相手ポケモンのスピードに関するおおよその情報を提供します。
4. 攻撃の実際の効果 - 状態異常やHP回復など、さまざまな結果を生み出します。

#### ICRLの成績

ICRLを採用したことで、勝率が10%向上し、バトルスコアが12.9%改善されました。AIは前のターンの行動が期待に沿わなかった場合、行動を変更するようになります。
![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707185483434.png)


### 知識拡張生成 (KAG)

>（Knowledge-Augmented Generation (KAG)）

AIが誤った情報（幻覚）を生成することを抑制する手法として、ICRLという方法があります。しかし、ICRLでは完全には誤情報を防げないため、場合によっては重大な結果を招く可能性があります。

#### ポケモンバトルの例
ポケモンの戦いで考えてみましょう。草タイプのポケモンを火タイプのポケモンに対して使うと、草タイプは不利で、ほぼ間違いなく1ターンで負けてしまいます。AIがこれを悪い選択と理解する前に、すでに戦いは終わってしまっているのです。

#### リトリーバル拡張生成

このような問題をさらに減らすために、リトリーバル拡張生成という方法が提案されています。これは、Lewis et al. (2020), Guu et al. (2020), Patil et al. (2023)によって研究されており、外部の知識を活用してAIの生成する情報を改善します。


#### タイプ相性（Type advantage/weakness relationship）

ポケモンのタイプには、それぞれ相性があります。例えば、「リザードン（Charizard）」は草タイプのポケモンに強いですが、水タイプの技には弱いです。このようなタイプ間の有利・不利関係をゲーム内で自動で判断できるように、具体的な記述を加えました。

#### 技・特性の効果（Move/ability effect）

ポケモンの技や特性には様々な効果がありますが、これらを全て記憶するのは難しいです。例えば、「りゅうのまい（Dragon Dance）」は使用者の攻撃力と速さを上げる効果がありますが、「ミスト（Haze）」はそれらの変化をリセットする効果があります。攻撃技にもダメージ以外の追加効果があることがあります。

これらの技と特性の効果を「Bulbapedia」から集め、ポケモン図鑑にまとめました。戦場に出るポケモンごとに、これらの効果が図鑑から取得され、状態の説明に追加されます。

#### 知識の統合と実践（Integrating Knowledge and Practice）

知識を統合することで、エージェントは人間に近いレベルで戦えるようになります。例えば、「カギコマ（Klefki）」は鋼タイプで、「サイドン（Rhydon）」の地面タイプの技に弱いです。普通なら他のポケモンに交代するところですが、エージェントは「でんじふゆう（Magnet Rise）」という技を使い、5ターンの間、地面タイプの技から身を守ります。これにより、相手の「じしん（Earthquake）」という技は無効になります。

#### 戦闘データの分析（Analyzing Combat Data）

表4では、さまざまな知識を取り入れたエージェントの戦績が示されています。タイプ相性の知識（KAG[Type]）を使うと勝率が36%から55%に向上し、技や特性の効果の説明（KAG[Effect]）も勝率を4ポイント向上させます。両方を組み合わせることで、KAGは人間のプレイヤーに近い58%の勝率を達成しています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707186728209.png)

#### 戦闘の例（Example of Combat）

図8は、エージェントが知識を活用している様子を示しています。地面タイプの攻撃に弱い「カギコマ」が、「サイドン」の「じしん」を無効化するために「でんじふゆう」を使用しています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707186748286.png)
>エージェントは技の効果を理解し、適切に使用しています。カギコマはサイドンの地面タイプの攻撃に弱点を持っています。しかし交代する代わりに、エージェントは「でんじふゆう」という技を使います。これは自分を5ターンの間、地面タイプの攻撃から守るもので、相手のサイドンが放つ地面タイプの攻撃「じしん」を無効にします。

---

### 一貫した行動生成 (Consistent Action Generation)

既存の研究（Wei et al., 2022; Yao et al., 2022; Shinn et al., 2023; Bommasani et al., 2021; Hu et al., 2023）は、推論とプロンプティングが、複雑なタスクを解決する際の言語モデル（LLMs）の能力を向上させることを示しています。一回限りの行動を生成するのではなく、私たちは既存のプロンプティングアプローチの評価を行います。これには、思考連鎖 (Chain-of-Thought (CoT))、自己一貫性 (Self-Consistency (SC))、そして木構造思考 (Tree-of-Thought (ToT)) が含まれます。CoTでは、エージェントは現在の戦況を分析する思考を初期に生成し、その思考に基づいた行動を出力します。SCでは、エージェントは行動の選択肢を3回生成し、最も投票された答えを結果として選びます。ToTでは、エージェントは3つの行動オプションを生成し、自ら評価した最良のものを選びます。

#### プロンプティングアプローチの性能 (Performance of prompting approaches)

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707187274226.png)

表5には、ボットに対する戦闘でのプロンプティングアプローチの比較結果が示されています。プレイヤー別に勝率、スコア、ターン数、戦闘数が記されています。人間プレイヤーの勝率は59.84%、スコアは6.75、ターン数は18.74で、戦闘数は254です。他のアプローチでは、CoTの勝率が54.00%、SCが64.00%、ToTが60.00%となっており、SCが人間プレイヤーの勝率を上回っています。

#### 結果の比較と分析 (presents the comparison results)

表5は、元のプロンプト生成と3つのアルゴリズムの比較結果を提示しています。特に、CoTは勝率で6ポイントの低下をもたらし、パフォーマンスが低下しました。一方で、SCは人間のプレイヤーよりも高い勝率でパフォーマンスが向上しています。これらの観察結果の背後にある理由を理解することに、私たちはより大きな関心を持っています。---


### 単一行動の意味 ( Consistent Action Generation)

第3.2節で紹介されたように、エージェントは各ターンで1つの行動を取ることができます。これは、エージェントがポケモンを交代させる選択をしても、相手が攻撃を選んだ場合、交代で出てきたポケモンがダメージを受けることを意味します。通常、交代はエージェントが戦いから離れたポケモンのタイプの利点を活かそうと決定した時に起こり、交代で入ってくるポケモンは通常、相手のポケモンの技に耐性を持っているため、受けるダメージは持続可能です。しかし、CoT（Chain-of-Thought）推論を持つエージェントが強力な相手ポケモンに直面すると、連続して異なるポケモンに交代することで行動が一貫性を欠くようになります。これを「panic switching（パニック交代）」と呼びます。パニック交代は、行動の機会を無駄にし、敗北につながることがあります。

#### パニック交代の例 (panic switching)

図9には、第8ターンからエージェントが連続して3ターンにわたり異なるポケモンに交代し続ける例が示されています。これにより、相手のポケモンは自由に攻撃力を4倍にまで上げ、エージェントのチームを迅速に打ち負かす機会を得ています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707194735084.png)

>図9は、強力なポケモンに直面した時のエージェントの行動を示しています。CoTを持つエージェントは戦闘を避けるために、3ターン連続で異なるポケモンに交代します。これにより相手には自由に能力を上げるターンが与えられ、エージェントのチームを素早く打ち負かすことができます。

---

#### パニック交代の統計分析 (Table 6. Statistic analysis of panic switching)

表6は、パニック交代に関する統計的な分析を示しています。プレイヤーごとの勝率、交代率、CS1（Continuous Switch 1）率、CS2（Continuous Switch 2）率が記されています。CS1率は最後のターンが交代だったアクティブ交代の割合を、CS2率は最後の2ターンのうち少なくとも1回が交代だったアクティブ交代の割合を表しています。CS1率が高いほど、生成の一貫性が低くなることを意味します。明らかに、CoTは連続交代率を大幅に増加させる一方で、SCは連続交代率を減少させます。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707194882313.png)

#### CoTによる思考の検討 (Upon examining the thoughts generated by CoT)
CoTによって生成された思考を検討すると、パニック感情を含んでいることがわかります。エージェントは相手ポケモンの強さと現在のポケモンの弱点を説明し、最終的に2回の交代で対応しようとしています。これは、単一の攻撃でダブルブレードを倒す可能性がある重大な脅威をもたらします。ダブルブレードは遅く、倒されやすいため、「私はエンテイに交代する必要がある...」と判断します。パニック思考に基づく行動生成は、攻撃の代わりにポケモンを連続して交代させることにつながります。一方、SCは独立して複数回の行動を生成し、図5で示されるように最も一貫性のある行動を選出することにより、連続交代の割合を減少させます。これは、人間がストレス状況下で過剰に考え、行動する能力が麻痺することを反映しており、さらに悪い状況に陥ることにつながります。


## オンラインバトル (Online Battle)
ポケエルモン (POKÉLLMON) の人間に対するバトル能力をテストするために、ポケモンショーダウンで第8世代のバトルを設定し、エージェントはランダムな人間のプレイヤーと2024年1月25日から1月26日までのラダー (Ladder) コンペティションで対戦しました。さらに、15年以上のポケモンゲーム経験を持つ人間のプレイヤーを招待し、平均的な人間のプレイヤーの能力を代表してポケエルモンと対戦させました。

### 人間のプレイヤーとのバトル (Battle Against Human Players)
表7は、ポケエルモンと人間のプレイヤーとの対戦成績を示しています。ラダープレイヤーに対しての勝率は48.57%、スコアは5.76、ターン数は18.68、対戦数は105です。招待されたプレイヤーに対しては勝率が56.00%、スコアは6.52、ターン数は22.42、対戦数は50となっています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707195103232.png)

表7から、エージェントは多くのバトル経験を持つ規律あるラダープレイヤーと同等のパフォーマンスを示し、招待されたプレイヤーに対してはより高い勝率を達成しています。ラダーコンペティションでの平均ターン数が低いのは、人間のプレイヤーが時間節約のために敗北すると信じた場合に途中でギブアップすることがあるためです。

### バトルスキルの分析 (Battle Skill Analysis)

#### Strength:適切なポケモンへの交代  

ポケエルモンは、KAG戦略に従って効果的な技を選び、適切なポケモンへの交代を行うことで、ほとんどミスをしません。図10に示されたバトルでは、エージェントは1匹のポケモンだけを使って、相手チーム全体を倒すために異なる攻撃技を選択しました。

さらに、ポケエルモンは人間のような消耗戦略を展開します: 「Toxic（どくどく）」技で毎ターン追加ダメージを与え、また「Recover（じこさいせい）」技でHPを回復できるポケモンを使い、まず相手のポケモンを毒状態にして、その後「Recover」技を頻繁に使い、倒れることを防ぎます。戦いを長引かせることで、相手のポケモンのHPは徐々に毒ダメージで減少していきます。消耗戦略を使うには、「Toxic」、「Recover」、「Protect（まもる）」の技と、それらを使う正しいタイミング（例えば、タイプの弱点がない時や高い防御力を持っている時など）を理解することが求められます。バトルアニメーションの例は、次のウェブサイトで見ることができます: 

https://poke-llm-on.github.io

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707214792629.png)

>図10は、ポケエルモンが毎ターン効果的な技を選択し、1匹のポケモンだけを使って相手チーム全体を倒したバトルを示しています。

#### Weakness: 短期利益に集中する傾向
ポケエルモンは、短期的な利益を得る行動を取りがちで、そのために人間プレイヤーの長期的な努力を必要とする消耗戦略に弱点を持っています。図11に示された2つのバトルでは、多くのターンが経過した後で、エージェントのチームが大幅に防御力を上げ、頻繁に回復を行う人間プレイヤーのポケモンによって全滅させられています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707215349595.png)

表8は、人間プレイヤーが消耗戦略を使うか否かによるポケエルモンのバトルパフォーマンスを報告しており、明らかに消耗戦略を使わない場合にはラダープレイヤーより優れているものの、人間プレイヤーが消耗戦略を使うときには大半のバトルで敗れています。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707215157052.png)


#### 「じこさいせい」技の重要性 (The "Recover" move)
「じこさいせい」技は1ターンでHPの50%を回復するため、もし攻撃が相手ポケモンに一ターンで50%以上のHPダメージを与えない場合、相手は決して倒れません。このジレンマを打破する鍵は、まずポケモンの攻撃力を非常に高い段階にまで上げ、その後回復できないほどのダメージを与える攻撃をすることです。これは多くのターンにわたる共同努力を必要とする長期的な目標です。ポケエルモンは、現在の設計が多くのタイムステップにわたって長期的な計画を考慮に入れていないため、長期的な計画への弱さを持っており、これは将来の作業で取り入れられる予定です。



#### 経験豊富なプレイヤーによる誤導 
最終的に、経験豊かな人間のプレイヤーがエージェントを誤った行動に誘導することが観察されます。図12では、私たちのザイガードが強化された攻撃技を使う1回のチャンスを持っています。ターン2の終わりに、相手のマーイーカが倒れ、強制的な交代を迫られた相手は、ドラゴンタイプの攻撃に免疫を持つポケモン、キュレムに交代します。この交代は、エージェントがターン3でドラゴンタイプの技を使うように誘う策略です。なぜなら、キュレムはドラゴンタイプの技に弱いからです。ターン3で、相手はタプ・ブルルに交代し、ドラゴンタイプの攻撃に免疫があるため、私たちの強化された攻撃のチャンスは無駄になります。エージェントはだまされてしまいます。なぜなら、エージェントは現在の状態情報のみに基づいて決定を行っており、経験豊かなプレイヤーは状態情報だけでなく、相手の次の行動予測にも基づいて条件を設定するからです。

トリックを見破り、相手の次の行動を予測するには、実際のバトル環境でエージェントが規律を持っている必要があります。これは私たちの研究での次のステップです。

![file](https://hamaruki.com/wp-content/uploads/2024/02/image-1707215133260.png)

>図12は、経験豊かな人間のプレイヤーがエージェントを誤った行動に誘導している様子を示しています。最初にドラゴンタイプのポケモンを出して、すぐにドラゴンタイプの攻撃に免疫のある別のポケモンに交代し、エージェントがドラゴンタイプの攻撃を使うことを誘います。


## 結論 (Conclusion)
この論文では、LLMs（言語モデル）が自律的に人間との有名なポケモンバトルを行うことを可能にしました。私たちはポケエルモンを紹介します。これは戦術的なバトルゲームで人間と同等のパフォーマンスを発揮する最初のLLM実装エージェントです。ポケエルモンの設計における3つの主要戦略を紹介します：

### (i) コンテキスト内強化学習（In-Context Reinforcement Learning）

これはテキストベースのフィードバックを「報酬」として利用し、訓練なしで反復的に行動生成ポリシーを洗練します

###(ii) 知識増強生成（Knowledge-Augmented Generation）
これは外部知識を取得し、エージェントがタイムリーに適切に行動することを保証します

###(iii) 一貫した行動生成（Consistent Action Generation）
これは強力な対戦相手に遭遇した際のパニック交代問題を防ぎます。ポケエルモンのアーキテクチャは汎用的であり、幻覚や行動の一貫性がない問題を解決するために、他の多くのゲームのLLM実装エージェントの設計に適応させることができます。

オンラインバトルでは、ポケエルモンが人間らしいバトル能力と戦略を示し、ラダー競技で49％、招待バトルで56％の勝率を達成しています。さらに、人間プレイヤーの消耗戦略や欺瞞のトリックに対する脆弱性を明らかにし、これらは将来の作業として考慮されています。


## 論文サイト

https://arxiv.org/abs/2402.01118

## リポジトリ

https://github.com/git-disl/PokeLLMon

## Hugging Face

https://huggingface.co/papers/2402.01118