🤖 AI Summary
Existing GFlowNets implementations (e.g., torchgfn) suffer from suboptimal performance, hindering efficient training and evaluation across diverse tasks—including molecular generation, phylogenetic tree inference, Bayesian structure learning, and Ising model sampling. To address this, we introduce the first high-performance, open-source GFlowNets library built on JAX. Leveraging just-in-time compilation, functional parallelization, and hardware-agnostic optimizations, our library significantly improves scalability and computational efficiency. It provides a unified benchmarking framework encompassing multiple standard environments, reward formulations, and evaluation metrics. Empirical results demonstrate speedups of up to 55× on CPU and 80× on GPU over PyTorch-based baselines, substantially reducing training and inference latency. This infrastructure establishes a robust foundation for deploying GFlowNets in complex discrete-structure modeling tasks.
📝 Abstract
In this paper, we present gfnx, a fast and scalable package for training and evaluating Generative Flow Networks (GFlowNets) written in JAX. gfnx provides an extensive set of environments and metrics for benchmarking, accompanied with single-file implementations of core objectives for training GFlowNets. We include synthetic hypergrids, multiple sequence generation environments with various editing regimes and particular reward designs for molecular generation, phylogenetic tree construction, Bayesian structure learning, and sampling from the Ising model energy. Across different tasks, gfnx achieves significant wall-clock speedups compared to Pytorch-based benchmarks (such as torchgfn library) and author implementations. For example, gfnx achieves up to 55 times speedup on CPU-based sequence generation environments, and up to 80 times speedup with the GPU-based Bayesian network structure learning setup. Our package provides a diverse set of benchmarks and aims to standardize empirical evaluation and accelerate research and applications of GFlowNets. The library is available on GitHub (https://github.com/d-tiapkin/gfnx) and on pypi (https://pypi.org/project/gfnx/). Documentation is available on https://gfnx.readthedocs.io.