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