torchgfn: A PyTorch GFlowNet library
Joseph D. Viviano, Omar G. Younis, Sanghyeok Choi, Victor Schmidt, Yoshua Bengio, Salem Lahlou
TL;DR
Generative Flow Networks (GFNs) define probabilistic samplers over structured spaces using an unnormalized reward $R$ to generate objects along a DAG-shaped MDP. The paper presents torchgfn, a PyTorch library that enforces a strict separation of concerns among Environments, States, Actions, Containers, Estimators, Samplers, and GFlowNets, enabling modular, rapid prototyping across discrete, continuous, and graph GFNs. The $v2$ release adds graph-generation support, conditional GFNs, custom samplers, recurrent policies via PolicyMixin, and diffusion sampling, accompanied by extensive tutorials and documentation. The work emphasizes reproducibility and community-driven development, aiming to establish torchgfn as a standard platform for foundational GFN research.
Abstract
The growing popularity of generative flow networks (GFlowNets or GFNs) from a range of researchers with diverse backgrounds and areas of expertise necessitates a library that facilitates the testing of new features (e.g., training losses and training policies) against standard benchmark implementations, or on a set of common environments. We present torchgfn, a PyTorch library that aims to address this need. Its core contribution is a modular and decoupled architecture which treats environments, neural network modules, and training objectives as interchangeable components. This provides users with a simple yet powerful API to facilitate rapid prototyping and novel research. Multiple examples are provided, replicating and unifying published results. The library is available on GitHub (https://github.com/GFNOrg/torchgfn) and on pypi (https://pypi.org/project/torchgfn/).
