Science Reward Models (Qwen3-14B)
Five reward models for scoring scientific hypotheses, all sharing one architecture and interface. Given a research context and a proposed hypothesis, each model emits a 3-vector of scalar rewards:
[novelty, feasibility, probability]
| Subfolder | Scope | Notes |
|---|---|---|
general/ |
Pooled across all fields | Default / recommended starting point |
biology/ |
Biology only | |
chemistry/ |
Chemistry only | |
medicine/ |
Medicine only | |
social/ |
Social science only |
Architecture
- Base model: Qwen/Qwen3-14B
- Head:
Qwen3ForSequenceClassification,num_labels=3 - Precision: bf16
- Each checkpoint is a full fine-tune (no adapters) — self-contained, ready to
load with
AutoModelForSequenceClassification.from_pretrained.
Training
Each model was trained with a margin-augmented Bradley–Terry loss on
consecutive within-scientist idea pairs (h1 vs h2, h2 vs h3, h3 vs h4, h4 vs h5):
for a pair with human ratings s_left, s_right on a given dimension, the loss
encourages the model's reward gap to reflect both the sign and the magnitude
(margin_weight * |s_left - s_right|) of the human rating gap, summed over the
three dimensions.
Only model weights are released here — the training data is not included.
Usage
from inference import ScienceRewardModel
# Load any of the 5: general | biology | chemistry | medicine | social
rm = ScienceRewardModel.from_pretrained("general")
rewards = rm.score(
title="Choreographing oscillatory hydrodynamics with DNA-coated gold nanoparticles",
context="Self-assembly of nanoparticles, particularly hierarchical design of "
"nanoparticle-based systems, has led to the creation of dynamic "
"self-assemblies that can mimic living systems...",
perspectives="1. ...\n2. ...", # the author's own perspective hypotheses
hypothesis="In a system of self-assembling gold nanoparticles with embedded "
"catalytic enzymes, oscillatory hydrodynamic flows will emerge...",
)
print(rewards)
# {'novelty': 1.83, 'feasibility': -0.44, 'probability': 0.92}
Or from the command line:
python inference.py --model general \
--title "..." --context "..." --perspectives "..." --hypothesis "..."
To download a single field's checkpoint without the others:
from huggingface_hub import snapshot_download
snapshot_download("<namespace>/science-reward-model", allow_patterns=["biology/*", "inference.py"])
Citation
If you use these models, please cite the accompanying paper (see repository for details).