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プロジェクトまで必要なツールを備えた、本格的で活発にメンテナンスされている強化学習フレームワークです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト