Model reference · open weights
Apriel-Nemotron-Thinker is an open-weight language model from ServiceNow-AI. Apriel-Nemotron-15b-Thinker (BF16) weighs 29.9 GB; the smallest configuration that runs it is L40S 48 GB.
Summary of the ServiceNow-AI/Apriel-Nemotron-15b-Thinker model card, 2026-10-01
What it is
| Released by | ServiceNow-AI |
|---|---|
| Released | 2025-05-06 |
| Parameters | 15.0B |
| VRAM | 29.9 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 4090 24 GB 4 smaller cards | — | — | — | |
| RTX 5090 32 GB | — | — | 1K | 31.0 GB |
| L40S 48 GB | 7 | 1 | 63K | 44.0 GB |
| A100 80 GB | 28 | 7 | all 64K | 78.2 GB |
| H100 80 GB | 25 | 6 | all 64K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 35 | 8 | all 64K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 43 | 10 | all 64K | 107 GB |
| H200 141 GB | 61 | 15 | all 64K | 138 GB |
| B200 180 GB | 83 | 20 | all 64K | 176 GB |
| 2× RTX 4090 24 GB tensor parallel | 9 | 2 | all 64K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 9 | 2 | all 64K | 23.4 GB a card |
| 2× RTX 5090 32 GB tensor parallel | 18 | 4 | all 64K | 31.0 GB a card |
| 2× L40S 48 GB tensor parallel | 33 | 8 | all 64K | 44.0 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 32.4 GB | 37.4 GB |
| 5 | 39.1 GB | 64.3 GB |
| 8 | 44.1 GB | 84.4 GB |
| 16 | 57.6 GB | 138 GB |
| 32 | 84.4 GB | 245 GB |
| 64 | 138 GB | 460 GB |
One card, with vLLM's small-card settings.
From the model card
Apriel-Nemotron-15b-Thinker is a 15 billion‑parameter reasoning model in ServiceNow’s Apriel SLM series which achieves competitive performance against similarly sized state-of-the-art models like o1‑mini, QWQ‑32b, and EXAONE‑Deep‑32b, all while maintaining only half the memory footprint of those alternatives. It builds upon the Apriel‑15b‑base checkpoint through a three‑stage training pipeline (CPT, SFT and GRPO).
Highlights
Evaluations were conducted using lm-eval-harness and evalchemy.
Mid training / Continual Pre‑training In this stage, the model is trained on 100+ billion tokens of carefully curated examples drawn from mathematical reasoning, coding challenges, scientific discourse and logical puzzles. The objective is to strengthen foundational reasoning capabilities of the model. This stage is super critical for the model to function as a reasoner and provides significant lifts in reasoning benchmarks.
Supervised Fine‑Tuning (SFT) Next, we SFT the model using 200,000 high‑quality demonstrations that cover mathematical and scientific problem‑solving, coding tasks, generic instruction‑following scenarios, API/function invocation use cases etc.
Reinforcement Learning Although the SFT‑tuned checkpoint delivers strong performance on core competencies like mathematics and general knowledge, it exhibits weaknesses in instruction following and coding tasks. To address these gaps, we apply GRPO (with some minor modifications to the objective). The result is significant improvement on benchmarks such as IFEval, Multi Challenge, Enterprise RAG, MBPP and BFCL, while preserving scores on competition‑level math exams like AIME and AMC. GRPO also yields modest gains on GPQA and MixEval.
Throughout training, intermediate snapshots from both the SFT and GRPO stages are periodically merged, improving generalization and catastrophic forgetting.
See our technical report for full details: arXiv:2508.10948.
pip install transformers
Here is a code snippet demonstrating the model's usage with the transformers library's generate function:
import re
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "ServiceNow-AI/Apriel-Nemotron-15b-Thinker"
# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# prepare the model input
prompt = "Positive real numbers $x$ and $y$ satisfy $y^3=x^2$ and $(y-x)^2=4y^2$. What is $x+y$?\nMark your solution with \\boxed"
messages = [
{"role": "user", "content": prompt}
]
tools = []
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
tools=tools
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# conduct text completion
generated_ids = model.generate(
**model_inputs,
max_new_tokens=65536
)
output = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
# parsing the response
response = re.findall(r"\[BEGIN FINAL RESPONSE\](.*?)\[END FINAL RESPONSE\]", output, re.DOTALL)[0].strip()
print("output:", output)
print("response:", response)
You are a thoughtful and systematic AI assistant built by ServiceNow Language Models (SLAM) lab. Before providing an answer, analyze the problem carefully and present your reasoning step by step. After explaining your thought process, provide the final solution in the following format: [BEGIN FINAL RESPONSE] ... [END FINAL RESPONSE].
# user message here
Here are my reasoning steps:
# thoughts here
[BEGIN FINAL RESPONSE]
# assistant response here
[END FINAL RESPONSE]
The model will first generate its thinking process and then generate its final response between [BEGIN FINAL RESPONSE] and [END FINAL RESPONSE]. Here is a code snippet demonstrating the application of the chat template:
from transformers import AutoTokenizer
model_name = "ServiceNow-AI/Apriel-Nemotron-15b-Thinker"
tokenizer = AutoTokenizer.from_pretrained(model_name)
# prepare the model input
custom_system_prompt = "Answer like a pirate."
prompt = "You are an expert assistant in the implementation of customer experience management aspect of retail applications \n \nYou will be using Python as the programming language. \n \nYou will utilize a factory design pattern for the implementation and following the dependency inversion principle \n \nYou will modify the implementation based on user requirements. \n \nUpon user request, you will add, update, and remove the features & enhancements in the implementation provided by you. \n \nYou will ask whether the user wantQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.