Model reference · open weights
JustRL-II-model is an open-weight language model from openbmb. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | openbmb |
|---|---|
| Type | Language models |
| Task | Text gen |
| Context | 64k tokens |
| Runs with | transformers |
| Released | 2026-09-07 |
| Popularity | 0 downloads / month |
| Licence | Unknown |
About
This is the RL initialization checkpoint used in the blog JustRL II: Scaling Small LLMs to 128K Reasoning with a Critic (中文版).
It is the starting point of the mathematical-reasoning case study in that blog — the checkpoint that every run there (the standard-GRPO baseline, the full JustRL II recipe, and all ablations) is initialized from and evaluated against. It is not the post-RL model. We release it so that the blog's data pipeline and training recipe can be reproduced from the exact same starting weights.
... before the final answer.| File | Notes |
|---|---|
pytorch_model.bin | bf16 weights, single file |
config.json | Llama-style architecture (LlamaForCausalLM), loads with stock transformers |
tokenizer.json, tokenizer_config.json, special_tokens_map.json | tokenizer |
chat_template.jinja | chat template with thinking-mode support (enable_thinking) |
Two end-of-sequence ids are configured (eos_token_id = [1, 130073]); pass both to your generation call or serving engine. config.json ships with max_position_embeddings = 65536; the RL runs in the blog use a 128k-token generation budget — refer to the blog for the long-context serving setup used there.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "openbmb/JustRL-II-base-model"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype=torch.bfloat16, device_map="auto"
)
messages = [{"role": "user", "content": "What is the sum of all positive divisors of 360? Think step by step."}]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True, enable_thinking=True
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
inputs.pop("token_type_ids", None)
out = model.generate(
**inputs,
max_new_tokens=8192,
do_sample=True,
temperature=1.0,
eos_token_id=[tokenizer.eos_token_id, 130073],
)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False))
For evaluation or RL rollouts, serve it with vLLM or SGLang as a standard Llama-architecture model, e.g.
vllm serve openbmb/JustRL-II-base-model --dtype bfloat16
This checkpoint has not been aligned for general assistant use and has only been evaluated on mathematical reasoning. It may produce very long outputs; set a generation budget appropriate to your hardware.
The blog trains this checkpoint with a critic-equipped GRPO recipe:
See the blog for the full specification, ablations, and critic diagnostics.
@misc{justrl2,
title = {JustRL II: Scaling Small LLMs to 128K Reasoning with a Critic},
author = {Pan, Haoxuan and Zhou, Chuyue and Li, Xin and others},
year = {2026},
howpublished = {\url{https://panhaoxuan.notion.site/justrl-ii-scaling-small-llms-to-128k-reasoning-with-a-critic}}
}
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys justrl-ii-model for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (justrl-ii-model below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"justrl-ii-model","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.