flowchart LR subgraph Trainer["TRL GRPOTrainer (1.5B + LoRA)"] M[Qwen 2.5 Coder 1.5B
4-bit + LoRA r=16] G[8 generations / step] M --> G end subgraph Env["FATHOM OpenEnv Server (HF Space)"] R["REPL primitive
RestrictedPython + subprocess"] L["llm() primitive
recursive sub-call"] O[Observation: tool output] end subgraph Reward["Composable Verifier (4 components)"] F[format_gate] C[correctness] T[token_budget alpha-param] E[recursion_efficiency] F --> X[compose_reward_fn] C --> X T --> X E --> X end Trainer -- multi-turn rollout --> Env Env -- observation --> Trainer Trainer -- completion + metadata --> Reward Reward -- scalar reward --> Trainer style M fill:#1f77b4,color:#fff style X fill:#2ca02c,color:#fff