OpenAI Dota 2 1v1 봇 결과

OpenAI는 자체 플레이 강화 학습이 기계 학습 시스템을 인간 미만 성능에서 초인간 능력으로 끌어올릴 수 있음을 Dota 2 1v1에서 입증했습니다. 한 달 안에 시스템은 높은 순위의 플레이어와 겨우 맞먹는 수준에서 최고 프로 플레이어를 이기는 수준으로 발전했으며, 이는 자체 플레이가 에이전트의 기술이 향상됨에 따라 훈련 데이터가 자동으로 개선될 수 있음을 보여줍니다.

초인간 성능 및 훈련 타임라인

OpenAI의 봇은 계산을 확장하고 알고리즘 개선을 구현하여 초인간 상태를 달성했으며, 이로 인해 시간이 지남에 따라 TrueSkill 등급이 선형적으로 증가했습니다. 봇의 능력 진행은 다음과 같은 마일스톤으로 표시됩니다:

  • 3월 1일: 간단한 환경에서 초기 클래식 강화 학습 결과가 나왔습니다 (Drow Ranger가 Earthshaker를 kiting하는 상황).
  • 5월 8일: 1.5k MMR 테스터가 봇보다 빠르게 향상되고 있다고 보고했습니다.
  • 6월 초: 봇이 1.5k MMR 테스터를 이기기 시작했습니다.
  • 6월 30일: 봇이 3k MMR 테스터와의 대부분의 게임에서 승리했습니다.
  • 7월 8일: 봇이 7.5k MMR 세미프로 테스터와의 첫 승리를 거두었습니다.
  • 8월 7일: 봇이 Blitz (6.2k)를 3–0으로, Pajkatt (8.5k)를 2–1로, CC&C (8.9k)를 3–0으로 물리쳤습니다.
  • 8월 9일: 봇이 Arteezy (10k 프로)를 10–0으로 이겼습니다.
  • 8월 10일: 봇이 Sumail (8.3k 프로)를 6–0으로 이겼습니다. Sumail은 봇을 "무적"이라고 묘사했습니다.
  • 8월 11일: 봇이 Dendi (7.3k 프로)를 2–0으로 이겼습니다.

기술 구현 및 인터페이스

봇은 AI 특정 단순화 없이 1v1 표준 토너먼트 규칙 하에서 작동했습니다. 다음과 같은 인터페이스를 사용했습니다:

  • 관측: 봇은 Bot API를 사용하여 사람이 볼 수 있는 기능에 접근했으며, 여기에는 영웅, 크리프, 쿠리어, 근처 지형 정보가 포함됩니다. 환경은 부분적으로 관측 가능합니다.
  • 행동: 봇은 사람과 유사한 빈도로 Bot API를 통해 이동, 공격, 아이템 사용과 같은 행동을 수행했습니다.
  • 피드백: 게임 승리 및 기본 지표(체력 및 마지막 히트)에 기반하여 인센티브가 제공되었습니다.

훈련을 용이하게 하기 위해 OpenAI는 몇 십 개의 아이템 빌드를 화이트리스트에 추가하고, 전통적인 강화 학습 기법을 사용하여 초기 크리프 블록을 별도로 훈련시켰습니다.

더 인터내셔널 동안의 반복적 개선

OpenAI는 The International 토너먼트 동안 "코칭"과 자체 플레이를 결합하여 에이전트를 빠르게 반복 개선했습니다. 주요 개선 사항은 다음과 같습니다:

  • 아이템 빌드 적응: Pajkatt가 초기 마법 지팡이를 사용하여 경기를 이긴 후, OpenAI는 해당 특정 아이템 빌드를 훈련 화이트리스트에 추가했습니다.
  • 전략 진화: 봇은 첫 번째 웨이브에서 의도적으로 체력을 잃어 적을 공격적으로 유인하는 방법을 배웠으며, 이 전략은 이후 추가 자체 플레이를 통해 대응되었습니다.
  • 메커니즘 발견: 봇은 적의 시야 밖에서 능력을 시전하면 적이 지팡이 충전을 얻는 것을 방지하는 게임 메커니즘을 발견했습니다.

알려진 익스플로잇 및 제한

높은 성능에도 불구하고, 봇은 훈련 중에 encounter하지 않은 시나리오에 혼란을 겪을 수 있습니다. The International의 LAN 이벤트 동안, 플레이어는 세 가지 주요 익스플로잇 유형을 식별했습니다:

  1. 크리프 풀링: 봇의 2단계와 3단계 타워 사이의 레인 크리프를 끌어당겨 소모로 타워가 파괴되도록 합니다.
  2. 독의 구슬 + 윈드 레이스: 이 아이템들을 사용하여 레벨 1에서 이동 속도 우위를 얻어 빠른 첫 피를 얻습니다.
  3. 레벨 1 레이즈: 높은 실력의 플레이어 (67k MMR)는 레벨 1에서 35번의 레이즈를 빠르게 연속으로 맞혀 봇을 죽일 수 있었습니다.

인프라 및 미래 목표

클라우드에서 Dota 2를 실행하기 위해 OpenAI는 OpenGL 호출을 스텁하는 shim을 개발하고, 클라우드 GPU 인스턴스를 구성하여 물리적 모니터 연결을 시뮬레이션하여 부팅 오류를 우회했습니다.

OpenAI는 또한 기준이 되는 스크립트 봇을 개발했습니다. 빈 레인에서 스크립트 봇은 10분 동안 70번의 마지막 히트를 달성한 반면, 강화 학습 봇은 동일한 시간 동안 약 97번의 마지막 히트를 달성했습니다 (이론상 최대치는 101).

이 프로젝트의 최종 목표는 5v5 Dota 2를 해결하는 것입니다. 이를 준비하기 위해 OpenAI는 10명의 사람이 포함된 약 45분 길이의 전문가 수준 리플레이 580만 개를 데이터셋으로 축적하여 행동 복제를 활용할 예정입니다.

Sources