DeNA/HandyRL
요약
HandyRL은 Python과 PyTorch 기반의 분산 강화학습 프레임워크로, 사용자가 자체 환경에 적용할 수 있는 강력한 AI 에이전트 개발을 돕습니다. 오프라인 정책 경사 및 off-policy correction 기능을 제공하며, IMPALA와 같은 학습자-작업자 아키텍처를 채택하여 대규모 병렬 처리를 지원합니다.
핵심 포인트
- PyTorch 기반의 분산 강화학습 프레임워크입니다.
- 오프라인 정책 경사와 off-policy correction을 지원합니다.
- IMPALA 스타일의 학습자-작업자 아키텍처를 사용합니다.
- 대규모 병렬 처리를 통해 강력한 AI 에이전트 개발에 용이합니다.

빠르게 시작하고 쉽게 이기세요
- 자신만의 환경을 준비하세요
- 대규모 분산 강화학습(distributed reinforcement learning)을 시작해 봅시다
- 강력한 AI 에이전트를 얻으세요!
HandyRL은 Python과 PyTorch를 기반으로 하며, 사용자의 자체 환경에 적용 가능한 분산 강화학습을 위한 편리하고 간단한 프레임워크입니다. HandyRL은 경쟁 게임에서 강력하고 승리하는 AI를 만들기 위해 실용적인 알고리즘과 구현에 중점을 둡니다. 대규모 학습을 위해 HandyRL은 환경에 따라 제어 가능한 높은 병렬 처리 능력을 제공합니다.
HandyRL은 중요한 업데이트를 제외하고는 매월 초에 업데이트됩니다. 모든 기여에 감사드립니다. 버그나 제안 사항을 발견하면 이슈(issue)와 PR을 생성하여 알려주세요.
HandyRL 더 알아보기
HandyRL은 주로 **오프라인 정책 경사 알고리즘과 오프정책 보정(off-policy correction)**을 제공합니다. 안정성과 성능 관점에서 볼 때, 오프정책 버전의 정책 경사(policy gradient)는 실제로 잘 작동합니다. 따라서 기준선 AI 모델을 만드는 좋은 첫 번째 선택지입니다.
사용자는 전통적인 방법(monte carlo, TD($ ext{λ}$))부터 새로운 방법(V-Trace, UPGO)에 이르기까지 오프정책 업데이트 방식(정책 및 가치 목표)을 사용할 수 있습니다. 이 항목들은 config.yaml에서 변경할 수 있습니다.
훈련 아키텍처로서 HandyRL은 IMPALA와 같은 **학습자-작업자 스타일 아키텍처(learner-worker style architecture)**를 채택합니다.
학습자는 모델을 업데이트하고 작업자들을 제어하는 훈련의 두뇌 역할을 합니다.
작업자들은 두 가지 역할을 수행합니다. 비동기적으로 에피소드(trajectory)를 생성하고, 훈련된 모델을 평가합니다.
에피소드 생성 시에는 기본값으로 셀프플레이(self-play)가 진행됩니다.
설치 (Installation)
의존성 설치 (Install dependencies)
HandyRL은 Python3.7 이상을 지원합니다. 먼저, HandyRL 저장소를 환경에 복사하거나 포크하세요. 이 스크립트를 개인 프로젝트에서 사용하려면, 파일을 프로젝트 디렉터리로 복사한 후 그곳에서 수정하기만 하면 됩니다.
git clone https://github.com/DeNA/HandyRL.git
cd HandyRL
그런 다음 추가 라이브러리(예: numpy, pytorch)를 설치하거나 가상 환경 또는 컨테이너(예: Docker)에서 실행하세요.
pip3 install -r requirements.txt
Kaggle 환경의 게임(예: Hungry Geese)을 사용하려면 추가 의존성도 설치할 수 있습니다.
pip3 install -r handyrl/envs/kaggle/requirements.txt
시작하기 (Getting Started)
Tic-Tac-Toe 모델 훈련하기
이 섹션에서는 Tic-Tac-Toe 모델을 훈련하는 방법을 보여줍니다. Tic-Tac-Toe는 매우 간단한 게임입니다. 구글에서
학습 후에는 해당 모델을 다른 모든 모델들과 비교하여 평가할 수 있습니다. 아래 코드는 epoch 1의 모델을 사용하여 4개의 프로세스로 100게임을 평가합니다.
python main.py --eval models/1.pth 100 4
참고: 기본 상대방 AI는 evaluation.py에 구현된 랜덤 에이전트(random agent)입니다. 이 에이전트를 사용자의 다른 에이전트로 변경할 수 있습니다.
문서화 (Documentation)
- 설정 파라미터 (Config Parameters):
config.yaml의 파라미터 목록을 보여줍니다. - 대규모 학습 (Large Scale Training): 원격으로 대규모 학습을 수행하는 절차입니다.
- 맞춤형 환경으로 학습 (Train with Customized Environment): 자신만의 게임을 만들기 위한 환경 인터페이스를 설명합니다.
- API:
main.py의 진입점 API(entry-point APIs)를 보여줍니다.
사용 사례 (Use Cases)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기