{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2608-03967","title":"Information-Geometric Forward Policy Training in GFlowNets","arxiv_id":"2608.03967","date":"2026-08-04","proceeding":null,"authors":["Yordan Raykov","Rodrigo Veiga"],"abstract":"Generative Flow Networks (GFlowNets) have emerged as a flexible framework for amortised inference over discrete and mixed discrete-continuous objects, requiring only an unnormalised target density specified through a reward. In this work, we formulate forward-policy training in GFlowNets through the information geometry of the induced trajectory sampler. Treating the forward policy as an induced trajectory sampler, we show that its intrinsic first-order geometry is given by the Fisher-Rao metric of the trajectory family, and that the associated natural gradient provides the canonical local update whenever the corresponding Fisher information is computable or accurately approximable. We derive an exact decomposition of the trajectory Fisher into per-step conditional second moments, which clarifies when temporal score interactions vanish and when dense couplings remain under shared parameterisation. This leads to three computational regimes: settings with tractable exact Fisher information, settings where Monte Carlo estimators of the expected Fisher are sufficient, and structure-exploitable settings in which target locality or factorisation yields accurate approximations of the Fisher expectation. In the latter case, graphical-model tools such as exact marginalisation, separator methods, and belief propagation provide principled surrogates for natural-gradient updates. The resulting framework turns target structure into optimisation geometry and yields a tractable route to structure-aware forward-policy training in GFlowNets. We illustrate the framework empirically through examples comparing convergence and exploration behaviour under Riemannian and Euclidean optimisation.","url_abs":"https://arxiv.org/abs/2608.03967","url_pdf":"https://arxiv.org/pdf/2608.03967","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2608.03967","atlas_url":"https://app.syntology.ai/?focus=2608.03967","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2608.03967"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/rodsveiga/infogeometric_gflows","reach":null}],"summary":{"ran":12,"unverified":4},"by_repo_kind":{"found_in_text":{"samples":16,"ran":12,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":16,"samples":[{"code_sha256_prefix":"5f5ceaec73251f8e","entry":"all_edges","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"experiments/triangle/graph.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/experiments/triangle/graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5f5ceaec73251f8e"}},{"code_sha256_prefix":"4fa349ab4ee4b826","entry":"auroc","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/dag.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/dag.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4fa349ab4ee4b826"}},{"code_sha256_prefix":"3495af39e2194108","entry":"compute_metrics","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"experiments/hypergrid/deceptive/run_adaptive_teacher.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/experiments/hypergrid/deceptive/run_adaptive_teacher.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3495af39e2194108"}},{"code_sha256_prefix":"1827316cab992576","entry":"enumerate_target","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"experiments/triangle/graph.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/experiments/triangle/graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1827316cab992576"}},{"code_sha256_prefix":"0884d06751d7fb89","entry":"gaussians_8_reward","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/environments.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/environments.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0884d06751d7fb89"}},{"code_sha256_prefix":"afc477dd34b8d642","entry":"generate_er_dag","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/dag.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/dag.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"afc477dd34b8d642"}},{"code_sha256_prefix":"ede282cb4ee11a53","entry":"jsd","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/utils.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ede282cb4ee11a53"}},{"code_sha256_prefix":"73e9084f185f41d1","entry":"kl","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/utils.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"73e9084f185f41d1"}},{"code_sha256_prefix":"80b801ad5311bf1f","entry":"rings_reward","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/environments.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/environments.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"80b801ad5311bf1f"}},{"code_sha256_prefix":"ed6d68a61c8ebe7b","entry":"shd","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/dag.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/dag.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed6d68a61c8ebe7b"}},{"code_sha256_prefix":"fcf96753d45e5fc7","entry":"softmax","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/utils.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fcf96753d45e5fc7"}},{"code_sha256_prefix":"3d369fe1b6c9129b","entry":"triangle_count","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"experiments/triangle/graph.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/experiments/triangle/graph.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3d369fe1b6c9129b"}},{"code_sha256_prefix":"cdaf601e9f46b58d","entry":"ace_grid_search","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/trainers.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/trainers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cdaf601e9f46b58d"}},{"code_sha256_prefix":"166228e31a9f3b5f","entry":"make_environment","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/environments.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/environments.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"166228e31a9f3b5f"}},{"code_sha256_prefix":"45d95f58c148c69a","entry":"run_ace","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/trainers.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/trainers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"45d95f58c148c69a"}},{"code_sha256_prefix":"dd495e1c46ff8634","entry":"run_baseline","repo":"rodsveiga/infogeometric_gflows","repo_kind":"found_in_text","path":"gflows/trainers.py","file_url":"https://github.com/rodsveiga/infogeometric_gflows/blob/HEAD/gflows/trainers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dd495e1c46ff8634"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 7,081 of the 9,623 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9623,"papers_checked":7081},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}