Instructions to use opencerebral/Boris-2-Instruct with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use opencerebral/Boris-2-Instruct with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="opencerebral/Boris-2-Instruct", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("opencerebral/Boris-2-Instruct", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use opencerebral/Boris-2-Instruct with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "opencerebral/Boris-2-Instruct" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "opencerebral/Boris-2-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/opencerebral/Boris-2-Instruct
- SGLang
How to use opencerebral/Boris-2-Instruct 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 "opencerebral/Boris-2-Instruct" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "opencerebral/Boris-2-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "opencerebral/Boris-2-Instruct" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "opencerebral/Boris-2-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use opencerebral/Boris-2-Instruct with Docker Model Runner:
docker model run hf.co/opencerebral/Boris-2-Instruct
Hugging Face |
Wiki |
License: Apache 2.0 |
Authors: OpenCerebral
Boris-2-Instruct
Boris-2-Instruct is the chat version of Boris-2, a 144M-parameter language model from OpenCerebral trained from scratch on a single NVIDIA V100. It is Boris-2 fully fine-tuned for one epoch on smol-smoltalk (460k conversations).
Chat format
ChatML-style turns, written as plain text (no tokens were added to the vocabulary):
<|im_start|>user
What is the water cycle?<|im_end|>
<|im_start|>assistant
The template is in tokenizer_config.json, so apply_chat_template works. <|im_end|> is ordinary text spanning several tokens, not an end-of-sequence token, so pass it as a stop string (below) or the model will keep writing new turns.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "opencerebral/Boris-2-Instruct"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, trust_remote_code=True)
msgs = [{"role": "user", "content": "Give me three tips for studying for a test."}]
x = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True)
y = model.generate(**x, max_new_tokens=300, stop_strings=["<|im_end|>"], tokenizer=tok)
print(tok.decode(y[0, x["input_ids"].shape[1]:]).removesuffix("<|im_end|>"))
The default generation settings sample (temperature 0.7, top-p 0.9, repetition penalty 1.1). Plain PyTorch custom code, no extra dependencies, no KV cache, so long replies are slow.
Results
Zero-shot, float32 weights, same scorer for both columns. ArithMark-3 uses the leaderboard's own bencharithmark-3.py (unmodified, default settings).
| Benchmark | Metric | Boris-2 | Boris-2-Instruct |
|---|---|---|---|
| HellaSwag | acc_norm | 50.27 | 48.86 |
| ARC-Easy | acc_norm | 59.81 | 57.74 |
| ARC-Challenge | acc_norm | 31.91 | 31.40 |
| PIQA | acc_norm | 72.74 | 71.22 |
| ArithMark-3 | acc_norm | 45.10 | 43.70 |
| Open SLM Index | 34.08 | 31.93 |
As usual for chat fine-tuning, the base-model benchmarks drop a little (about 2 Index points). For leaderboard comparisons of the pretrained model, use Boris-2.
Chat and knowledge benchmarks
Both models run through lm-evaluation-harness 0.4.12 with identical settings: float32, zero-shot. IFEval uses each model's chat template, greedy decoding, a stop at <|im_end|> and a cap of 256 new tokens (the task default is 1280; the cap is the same for both models). The other tasks are loglikelihood multiple choice without a chat template.
| Benchmark | Metric | Boris-2-Instruct | SmolLM2-135M-Instruct |
|---|---|---|---|
| IFEval | prompt-level strict | 19.41 | 19.59 |
| IFEval | prompt-level loose | 22.18 | 20.89 |
| IFEval | instruction-level strict | 29.86 | 32.73 |
| IFEval | instruction-level loose | 33.21 | 34.65 |
| TruthfulQA MC1 | acc | 25.34 | 23.99 |
| TruthfulQA MC2 | acc | 41.05 | 41.78 |
| MMLU (cloze) | acc | 28.41 | 27.72 |
| WinoGrande | acc | 52.09 | 51.07 |
| OpenBookQA | acc_norm | 34.60 | 33.20 |
| SciQ | acc_norm | 83.60 | 76.70 |
| CommonsenseQA | acc | 23.10 | 19.66 |
Boris-2-Instruct leads on 6 of the 8 knowledge and commonsense tasks; instruction following (IFEval) is roughly even, with SmolLM2-135M-Instruct ahead on the strict instruction-level score. These are single runs; differences under about 1.5 points (2 to 4 on IFEval) are within benchmark noise. smol-smoltalk includes IFEval-style constraint data (smol-constraints), which its authors decontaminated against IFEval; we did not run our own check.
Training
| Field | Value |
|---|---|
| Base model | Boris-2 (200.04B tokens) |
| Data | smol-smoltalk train split: 460,341 conversations, 403M tokens (303M trained on) |
| Loss | assistant replies and their closing `< |
| Packing | conversations packed into 2048-token rows as separate documents (attention, Canon and the n-gram lookup reset at each one) |
| Epochs / steps | 1 / 4,227 |
| Batch | 64 rows of 2048 tokens |
| Optimizer | AdamW, lr 1e-4, betas (0.9, 0.95), no weight decay, grad clip 1.0 |
| Schedule | linear warmup over 140 steps, cosine to zero |
| Precision | float16 mixed precision, float32 residual stream |
| Hardware | 1x NVIDIA V100 32GB, about 2.5 hours |
Loss on 800 held-out smol-smoltalk test conversations: 1.426 before fine-tuning, 1.041 after.
The model architecture is unchanged from Boris-2 (31 layers, hidden size 512, Canon layers, exact n-gram table, 32,768-token vocabulary, 2048-token context); see the Boris-2 card for details and the pretraining data.
Limitations
A 144M-parameter model. It sounds fluent but often gets facts and arithmetic wrong (for example, it answers 17 + 25 = 22), may claim abilities it does not have, and loses track of long conversations. Its 2048-token context includes the whole conversation. It has no safety tuning beyond what smol-smoltalk contains. Do not rely on it for factual, medical, legal or financial answers.
Copyright & License
Copyright 2026 OpenCerebral
This project and all associated files (the "Work") are licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- Downloads last month
- 155
Model tree for opencerebral/Boris-2-Instruct
Base model
opencerebral/Boris-2