| from __future__ import annotations |
|
|
| from sgjm.harness.runner import HarnessConfig, HarnessRunner |
| from sgjm.modules.backbone import StubBackbone |
| from sgjm.modules.drafter import StubDrafter |
| from sgjm.modules.judge import StubJudge |
|
|
|
|
| def main() -> None: |
| backbone = StubBackbone(latent_dim=16, seed=7) |
| drafter = StubDrafter(backbone=backbone, vocab_size=32, seed=11) |
| judge = StubJudge() |
| runner = HarnessRunner( |
| backbone=backbone, |
| drafter=drafter, |
| judge=judge, |
| config=HarnessConfig(branches_per_step=4, block_size=3, max_steps=4, keep_top_k=2), |
| ) |
| snap = runner.run(prompt_tokens=[1, 2, 3, 4]) |
| print( |
| f"steps={snap.steps} drafted={snap.drafted} pruned={snap.pruned} " |
| f"accepted={snap.accepted} merged={snap.merged} committed={snap.committed} " |
| f"acc_rate={snap.acceptance_rate:.3f} merge_rate={snap.merge_rate:.3f} " |
| f"prune_rate={snap.prune_rate:.3f} graph_size={len(runner.graph)}" |
| ) |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|