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