Views
No views yet
Honest summary. This is the best heads-only EBRM verifier we trained (Qwen3-4B encoder frozen, 46M trainable parameters across pooler / projector / cross-attention energy head). It was trained with hard-negative mining (6,273 contrastive pairs) on top ofebrm-v2-qwen3-4b.It does not beat self-consistency majority voting at k=6. It is published as a research artifact and as a transfer-learning starting point — not as a drop-in runtime verifier that improves accuracy over majority voting.
(problem, candidate solution)
pairs. Encoder is a frozen 4-bit Qwen3-4B. Trainable parameters:| Module | Params |
|---|---|
WeightedPooler (4 heads) | 8 |
GatedProjector (hidden → 768) | 12 |
CrossAttentionEnergy | 38 |
| Total trainable | 46M |
ebrm_inference.pt — flat-key state dict, 174 MB, step 400 (early-stopped on
held-out BBH eval).ebrm-v3-general (previous release) and the
single-shot / majority-voting baselines. Selection rule: pick the candidate
with the lowest energy.| Bench | n | k | Single-shot | Majority @k | v3 best-of-k | v4 best-of-k |
|---|---|---|---|---|---|---|
| GSM8K | 150 | 6 | 0.933 | 0.947 | 0.940 | 0.933 |
| BBH (4 tasks) | 182 | 6 | 0.923 | 0.962 | 0.923 | 0.951 |
logical_deduction_five_objects, date_understanding, navigate,
reasoning_about_colored_objects. causal_judgement excluded due to upstream
content-filter pollution in our generation pipeline.1from ebrm_system.verifiers import EBRMScorer
2
3scorer = EBRMScorer.from_pretrained(
4 repo_id="piyushptiwari/ebrm-v4-qwen3-4b",
5 checkpoint_file="ebrm_inference.pt",
6)
7energy = scorer.score(problem="...", solution="...")ebrm-system >= 0.31.0.ebrm-v2-qwen3-4b (58 tensors loaded; nested-dict state
unwrapped at load time).(gold, hard-negative) energies, margin 1.0.1@misc{ebrm_v4_2026,
2 author = {Piyush Tiwari},
3 title = {EBRM v4: Hard-negative trained energy verifier on Qwen3-4B},
4 year = {2026},
5 howpublished = {\url{https://huggingface.co/piyushptiwari/ebrm-v4-qwen3-4b}},
6}Qwen/Qwen3-4B) is subject to its own license.