alt.freeweights.text / Apriel-1.5-15b-Thinker
From: ServiceNow-AI <huggingface.co/ServiceNow-AI>Newsgroups: alt.freeweights.textSubject:

Apriel-1.5-15b-Thinker

Date: 2026-11-15Commit: e409603Signed: 2DC28CC7B26A283B ✓

Image text to text model with 14.9B parameters. Safetensors weights, 29.7 GB in all. Published by ServiceNow-AI under MIT.

14.9B params29.7GBApriel-1.5-15b-Thinkersafetensorspermissive
FactsParams14.9BSize29.7 GBFormatssafetensorsTaskimage text to textLicenseMITFrom sourcepermissive
$ fw get ServiceNow-AI/Apriel-1.5-15b-Thinker
# manifest sha256 a40c69eeb2c7… · 29.7 GB · 19 files
$ fw verify ./Apriel-1.5-15b-Thinker ServiceNow-AI/Apriel-1.5-15b-Thinker
From sourceHosted (signed)ServiceNow-AI/Apriel-1.5-15b-ThinkerLast check: 2026-11-15 03:40 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
29.7 GB
Weights
29.7 GB (safetensors)
Parameters
14.9B
Formats
safetensors
Task
image text to text
License
MIT (permissive)
Files
19, each with a sha256
Publisher
ServiceNow-AI
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:40 UTCpassed

Model card

From the publisher at commit e409603. Shown as plain text with links; images open at the publisher.

Apriel-1.5-15b-Thinker - Mid training is all you need!#

Image: thumbnail /ˈɑː.pri.əl/


Table of Contents#

  1. Summary
  2. Evaluation
  3. Training Details
  4. How to Use
  5. Intended Use
  6. Limitations
  7. Security and Responsible Use
  8. Software
  9. License
  10. Acknowledgements
  11. Citation

Click here to skip to the technical report -> https://huggingface.co/ServiceNow-AI/Apriel-1.5-15b-Thinker/blob/main/Apriel-1.5-Thinker.pdf


Summary#

Apriel-1.5-15b-Thinker is a multimodal reasoning model in ServiceNow’s Apriel SLM series which achieves competitive performance against models 10 times it's size. Apriel-1.5 is the second model in the reasoning series. It introduces enhanced textual reasoning capabilities and adds image reasoning support to the previous text model. It has undergone extensive continual pretraining across both text and image domains. In terms of post-training this model has undergone text-SFT only. Our research demonstrates that with a strong mid-training regimen, we are able to achive SOTA performance on text and image reasoning tasks without having any image SFT training or RL.

Highlights

  • Achieves a score of 52 on the Artificial Analysis index and is competitive with Deepseek R1 0528, Gemini-Flash etc.
  • It is AT LEAST 1 / 10 the size of any other model that scores > 50 on the Artificial Analysis index.
  • Scores 68 on Tau2 Bench Telecom and 62 on IFBench, which are key benchmarks for the enterprise domain.
  • At 15B parameters, the model fits on a single GPU, making it highly memory-efficient.

Evaluation#


Results reported by Artificial Analysis#

Image: index - latest 2

Image: index vs size fixed 3


Note from the developers#

We are a small lab with big goals. While we are not GPU poor, our lab, in comparison has a tiny fraction of the compute available to other Frontier labs. Our goal with this work is to show that a SOTA model can be built with limited resources if you have the right data, design and solid methodology.

We set out to build a small but powerful model, aiming for capabilities on par with frontier models. Developing a 15B model with this level of performance requires tradeoffs, so we prioritized getting SOTA-level performance first. Mid-training consists only of CPT and SFT; no RL has been applied.

This model performs extensive reasoning by default, allocating extra internal effort to improve robustness and accuracy even on simpler queries. You may notice slightly higher token usage and longer response times, but we are actively working to make it more efficient and concise in future releases.


Training Details#

Training Hardware

  • GPUs: 640 × H100
  • Training Time: 7 days

Mid training / Continual Pre‑training In this stage, the model is trained on billions of tokens of carefully curated textual samples drawn from mathematical reasoning, coding challenges, scientific discourse, logical puzzles, and diverse knowledge-rich texts along with multimodal samples covering image understanding and reasoning, captioning, and interleaved image-text data. The objective is to strengthen foundational reasoning capabilities of the model. This stage is critical for the model to function as a reasoner and provides significant lifts in reasoning benchmarks.

Supervised Fine‑Tuning (SFT) The model is fine-tuned on over 2M high-quality text samples spanning mathematical and scientific problem-solving, coding tasks, instruction-following, API/function invocation, and conversational use cases. This results in superior text performance comparable to models such as Deepseek R1 0528 and Gemini-Flash. Although no image-specific fine-tuning is performed, the model’s inherent multimodal capabilities and cross-modal transfer of reasoning behavior from the text SFT yield competitive image performance relative to other leading open-source VL models.


Running Apriel-1.5-15B-Thinker with vLLM#

As the upstream PR is not yet merged, you can use this custom image as an alternate way to run the model with tool and reasoning parsers enabled.

Docker Image#
docker.io/amant555/vllm_apriel:latest
Start Command#

Run the container with the following command:

python3 -m vllm.entrypoints.openai.api_server \
  --model ServiceNow-AI/Apriel-1.5-15b-Thinker \
  --served-model-name Apriel-1p5-15B-Thinker \
  --trust_remote_code \
  --max-model-len 131072 \
  --enable-auto-tool-choice \
  --tool-call-parser apriel \
  --reasoning-parser apriel

This will start the vLLM OpenAI-compatible API server serving the Apriel-1.5-15B-Thinker model with Apriel’s custom tool parser and reasoning parser.

How to Use#

pip install transformers

Running the Reasoning model#

Here is a code snippet demonstrating the model's usage with the transformers library's generate function:

# Tested with transformers==4.48

import re
import requests
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForImageTextToText

# Load model
model_id = "ServiceNow-AI/Apriel-1.5-15b-Thinker"
model = AutoModelForImageTextToText.from_pretrained(
    model_id, 
    torch_dtype=torch.bfloat16, 
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_id)

# Example 1: Text-only prompt
chat = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What is the capital for France?"},
        ],
    }
]

inputs = processor.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt")
inputs = {k: v.to(model.device) if isinstance(v, torch.Tensor) else v for k, v in inputs.items()}
inputs.pop("token_type_ids", None)

with torch.no_grad():
    output_ids = model.generate(**inputs, max_new_tokens=1024, do_sample=True, temperature=0.6)

generated_ids = output_ids[:, inputs['input_ids'].shape[1]:]
output = processor.decode(generated_ids[0], skip_special_tokens=True)
response = re.findall(r"\[BEGIN FINAL RESPONSE\](.*?)\[END FINAL RESPONSE\]", output, re.DOTALL)[0].strip()

print("Text-only Response:", response)

# Example 2: Image understanding
url = "https://picsum.photos/id/237/200/300"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")

chat = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Which animal is this?"},
            {"type": "image"},
        ],
    }
]

prompt = processor.apply_chat_template(chat, add_generation_prompt=True, tokenize=False)
inputs = processor(text=prompt, images=[image], return_tensors="pt").to(model.device)
inputs.pop("token_type_ids", None)

with torch.no_grad():
    output_ids = model.generate(**inputs, max_new_tokens=1024, do_sample=True, temperature=0.6)

generated_ids = output_ids[:, inputs['input_ids'].shape[1]:]
output = processor.decode(generated_ids[0], skip_special_tokens=True)
response = re.findall(r"\[BEGIN FINAL RESPONSE\](.*?)\[END FINAL RESPONSE\]", output, re.DOTALL)[0].strip()

print("Image Response:", response)

Chat Template#

<|system|>
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].
<|end|>
<|user|>
# user message here
<|end|>
<|assistant|>
Here are my reasoning steps:
# thoughts here
[BEGIN FINAL RESPONSE]
# assistant response here
[END FINAL RESPONSE]
<|end|>

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-1.5-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 wants to refactor the provided code or needs a sample implementation for reference. Upon user confirmation, I will proceed accordingly. \n \n**Guidelines:** \n 1. **User Requirements:** \n - You have to ask users about their requirements, clarify the user expectations, and suggest the best possible solution by providing examples of Python code snippets. \n - Ask users about which type of reports they need to assess the AI model's performance, accuracy, and reliability. \n - After providing the solution, you have to ask the user about the trial of the solution and modify the solution based on the user feedback. \n \n 2. **Libraries/Frameworks:** \n - You will be utilizing Python as a programming language. \n - You will be using Flask framework for REST APIS implementation \n \n 3. **Communication Gesture:** \n - Your conversation with the user should be interactive, supportive, courageous, and professional. \n - You have to break down the complex concepts into sub-concepts and try to explain them to the user. \n - You have to ask the user for the required parameters. If the user refuses to provide in 2 attempts, politely exit the conversation. \n - You have to provide your supported parameters to the user, if the user refuses to accept them then you have to put an apology note and exit the conversation. \n - You have to track the conversation about unasked questions by the user. If some/one of the questions remain then you have to remind the user about these questions and proceed to answer them based on the user's confirmation \n \n 4. **Implementation:** \n - Your code/implementations should be reliable, scaleable, modular, and reusable. \n - You will be providing unit tests for the implementation upon user request. \n - You will be following MVC architecture for the applications \n - Your implementations must be well-commented and readable \n \n \n- Today's date is 23rd August 2024. \n- The default sender email is sender-assistant@email.com.\nHi, I am conducting research on retail customer feedback systems and I need assistance with designing and implementing them. Could you kindly provide me with a list of general customer feedback system modules?"
messages = [
    {"role": "user", "content": custom_system_prompt + "\n\n" + prompt}
]
# example tools
tools = [{"type": "function", "function": {"name": "getRetailFeedbackModules", "description": "Returns the list of modules usually present in the retail industry", "parameters": {"type": "object", "properties": {"page": {"type": "integer", "description": "The current page number.", "default": 1}, "page_size": {"type": "integer", "description": "The number of items per page.", "default": 3}}}}}, {"type": "function", "function": {"name": "verifyImplementation", "description": "Returns the list of modules usually present in the retail industry", "parameters": {"type": "object", "properties": {"coding_language": {"type": "string", "description": "The supported languages for verification of implementation.", "default": "python", "enum": ["python", "java", "php"]}, "code": {"type": "string", "description": "The code which needs verification"}, "design_pattern": {"type": "string", "description": "The design pattern to verify in the implementation", "enum": ["factory", "strategy", "singleton"]}, "verify_best_practices": {"type": "boolean", "description": "The verification of the coding style based on the language selected", "default": true}}}}}]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    tools=tools
)
model_inputs = tokenizer([text], return_tensors="pt")

Usage Guidelines#

  1. Use the model’s default chat template, which already includes a system prompt.
  2. We recommend setting temperature to 0.6.
  3. We ensure the model starts with Here are my reasoning steps:\n during all our evaluations. This is implemented in the default chat template.
  4. For multi-turn conversations, intermediate turns (historical model outputs) are expected to contain only the final response, without reasoning steps.

Intended Use#

The Apriel family of models are designed for a variety of general-purpose instruction tasks, including:

  • Code assistance and generation
  • Logical reasoning and multi-step tasks
  • Question answering and information retrieval
  • Function calling, complex instruction following and agent use cases

They are not intended for use in safety-critical applications without human oversight or in scenarios requiring guaranteed factual accuracy.


Limitations#

  • Factual accuracy: May produce incorrect, misleading, or outdated content. Outputs should be verified before use in critical contexts.
  • Bias: May reflect societal, cultural, or systemic biases present in training data.
  • Ethics: Do not use the model to produce harmful, unlawful, or unethical content.
  • Language: Strongest performance is in English. Output quality may degrade in underrepresented languages.
  • Critical use: Not suitable for medical, legal, financial, or other high-risk applications without safeguards.

Security and Responsible Use#

Security Responsibilities: Deployers and users are strongly encouraged to align their security practices with established frameworks and regulatory guidelines such as the EU AI Act and the NIST AI Risk Management Framework (RMF).

Guidelines for Deployers:

  • Regularly conduct robustness assessments to identify and mitigate adversarial inputs.
  • Implement validation and filtering processes to prevent harmful or biased outputs.
  • Continuously perform data privacy checks to guard against unintended data leaks.
  • Document and communicate the model's limitations, intended usage, and known security risks to all end-users.
  • Schedule periodic security reviews and updates to address emerging threats and vulnerabilities.

Guidelines for Users:

  • Follow established security policies and usage guidelines provided by deployers.
  • Protect and manage sensitive information when interacting with the model.
  • Report anomalies, suspicious behavior, or unsafe outputs to deployers or developers.
  • Maintain human oversight and apply judgment to mitigate potential security or ethical risks during interactions.

Disclaimer: Users accept responsibility for securely deploying, managing, and using this open-source LLM. The model is provided "as-is," without explicit or implied warranty regarding security or fitness for any specific application or environment.


Software#


License#

MIT


Citation#

@misc{radhakrishna2025apriel1515bthinker,
      title={Apriel-1.5-15b-Thinker}, 
      author={Shruthan Radhakrishna and Aman Tiwari and Aanjaneya Shukla and Masoud Hashemi and Rishabh Maheshwary and Shiva Krishna Reddy Malay and Jash Mehta and Pulkit Pattnaik and Saloni Mittal and Khalil Slimi and Kelechi Ogueji and Akintunde Oladipo and Soham Parikh and Oluwanifemi Bamgbose and Toby Liang and Ahmed Masry and Khyati Mahajan and Sai Rajeswar Mudumba and Vikas Yadav and Sathwik Tejaswi Madhusudhan and Torsten Scholak and Sagar Davasam and Srinivas Sunkara and Nicholas Chapados},
      year={2025},
      eprint={2510.01141},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2510.01141}, 
}

Files

19 files · 29.7 GBWeights 29.7 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 19 files with their sha256
FileSizesha256
.gitattributes1.63 KB504dfc8e530a2b238c5a1d252a26e551983020150d598bcae8e45a8aa0da249b
Apriel-1.5-Thinker.pdf3.39 MB8f38a1b75f8714198ca728a60563f34122f5b2c9fd207055d47de12f7bf055da
README.md17.2 KBc88c7c7051c1516676e415da8373f1528623ffa6647173d67d2e31ce0930e0b2
chat_template.json6.50 KBba3719dab1d63542e2839b4e6b1ef633c16c0fde090df1659ae229daf4c36fcb
config.json4.55 KBadc1aa4b2b140776aa04453d73f510489fd8748cdad21f72bdb97f6c4ff21d0d
generation_config.json111 Bae9c013449dab45501dd67d85b191b5d6068339c2eefd071cf542e04e71f1511
model-00001-of-00007.safetensors4.99 GB2a61970257466b22ad181daa9e2fb9203d285ce9be8a69404a5656ff2df5697c
model-00002-of-00007.safetensors4.96 GB043752ae06ccb0033497f5edf079f2e1b479f99fde5d36142d7ebff340f98fc1
model-00003-of-00007.safetensors4.91 GBb4e9505546d37801f8e22d2ba17addf38d25788db205418119e8cb7eac72b9a3
model-00004-of-00007.safetensors4.91 GB0d7cc7b852cc200395798ca9c4c34dff2bdedb7acd45651e2da19274e02b84bc
model-00005-of-00007.safetensors4.91 GBad8051f55027b8d759a5cab223b429a1bd6011af4f7c1a67f421535893e0a255
model-00006-of-00007.safetensors3.71 GB902cbc266bde9aa9d9ea0087516a2ef2da41f3b279193450d71d736cc06442b4
model-00007-of-00007.safetensors1.34 GB3d04fad29f38deec44697bb621ad6b462e606dedebe4d37132ae1e9e9b751bcb
model.safetensors.index.json64.9 KB83c86a5088a79cd8518b1aed05159f68e58a76156863af80aa7c0aaf7b1c144d
preprocessor_config.json483 B519f21adb05f945c2d380b550eaac6e84ebbb8a9be2a6f6e72d8f9242ba9d274
processor_config.json162 B4ef9d7939b2bf2aaa39af0c6e57c31186c0efc24b1948d14047b90e143e676dc
special_tokens_map.json552 B358c249e2fb29060c6b73157d428853b0c48710deffc8ee670ab1013880946c9
tokenizer.json17.1 MB84f33e6f52b2833e8cc17229af8eea363f640a898f19a48184a2c7f6f5a88337
tokenizer_config.json184 KBcb217efe2f1e7e3f2bf43ab77abec58fd99fdf709ec8f4ffb1e187d460e0cf09
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
e40960313d pinned now2026-11-15 03:40 UTC19 files · 29.7 GB

Use it

$ fw get ServiceNow-AI/Apriel-1.5-15b-Thinker
# manifest sha256 a40c69eeb2c7… · 29.7 GB · 19 files
$ fw verify ./Apriel-1.5-15b-Thinker ServiceNow-AI/Apriel-1.5-15b-Thinker
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/ServiceNow-AI/Apriel-1.5-15b-Thinker.json --dir ./Apriel-1.5-15b-Thinker $ python3 fw.py verify ./Apriel-1.5-15b-Thinker ./ServiceNow-AI__Apriel-1.5-15b-Thinker.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download ServiceNow-AI/Apriel-1.5-15b-Thinker --revision e40960313dd03ca4a8220ee20bb6a986e0970f0a --local-dir ./Apriel-1.5-15b-Thinker
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("ServiceNow-AI/Apriel-1.5-15b-Thinker", revision="e40960313dd03ca4a8220ee20bb6a986e0970f0a") model = AutoModelForImageTextToText.from_pretrained("ServiceNow-AI/Apriel-1.5-15b-Thinker", revision="e40960313dd03ca4a8220ee20bb6a986e0970f0a", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve ServiceNow-AI/Apriel-1.5-15b-Thinker --revision e40960313dd03ca4a8220ee20bb6a986e0970f0a

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
c88c7c7051c1516676e415da8373f1528623ffa6647173d67d2e31ce0930e0b2
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: ServiceNow-AI <huggingface.co/ServiceNow-AI>Newsgroups: alt.freeweights.textSubject: Apriel-1.5-15b-ThinkerDate: 2026-11-15Commit: e409603Signed: 2DC28CC7B26A283B ✓
Upstream
ServiceNow-AI/Apriel-1.5-15b-Thinker
Pinned commit
e40960313dd03ca4a8220ee20bb6a986e0970f0a
Manifest
Apriel-1.5-15b-Thinker.json · .minisig
Manifest sha256
a40c69eeb2c7361436e0b93af79315d5b82dda05287db63239ca91e6d9960e85
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:40 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/ServiceNow-AI/Apriel-1.5-15b-Thinker.json $ curl -O https://freeweights.allternit.com/manifests/ServiceNow-AI/Apriel-1.5-15b-Thinker.json.minisig $ minisign -Vm Apriel-1.5-15b-Thinker.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

2 models in the catalog name this one as their parent.

Quantizations
2
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download ServiceNow-AI/Apriel-1.5-15b-Thinker
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Apriel-1.5-15b-Thinker.json. Provenance. Takedown history: none.

Variants

2 quantized or adapter builds of Apriel-1.5-15b-Thinker. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B