AIモデルとプラットフォーム
POKELLMON:ポケモンバトルで人間と対戦するLLMエージェント
大規模言語モデルと生成AIは、自然言語処理タスクにおいて前例のない成功を収めています。NLP分野を征服した後、GenAIとLLMの研究者にとっての次の挑戦は、大規模言語モデルがテキストからアクションへの生成ギャップを拡大して、物理的な世界で自律的に動作する方法を探ることです。これは、人工一般知能の追求において重要なパラダイムです。オンラインゲームは、大規模言語モデルを備えたエージェントを開発するための適切なテストベッドと見なされています。これらのエージェントは、人間のように視覚的な環境と対話する能力を持っています。
例えば、人気のオンラインシミュレーションゲームMinecraftでは、プレイヤーを支援するために意思決定エージェントを使用できます。プレイヤーは世界を探索し、ツールを作成し、タスクを解決するスキルを身に付けることができます。LLMエージェントが視覚的な環境と対話する別の例は、The Simsです。エージェントは社会的相互作用において驚くべき成功を収めており、人間のような行動を示しています。しかし、既存のゲームと比較して、戦術バトルゲームは、大規模言語モデルの仮想ゲームのプレイ能力をベンチマークするのに適した選択肢であると考えられます。戦術ゲームがベンチマークとして適している主な理由は、勝利率を直接測定でき、人間のプレイヤーとAIを含む一貫した対戦相手が常に利用できることです。
同様の考え方に基づいて、POKELLMONは、ポケモンバトルで人間レベルのパフォーマンスを達成した世界初のエージェントを目指しています。POKELLMONフレームワークの核心には、3つの主要戦略が含まれています。
- 戦闘から得られたテキストベースのフィードバックを使用して、ポリシーを反復的に改善するコンテキスト内強化学習。
- 幻覚を打ち消し、エージェントが適切に動作できるようにするための、外部知識を使用した生成の拡張。
- パニックスイッチングの問題を最小限に抑える一貫したアクション生成。
この記事では、POKELLMONフレームワークについて詳細に説明し、メカニズム、方法論、フレームワークのアーキテクチャ、そして最先端のフレームワークとの比較について探ります。また、POKELLMONフレームワークが人間のような戦闘戦略と意思決定能力を示し、約50%の勝利率を達成する方法についても説明します。では、始めましょう。
POKELLMON:ポケモンバトルで人間と対戦するLLMエージェント
大規模言語モデルと生成AIの能力と効率の成長は、過去数年で驚くべきものでした。特に、NLPタスクにおいてです。最近、開発者とAIの研究者は、生成AIとLLMを、物理的な世界で自律的に動作する能力を持つようにする方法を模索しています。これらのエージェントは、人間のように視覚的な環境と対話する能力を持っています。
以前、開発者はMinecraftやThe Simsのような仮想シミュレーションゲームでLLMエージェントを開発しようとしました。ただし、ポケモンバトルなどの戦術ゲームは、これらのエージェントを開発するのに適した選択肢であると考えられます。ポケモンバトルでは、トレーナーの戦闘能力を評価し、人間のプレイヤーとAIの両方に対して複数の利点を提供します。行動と状態の空間は離散的であるため、テキストに変換する際に情報が失われることはありません。次の図は、典型的なポケモンバトルの例を示しています。ここで、プレイヤーは各ターンで現在のポケモンの状態に基づいてアクションを生成する必要があります。

POKELLMON:方法論とアーキテクチャ
POKELLMONフレームワークの全体的なアーキテクチャは、次の図に示されています。

各ターンで、POKELLMONフレームワークは前のアクションと対応するテキストベースのフィードバックを使用して、ポリシーを反復的に改善し、外部知識を使用して現在の状態情報を拡張します。入力として提供される情報に対して、POKELLMONフレームワークは複数のアクションを独立して生成し、最も一貫したものを最終的な出力として選択します。
コンテキスト内強化学習
人間のプレイヤーとアスリートは、現在の状態に基づいてだけではなく、前のアクションからのフィードバックと他のプレイヤーの経験も考慮して決定を下します。適切なフィードバックがプレイヤーに学習と成長を促すと言えるでしょう。適切なフィードバックがなければ、POKELLMONエージェントは同じアクションを繰り返す可能性があります。次の図は、その例を示しています。

ここで、ゲーム内のエージェントは、水ベースのアタックを「Dry Skin」アビリティを持つポケモンに対して使用しています。これにより、水ベースのアタックに対するダメージが無効化されます。ゲームは、画面に「Immune」というメッセージを表示してユーザーに警告していますが、エージェントの状態の説明には含まれておらず、エージェントは同じミスを繰り返します。
POKELLMONエージェントが前のミスから学ぶことを保証するために、フレームワークはコンテキスト内強化学習アプローチを実装しています。強化学習は、ポリシーを改善するために数値的な報酬が必要なため、機械学習で人気のあるアプローチです。 大規模言語モデルは言語を解釈して理解できるため、テキストベースの説明はLLMの新しい報酬として登場しています。前のアクションからのテキストベースのフィードバックを含めることで、POKELLMONエージェントはポリシーを反復的に改善できます。
- アタックの実際のダメージは、2つの連続するターンの間のHPの差に基づいて計算されます。
- アタックの有効性は、アビリティ/ムーブの効果やタイプの優位性によって、無効、効果なし、または超効果的なものになります。
- ムーブの実行順序は、相手ポケモンの正確なステータスが利用できないため、スピードの粗い推定値を提供します。
- ムーブの実際の効果は、HPの回復、ステータスブースト、またはデバフ、フリーズ、火傷、または毒の状態を与える可能性があります。

さらに、コンテキスト内強化学習アプローチの使用により、パフォーマンスが大幅に向上します。次の図に示すように、GPT-4の元のパフォーマンスと比較して、勝利率が約10%、バトルスコアが約13%向上しています。

さらに、次の図に示すように、エージェントは前のムーブが期待どおりに機能しなかった場合にアクションを分析して変更します。

知識拡張生成(KAG)
コンテキスト内強化学習の実装は、ある程度の幻覚を防ぐのに役立ちますが、エージェントがフィードバックを受け取る前に致命的な結果をもたらす可能性があります。たとえば、エージェントが火タイプのポケモンと戦うために草タイプのポケモンを選択した場合、前者はおそらく1ターンで勝つでしょう。幻覚をさらに減らし、エージェントの意思決定能力を向上させるために、POKELLMONフレームワークは知識拡張生成(KAG)アプローチを実装しています。これは、外部知識を使用して生成を拡張するテクニックです。
ここで、モデルは上記で説明した4種類のフィードバックを生成し、ポケモンのムーブと情報を注釈付けて、エージェントがタイプの優位性関係を推論できるようにします。さらに、推論における幻覚を減らすために、POKELLMONフレームワークは、適切な説明とともに、相手ポケモンのタイプの優位性と弱点、およびエージェントのポケモンのタイプの優位性と弱点を明示的に注釈付けています。また、ポケモンのムーブとアビリティの異なる効果を覚えることは困難です。特に、多くのポケモンがある場合です。次の表は、知識拡張生成の結果を示しています。知識拡張生成アプローチを実装することで、POKELLMONフレームワークは、既存の36%から約55%まで勝利率を向上させることができます。

さらに、開発者は、エージェントがポケモンの外部知識を提供されると、適切なタイミングで特別なムーブを使用し始めたことを観察しました。

一貫したアクション生成
既存のモデルは、プロンプティングと推論アプローチを実装することで、LLMの複雑なタスクを解決する能力を向上させることを示しています。POKELLMONフレームワークは、CoT(思考の連鎖)やToT(思考の木)などの既存のプロンプティング戦略を評価します。CoTの場合、エージェントは最初に思考を生成し、思考に基づいてアクションを出力します。自己一貫性の場合、エージェントは3つのアクションを生成し、最も投票された出力を選択します。最後に、ToTアプローチの場合、エージェントは3つのアクションを生成し、自己評価の後で最も適切なアクションを選択します。次の表は、プロンプティングアプローチのパフォーマンスをまとめています。

各ターンには1つのアクションしかないため、エージェントが切り替えるときに、相手が攻撃すると、切り替わるポケモンがダメージを受けることになります。通常、エージェントは、戦闘外のポケモンをタイプの優位性で切り替えるため、切り替わるポケモンはダメージを耐えることができます。ただし、CoT推論を使用するエージェントの場合、強力な相手ポケモンが複数の回転を強制すると、ミッションと一致しないように動作し、切り替わるポケモンを切り替えるのではなく、複数のポケモンを切り替える可能性があります。これをパニックスイッチングと呼びます。パニックスイッチングは、ムーブを取る機会を除去し、敗北につながります。
POKELLMON:結果と実験
結果を説明する前に、戦闘環境を理解することが重要です。ターンの開始時に、環境はサーバーからアクション要求メッセージを受信し、最後に実行結果を含むメッセージに応答します。
- まず、メッセージを解析し、ローカル状態変数を更新します。2. 状態変数をテキストに翻訳します。テキストの説明には、主に4つの部分があります。1. 自分のチーム情報。フィールド内のポケモンの属性と未使用のポケモンの属性が含まれます。
- 相手チーム情報。フィールド内の相手ポケモンの属性と未使用のポケモンの属性(一部の情報は不明)が含まれます。
- 戦闘フィールド情報。天気、エントリーハザード、テラフォームが含まれます。
- 歴史的なターンログ情報。両方のポケモンの前のアクションが含まれ、ログキューに保存されます。LLMは、翻訳された状態を入力として受け取り、次のステップのアクションを出力します。アクションはサーバーに送信され、人間が実行したアクションと同時に実行されます。
人間プレイヤーとの戦い
次の表は、POKELLMONエージェントが人間プレイヤーに対して示したパフォーマンスを示しています。

ここで、POKELLMONエージェントは、ランダムに選ばれたプレイヤーよりも高い勝利率を示しています。さらに、POKELLMONエージェントは、ランダムに選ばれたプレイヤーよりも高いバトルスコアを示しています。
戦闘スキル分析
POKELLMONフレームワークは、有効なムーブを選択する際に、ほとんどの場合、ミスを犯しません。また、知識拡張生成戦略により、別のポケモンに切り替えることもできます。

上の例では、エージェントは1つのポケモンで相手チーム全体を倒します。エージェントは、相手に対して最も効果的なアタックムーブを選択することができます。さらに、POKELLMONフレームワークは、人間のような消耗戦略を示します。いくつかのポケモンには、「毒」のムーブがあり、各ターンに追加のダメージを与えることができます。一方、「回復」のムーブにより、HPを回復することができます。エージェントは、相手ポケモンを毒にした後、自分自身を倒さないように回復のムーブを使用します。

最終的な考え
この記事では、POKELLMONについて説明しました。POKELLMONは、人間と対戦するポケモンバトルのLLMエージェントを可能にするアプローチです。POKELLMONフレームワークは、3つの重要な戦略を導入します。コンテキスト内強化学習は、テキストベースのフィードバックを「報酬」として使用して、反復的にアクション生成ポリシーを改善します。知識拡張生成は、外部知識を使用して幻覚を打ち消し、エージェントが適切に動作することを保証します。一貫したアクション生成は、強力な相手に遭遇したときにパニックスイッチングの問題を防ぎます。












