polyguard-openenv / docs /reward_design.md
TheJackBright's picture
Deploy PolyGuard OpenEnv Space
877add7 verified
# Reward Design
All reward outputs are clamped to `[0.001, 0.999]` with 3-decimal precision. The reward model is intentionally decomposed so training progress and reward hacking are inspectable.
## Component Rewards
The runtime keeps 13 reward columns:
- `format_compliance_score`
- `candidate_alignment_score`
- `legality_score`
- `safety_delta_score`
- `burden_improvement_score`
- `disease_stability_score`
- `dosing_quality_score`
- `abstention_quality_score`
- `efficiency_score`
- `process_fidelity_score`
- `explanation_grounding_score`
- `anti_cheat_score`
- `uncertainty_calibration_score`
## Primary Channels
The component columns map into 4 judge-friendly reward channels:
- `safety_legality`
- `clinical_improvement`
- `dosing_quality`
- `process_integrity`
These channels are exposed in `info.primary_reward_channels`, logged during GRPO verification, and plotted in evaluation reports.
## Anti-Hacking Checks
The environment explicitly penalizes repeated action loops, keep-regimen abuse, review abuse, candidate ID mismatch, illegal candidate selection, known high-risk DDI no-op behavior, parser exploit patterns, and retrying a failed no-op action.
## Failure Visibility
Per-step payloads include `failure_reasons`, `invalid_action_count`, `checks`, timeout flags, safety report, anti-cheat reasons, transition delta, reward breakdown, and primary reward channels.