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).

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for UchiKlab/science-reward-model

Finetuned
Qwen/Qwen3-14B
Finetuned
(348)
this model