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)

  1. 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
    
  2. 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
    
  3. Monitor with TensorBoard:
    tensorboard --logdir=./logs/cartpole
    
  4. Scale up – add --distributed multi-gpu 또는 README에 나와 있는 torchrun 명령어를 사용해 멀티노드 학습 수행.

What the README doesn't say

  • 안정적인 1.0 릴리스에 대한 언급 없음. CI 배지와 최근 Docker 이미지로 프로젝트가 활발히 유지되고 있음이 확인됨.
  • 대규모 언어모델 RL(예: RLHF)의 내장 지원 없음. 그러나 모듈성 덕분에 사용자 정의 컴포넌트 추가 가능.
  • 튜토리얼은 여전히 드래프트 상태이므로, 초보자는 예제 설정과 소스 코드에 의존해야 할 수 있음.

Bottom line: ALF는 다양한 알고리즘을 포괄하고 연구 실험과 실용적인 로봇공학/임베디드 AI 프로젝트에 필요한 도구를 제공하는 진정한, 활발히 유지 관리되는 강화학습 프레임워크입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트