HorizonRobotics/alf
Agent Learning Framework https://alf.readthedocs.io
What is ALF?
ALF (Agent Learning Framework) 는 PyTorch 기반의 오픈소스 강화학습(RL) 라이브러리입니다. 연구자와 엔지니어가 A2C, PPO와 같은 전통적인 온폴리시 방법에서부터 SAC, MuZero, RLPD와 같은 최신 오프폴리시 및 모델 기반 접근법에 이르기까지 다양한 RL 알고리즘을 프로토타이핑, 학습, 평가할 수 있도록 모듈화되고 구성 가능한 코드베이스를 제공합니다. 이 프레임워크는 유연성(네트워크, 손실 함수, 데이터 변환 등의 컴포넌트를 자유롭게 조합 가능)과 사용 편의성(별도의 DSL이 아닌 일반적인 Python 파일로 설정 가능)을 중시합니다.
Key Features (as described in the README)
| Feature | Details |
|---|---|
| Broad algorithm coverage | A2C, PPO, PPG, DDQN, DDPG, SAC, RLPD, MuZero, BC, IQL, DIAYN, ICM, RND 등 수십 가지 알고리즘을 구현. 각 알고리즘은 별도의 모듈(예: alf/algorithms/ppo_algorithm.py)에 위치합니다. |
| Modular design | 에이전트, 크리틱, 리플레이 버퍼, 데이터 변환기 등의 컴포넌트가 분리되어 있어 알고리즘의 일부를 쉽게 교체하거나 확장할 수 있습니다. |
| PyTorch‑native | 빠른 병렬 환경을 위해 torch.utils.cpp_extension을 사용하며, PyTorch의 torchrun을 통해 분산 학습을 지원합니다. |
| Configuration system | 작업은 Python 기반의 "conf" 파일(*_conf.py)로 구성되며, 산술 및 조건 논리를 표현할 수 있어 이전의 gin 기반 설정을 대체합니다. |
| Multi‑GPU / multi‑node support | --distributed multi-gpu 플래그로 단일 노드의 멀티 GPU 학습을 지원하며, NCCL 설정을 사용한 PyTorch의 torchrun 런처를 통해 멀티 노드 학습도 가능합니다. |
| Extensive documentation & tutorials | https://alf.readthedocs.io/ 에서 온라인 문서 제공 및 드래프트 형태의 튜토리얼 페이지 제공. README에는 많은 예제 스크립트가 목록화되어 있습니다. |
| Ready‑to‑run examples | CartPole, Atari, MuJoCo 작업(Fetch, Humanoid), 로봇 시뮬레이터(MetaDrive, SocialRobot), 게임 유사 환경(Super Mario) 등 10개 이상의 즉시 실행 가능한 예제 설정 제공. |
| Docker & Nix support | 공식 Docker 이미지(horizonrobotics/cuda:11.8.0-py3.11‑torch2.2‑ubuntu22.04)와 재현 가능한 개발 환경용 Nix flake 제공. |
| Installation flexibility | 수동 pip install -e ., 의존성 관리에 현대적인 uv 도구, 또는 Nix 환경 중 하나로 설치 가능. |
| Continuous integration | CI 배지로 pytorch 브랜치에서 테스트가 실행됨을 확인할 수 있습니다. |
Who Might Use It?
- 새로운 RL 아이디어를 탐색하는 연구자: 다양한 알고리즘에 대한 안정적이고 테스트된 기준 구현이 필요할 때.
- 시뮬레이션(예: PyBullet, MuJoCo, MetaDrive)에서 정책을 학습하고 이를 내보내고 싶은 로봇 공학자.
- 온폴리시, 오프폴리시, 오프라인, 모델 기반 RL을 하나의 라이브러리로 처리하고 싶은 실무자: 프레임워크 전환 없이 가능.
Getting Started (quick steps)
- Clone & set up
git clone https://github.com/HorizonRobotics/alf cd alf # using uv (recommended) curl -Ls https://astral.sh/uv/install.sh | sh uv sync - Run an example (e.g., CartPole with A2C)
uv run python -m alf.bin.train --conf=alf/examples/ac_cart_pole.gin --root_dir=./logs/cartpole - Monitor with TensorBoard:
tensorboard --logdir=./logs/cartpole - Scale up – add
--distributed multi-gpu또는 README에 나와 있는torchrun명령어를 사용해 멀티노드 학습 수행.
What the README doesn't say
- 안정적인 1.0 릴리스에 대한 언급 없음. CI 배지와 최근 Docker 이미지로 프로젝트가 활발히 유지되고 있음이 확인됨.
- 대규모 언어모델 RL(예: RLHF)의 내장 지원 없음. 그러나 모듈성 덕분에 사용자 정의 컴포넌트 추가 가능.
- 튜토리얼은 여전히 드래프트 상태이므로, 초보자는 예제 설정과 소스 코드에 의존해야 할 수 있음.
Bottom line: ALF는 다양한 알고리즘을 포괄하고 연구 실험과 실용적인 로봇공학/임베디드 AI 프로젝트에 필요한 도구를 제공하는 진정한, 활발히 유지 관리되는 강화학습 프레임워크입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트