Instructions to use SaifPunjwani/jrl-checkpoints with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SaifPunjwani/jrl-checkpoints with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SaifPunjwani/jrl-checkpoints")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("SaifPunjwani/jrl-checkpoints", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SaifPunjwani/jrl-checkpoints with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SaifPunjwani/jrl-checkpoints" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SaifPunjwani/jrl-checkpoints", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/SaifPunjwani/jrl-checkpoints
- SGLang
How to use SaifPunjwani/jrl-checkpoints with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "SaifPunjwani/jrl-checkpoints" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SaifPunjwani/jrl-checkpoints", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "SaifPunjwani/jrl-checkpoints" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SaifPunjwani/jrl-checkpoints", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use SaifPunjwani/jrl-checkpoints with Docker Model Runner:
docker model run hf.co/SaifPunjwani/jrl-checkpoints
Five checkpoint release
This repository contains five standalone reasoning-model checkpoints, ordered by checkpoint number.
Directory layout
Each checkpoint contains only two accelerator-specific subdirectories:
gpu/contains the directly loadable Transformers checkpoint, configuration, chat template, and tokenizer files.tpu/contains the JAX/Flax weight archive together with the matching configuration and tokenizer files. Checkpoint 1 stores its parameters in framework-neutral safetensors and includes a small JAX loader; checkpoints 2–5 use a Flax msgpack parameter archive.
The GPU and TPU directories contain the same checkpoint parameters in their
respective loading layouts; they are not separate benchmark candidates.
Pass@k evidence is kept separately in the top-level
pass-at-k-trajectories/ directory.
Checkpoint order and purpose
| Order | Folder | Model | Method |
|---|---|---|---|
| 1 | qwen3-1.7b-mrme-ckpt1 |
Qwen3-1.7B | MR-ME: 4 rounds, 3 explorers per round; per-explorer novelty weights are listed below |
| 2 | qwen3-1.7b-jrl-ckpt2 |
Qwen3-1.7B | JRL SingleScout: 1 round, 1 explorer, novelty weight lambda=0.5 |
| 3 | qwen3-4b-jrl-ckpt3 |
Qwen3-4B | JRL SingleScout: 1 round, 1 explorer, novelty weight lambda=0.5 |
| 4 | ministral-3-3b-jrl-ckpt4 |
Ministral-3-3B | JRL SingleScout: 1 round, 1 explorer, novelty weight lambda=0.5 |
| 5 | qwen3-1.7b-long-dapo-ckpt5 |
Qwen3-1.7B | Long-DAPO: correctness-only RL using four times the standard DAPO update budget |
Checkpoint 1 MR-ME schedule
Checkpoint 1 uses four rounds and three independently seeded explorers (Scouts) per round. All three explorers use the same novelty weight within a round, with fresh RND predictor/target initialization for every explorer.
| Round | Explorer 1 weight | Explorer 2 weight | Explorer 3 weight | Scout updates | Central updates | SFT cap |
|---|---|---|---|---|---|---|
| 1 | 0.75 | 0.75 | 0.75 | 17 / 17 / 16 | 25 | 500 |
| 2 | 0.50 | 0.50 | 0.50 | 17 / 17 / 16 | 25 | 500 |
| 3 | 0.35 | 0.35 | 0.35 | 17 / 17 / 16 | 25 | 500 |
| 4 | 0.25 | 0.25 | 0.25 | 17 / 17 / 16 | 25 | 500 |
Each round pools the explorers' trajectories through the quality filter, distills up to 500 accepted trajectories into the Central model, and then runs the 25-step correctness-only Central stage. The resulting Central weights initialize both the explorers and Central model in the following round.
The schedule above documents the MR-ME method configuration associated with the checkpoint label.
Pass@k and trajectories
- Checkpoint 1 AIME24 pass@64 evidence:
pass-at-k-trajectories/ckpt1-aime24-pass64-93.33/ - Checkpoint 2 AIME24 pass@64 evidence:
pass-at-k-trajectories/ckpt2-aime24-pass64-86.67/ - Checkpoint 5 has an additional diagnostic archive at
pass-at-k-trajectories/ckpt5-aime24-pass64-80.00/.
The pass@k evidence directory contains AIME24 material only. Other benchmark generation archives are not bundled in the checkpoint folders.
Evaluation protocol
The standard math evaluation uses thinking mode and the system prompt:
Please reason step by step, and put your final answer within \boxed{}.
Sampling parameters are temperature 0.6, top-p 0.95, top-k 20, and
min-p 0. The model-length cap is 40,960 tokens. AIME completions may use up
to 38,912 output tokens; other benchmarks use up to 32,768.
The full sampling lattice is:
- AIME24 and AIME25: 64 retained generations per problem.
- MATH500: 32 retained generations per problem.
- Minerva: 64 retained generations per problem.
- Request seed:
67101 + sample_indexunless an evaluation record explicitly pins a different independent confirmation seed. - Generation attempts per request: one; generation retries: zero.
For a benchmark with P problems and n retained samples per problem,
avg@n is 100 * total_correct / (P * n). The hard mean is the arithmetic mean
of AIME24, AIME25, MATH500, and Minerva avg@n.
For a problem with c correct samples among n, pass@k uses the standard
unbiased estimator:
1 - C(n - c, k) / C(n, k)
The reported pass@k is the mean across problems. With n=64, pass@64 is the
percentage of problems with at least one correct generation, which is why
28/30 equals 93.33%.
Final answers are graded with the paper-compatible math-answer extractor and grader; MathVerify is retained as a secondary audit. Raw generations are retained for pass@k and trajectory claims.