Views
No views yet
| Metric | Value |
|---|---|
| Pairwise accuracy | 95.7% |
| Eval loss | 0.071 |
| Training pairs | 92 |
| Eval pairs | 23 |
| Training time | 105 seconds |
1import torch
2from transformers import AutoModelForSequenceClassification, AutoTokenizer
3from peft import PeftModel
4
5# Load
6tokenizer = AutoTokenizer.from_pretrained("vanthienha199/thinktank-prm-qwen2.5-0.5b")
7base = AutoModelForSequenceClassification.from_pretrained("Qwen/Qwen2.5-0.5B", num_labels=1)
8model = PeftModel.from_pretrained(base, "vanthienha199/thinktank-prm-qwen2.5-0.5b")
9model.eval()
10
11# Score a reasoning step
12text = "Question: What is 25% of 200?\n\nReasoning step (step 3, calculation): 25% = 0.25. 0.25 * 200 = 50."
13inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=256)
14with torch.no_grad():
15 score = model(**inputs).logits.item()
16
17print(f"Score: {score:.3f}") # Positive = useful, negative = wasteful| Step Type | Content | Score | Label |
|---|---|---|---|
| thinking | "I need to find 25% of 200..." | -0.33 | WASTEFUL |
| calculation | "25/100 = 0.25. 0.25 * 200 = 50" | +3.21 | USEFUL |
| conclusion | "The answer is 50" | +3.25 | USEFUL |
| verification | "Let me double-check: 200/4 = 50" | +1.08 | USEFUL |
ThinkTank GWAP (19 users, 206 judgments)
→ Consensus labels (165 steps)
→ Reward pairs (115 chosen/rejected)
→ This PRM (95.7% accuracy)
→ Score any LLM reasoning chain1@misc{thinktank-prm-2026,
2 title={ThinkTank PRM: A Process Reward Model Trained on Crowdsourced Reasoning Labels},
3 author={Ha Le},
4 year={2026},
5 url={https://huggingface.co/vanthienha199/thinktank-prm-qwen2.5-0.5b}
6}