BenchMARL: 다중 에이전트 강화학습(MARL) 학습 및 벤치마킹 라이브러리
요약
BenchMARL은 다양한 MARL 알고리즘 및 환경에 걸쳐 재현성과 벤치마킹을 가능하게 하는 다중 에이전트 강화학습(MARL) 학습 라이브러리입니다. 이 라이브러리는 새로운 알고리즘과 환경의 쉬운 통합을 위한 표준화된 인터페이스를 제공하여 연구자들이 모델 비교 및 검증에 집중할 수 있도록 돕습니다.
핵심 포인트
- 다중 에이전트 강화학습(MARL) 학습 라이브러리입니다.
- 재현성 높은 벤치마킹을 목표로 설계되었습니다.
- 표준화된 인터페이스를 제공하여 알고리즘 및 환경 통합이 용이합니다.

BenchMARL
<a href="https://pypi.org/project/benchmarl"><img src="https://img.shields.io/pypi/v/benchmarl" alt="pypi version"></a>
python benchmarl/run.py algorithm=mappo task=vmas/balance
- BenchMARL 및 TorchRL에서 다중 에이전트 시뮬레이션 및 학습에 대한 강연 영상(talk)을 시청하세요.
- VMAS에서 사용자 지정 시나리오를 생성하고 BenchMARL에서 훈련하는 방법에 대한 강의(lecture)를 시청하세요.
BenchMARL이란 무엇인가요 🧐?
BenchMARL은 다양한 MARL 알고리즘 및 환경에 걸쳐 재현성(reproducibility)과 벤치마킹을 가능하게 하기 위해 만들어진 다중 에이전트 강화학습 (Multi-Agent Reinforcement Learning, MARL) 학습 라이브러리입니다.
그 임무는 새로운 알고리즘과 환경의 쉬운 통합을 허용하는 표준화된 인터페이스를 제시하여 기존 솔루션과의 공정한 비교를 제공하는 것입니다.
BenchMARL은 백엔드로 TorchRL을 사용하며, 이를 통해 높은 성능과 최첨단(state-of-the-art) 구현 기능을 제공합니다.
또한 유연하고 모듈식인 설정을 위해 hydra를 사용하며, 데이터 보고는 표준화되고 통계적으로 강력한 평가를 위해 marl-eval과 호환됩니다.
BenchMARL의 핵심 설계 원칙(core design tenets)은 다음과 같습니다:
- 체계적인 기반 마련과 설정 표준화를 통한 재현성(Reproducibility)
- 표준화되고 통계적으로 강력한 플로팅 및 보고서 작성
- 알고리즘, 환경, 모델 선택에 독립적인 실험
- MARL 생태계 전반의 폭넓은 커버리지(Breadth)
- 새로운 알고리즘, 환경, 모델의 쉬운 구현
- TorchRL의 노하우와 인프라를 활용하여 바퀴를 재발명할 필요가 없음
BenchMARL을 왜 사용해야 할까요 🤔?
BenchMARL을 왜 사용하는지 물어보시는군요.
음, 다양한 알고리즘, 환경, 모델을 비교하거나, 여러분의 새로운 연구 결과가 기존 연구와 어떻게 비교되는지 확인하고 싶을 때, 또는 단순히 해당 도메인에 접근하여 전반적인 지형도를 쉽게 파악하고 싶을 때 BenchMARL을 사용할 수 있습니다.
목차
- BenchMARL
사용 방법(How to use)
Notebooks
- Open In Colab BenchMARL 실험 실행하기.
- Open In Colab VMAS 시나리오 생성 및 BenchMARL에서 훈련하기. 여러 로봇이 서로를 피하면서 목표 지점으로 이동해야 하는 시나리오를 만들고, MAPPO와 MLP/GNN 정책을 사용하여 이를 훈련할 것입니다.
설치 (Install)
TorchRL 설치
PyPi에서 TorchRL을 설치할 수 있습니다.
pip install torchrl
더 자세한 내용이나 나이틀리(nightly) 버전을 설치하려면 TorchRL 설치 가이드를 참조하세요.
BenchMARL 설치
You는 github에서 바로 설치할 수 있습니다.
pip install benchmarl
또는 로컬로 클론하여 설정(configs)과 스크립트에 접근할 수도 있습니다.
git clone https://github.com/facebookresearch/BenchMARL.git
pip install -e BenchMARL
환경 설치 (Install environments)
모든 환경 의존성은 BenchMARL에서 선택 사항이며 개별적으로 설치할 수 있습니다.
VMAS
pip install vmas
PettingZoo
pip install "pettingzoo[all]"
MeltingPot
pip install dm-meltingpot
MAgent2
pip install git+https://github.com/Farama-Foundation/MAgent2
SMACv2
환경 저장소의 지침을 따르세요.
여기에서 리눅스에 설치하는 방법입니다.
실행 (Run)
실험은 기본 설정(default configuration)으로 시작되며, 여러 방식으로 재정의할 수 있습니다. 설정을 사용자 정의하고 재정의하는 방법에 대해서는 설정 구성 섹션을 참조하세요.
커맨드 라인 (Command line)
커맨드 라인에서 실험을 실행하려면 다음을 수행할 수 있습니다.
python benchmarl/run.py algorithm=mappo task=vmas/balance
hydra 덕분에 다음과 같이 여러 번의 실행(multi-runs)으로 벤치마크를 실행할 수 있습니다:
python benchmarl/run.py -m algorithm=mappo,qmix,masac task=vmas/balance,vmas/sampling seed=0,1
hydra의 기본 다중 실행 구현은 순차적(sequential)이지만, parallel 및 slurm 런처도 사용할 수 있습니다.
스크립트
스크립트 내에서도 실험을 로드하고 실행할 수 있습니다.
experiment = Experiment(
task=VmasTask.BALANCE.get_from_yaml(),
algorithm_config=MappoConfig.get_from_yaml(),
...
또한 Benchmark 내에서 여러 실험을 실행할 수 있습니다.
benchmark = Benchmark(
algorithm_configs=[
MappoConfig.get_from_yaml(),
...
개요(Concept)
BenchMARL의 목표는 다양한 MARL 환경과 알고리즘을 동일한 인터페이스 아래에 통합하여 공정하고 재현 가능한 비교 및 벤치마킹을 가능하게 하는 것입니다. BenchMARL은 사용자가 단 한 줄의 코드로 자체 알고리즘과 태스크 전반에 걸쳐 원하는 모든 비교를 실행할 수 있도록 설계된 전체 파이프라인 통합 학습 라이브러리입니다. 이를 달성하기 위해 BenchMARL은 효율적이고 신뢰할 수 있는 백엔드를 제공하는 TorchRL의 구성 요소들을 상호 연결합니다.
이 라이브러리는 각 구성 요소에 대한 기본 설정(default configuration)을 가지고 있습니다. 이 설정 중 일부 부분은 변경되도록 되어 있지만(예: 실험 설정), 재현성을 보장하기 위해 다른 부분(태스크 등)은 변경해서는 안 됩니다. 이를 돕기 위해 BenchMARL의 각 버전은 기본 설정과 쌍을 이루어 제공됩니다.
이제 라이브러리의 각 구성 요소들을 소개하겠습니다.
실험(Experiment). 실험은 알고리즘, 태스크, 모델이 고정된 훈련 실행을 의미합니다. 실험은 이러한 값들과 시드(seed), 그리고 실험 하이퍼파라미터를 함께 전달하여 구성됩니다. 실험 하이퍼파라미터는 온-폴리시(on-policy) 및 오프-폴리시(off-policy) 알고리즘, 이산적(discrete) 및 연속적(continuous) 액션, 그리고 확률적(probabilistic) 및 결정론적(deterministic) 정책을 모두 포괄합니다 (이는 사용되는 알고리즘이나 태스크에 구애받지 않기 때문입니다). 실험은 명령줄 또는 스크립트에서 실행할 수 있습니다. 자세한 내용은 실행 섹션을 참조하십시오. 벤치마크(Benchmark). 라이브러리에서는 다양한 태스크, 알고리즘 또는 모델로 변화할 수 있는 일련의 실험을 benchmark라고 부릅니다. 벤치마크는 모든 실험에 걸쳐 동일한 실험 구성을 공유합니다. 벤치마크를 사용하면 다양한 MARL 구성 요소를 표준화된 방식으로 비교할 수 있습니다. 벤치마크는 명령줄 또는 스크립트에서 실행할 수 있습니다. 자세한 내용은 실행 섹션을 참조하십시오. 알고리즘(Algorithms). 알고리즘은 훈련 전략을 결정하는 여러 구성 요소들의 집합체입니다 (예: 손실 함수(loss), 리플레이 버퍼(replay buffer)). BenchMARL에 현재 구현된 알고리즘 목록은 다음 표를 참고하십시오.
모델별 특징 비교표는 다음과 같습니다.
| 이름 | On/Off 정책 | Actor-Critic | Critic의 완전 관측 가능성 | 액션 호환성 | 확률적 Actor | |
| :--- | :---: | :---: | :---: | :---: | :---: |
| MAPPO | On | 예 | 예 | Continuous + Discrete | 예 | |
| IPPO | On | 예 | 아니오 | Continuous + Discrete | 예 | |
| MADDPG | Off | 예 | 예 | Continuous | 아니오 | |
| IDDPG | Off | 예 | 아니오 | Continuous | 아니오 | |
| MASAC | Off | 예 | 예 | Continuous + Discrete | 예 | |
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
| ISAC | Off | Yes | No | Continuous + Discrete | Yes | |
| QMIX | Off | No | NA | Discrete | No | |
| VDN | Off | No | NA | Discrete | No | |
| IQL | Off | No | NA | Discrete | No | |
태스크(Tasks). 태스크는 특정 환경에서 발생하는 시나리오로, 해결해야 할 MARL 챌린지를 구성합니다.
이들은 여러 측면에서 다르며, BenchMARL의 현재 환경들을 담은 표가 다음과 같습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기