PokéLLMon: A Human-Parity Agent for Pokémon Battles with Large Language Models
概要
- LLMでポケモン対戦
戦略
- (1) In-Context RL: インコンテキスト強化学習
- バトルのフィードバックを活用し、ポリジー(方針)を反復的に洗練させる
- HPの変化、攻撃の効果(こうかはばつぐんだ!等)、技の優先度、状態異常などの情報を与える
- (2) Knowledge-Augumented Generation(KAG)
- ポケモン図鑑を情報として与える
- タイプの相性、技・特性の効果などを情報として与える
- 適切な情報を与えないとハルシネーションによって効果のない技を繰り出したりしてしまう
- (3) Consistent Action Generation: 一貫した行動生成
- プロンプティングアプローチとして自己一貫性(Self-Consistency (SC))を採用
- プロンプティングアプローチの例
- 思考連鎖 (Chain-of-Thought (CoT))
- 自己一貫性 (Self-Consistency (SC))
- 木構造思考 (Tree-of-Thought (ToT)) などがある
- CoTの場合、強すぎる的に直面すると合理的でない戦略を取る傾向を発見
- 具体的には強い的に直面するとポケモン交換をし続けてしまう事象を確認
- パニックスイッチング
- 戦いを避けたい思考の現れ?
結果
- オンラインのランダムバトル: 勝率49%
- 経験者との招待バトル: 勝率59%
考察
- 短期的な利益を得る行動をとりがち
- 消耗線に弱い
- じこさいせい強すぎる(HPの50%回復)
- 一発で強い一撃を打つ必要がある
- 交代戦術に弱い
- 力をためた後に相性の悪いポケモンに交代される
前提: ポケモン対戦について
- ターン制
- 情報をテキストで取得可能
- 複雑なドメイン知識が必要
- 種族、タイプ、能力、ステータス、アイテム、技など
感想
- ポケモンバトル、奥が深い
- 外部のドメイン知識が複雑すぎる
- 対人戦の場合、対戦相手は網羅的にポケモンの知識があることが(ほぼ)前提となっているため、ドメイン知識が必要だと思った
- 前提知識なしのストーリー攻略とかだとどうなるんだろう、と思った