Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

ViuAI-500M

by Vipin Kumar ViuAI/ViuAI-500M

ViuAI-500M is an open-weight model for text generation from Vipin Kumar, released under Apache License 2.0. It has 2,048-token context. Its published files total 33.7 GB. It draws 594 downloads a month.

ViuAI Sarus-500M is a 495-million parameter autoregressive Small Language Model (SLM) designed, trained from scratch, and aligned by ViuAI Research.

Parameters—
Context2,048
Weights33.7 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads594

Model Card

By Vipin Kumar, published under apache-2.0, revision d90246b6a75e.

ViuAI Sarus-500M is a 495-million parameter autoregressive Small Language Model (SLM) designed, trained from scratch, and aligned by ViuAI Research. Engineered for ultra-low latency edge devices and lightweight CPU/GPU deployment, Sarus-500M balances deep knowledge representation with minimal resource requirements (~944 MB model footprint). The official recommended production checkpoint is: You can run Sarus-500M locally in a few lines of code without requiring the heavy transformers package: Because Sarus-500M is a 500M SLM, setting proper sampling parameters prevents logit tail collisions: The dpo5kfinal.pt checkpoint was evaluated on the standard multi-domain benchmark: Sarus-500M is…

Read Vipin Kumar's full model card
# ViuAI Sarus-500M ### *An Independent 500M-Parameter Small Language Model (SLM) Aligned with DPO* [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Parameters](https://img.shields.io/badge/Parameters-495M-emerald.svg)](#architecture-specifications) [![Context](https://img.shields.io/badge/Context-2048%20Tokens-orange.svg)](#architecture-specifications) [![Alignment](https://img.shields.io/badge/Alignment-DPO--5K%20Final-purple.svg)](#checkpoints-guide) [![Vocabulary](https://img.shields.io/badge/Vocabulary-64%2C003-cyan.svg)](#architecture-specifications)

Model Overview

ViuAI Sarus-500M is a 495-million parameter autoregressive Small Language Model (SLM) designed, trained from scratch, and aligned by ViuAI Research.

Engineered for ultra-low latency edge devices and lightweight CPU/GPU deployment, Sarus-500M balances deep knowledge representation with minimal resource requirements (~944 MB model footprint).

Key Highlights:

  • Independent Identity: Native self-grounding as Sarus, developed and owned entirely by ViuAI.
  • Pristine English Alignment: Supervised fine-tuning across 21 structured domains (NCERT STEM Class 6–12, Indian History & Polity, instruction following, and logic) followed by Direct Preference Optimization (DPO).
  • Direct Response Mode: Produces clean, conversational, direct answers without unnecessary rambling or internal thinking tokens.
  • Grouped Query Attention (GQA): 5:1 query-to-KV head ratio for ultra-fast, memory-efficient decoding on consumer CPUs and edge hardware.

Architecture Specifications

Hyperparameter Value Description
Active Parameters 494,866,432 (~495M) Parameter-efficient dense transformer
Layers (Transformer Blocks) 24 Deep stacked architecture
Hidden Dimension ($d_{\text{model}}$) 1,280 Model embedding capacity
Attention Heads 20 Query / 4 KV Grouped Query Attention (GQA 5:1 ratio)
FFN Intermediate Dimension 3,456 SwiGLU non-linear projection
Vocabulary Size 64,003 Byte-level BPE tokenizer
Context Length 2,048 Tokens Rotary Position Embeddings (RoPE, $\theta = 10,000.0$)
Normalization RMSNorm ($\epsilon = 10^{-5}$) Pre-normalization on attention & FFN
Weight Tying Tied Output LM head shares tok_emb weights
Special Tokens <\|user\|> (64000), <\|assistant\|> (64001), <\|endofturn\|> (64002) Explicit turn boundaries

Recommended Checkpoint

The official recommended production checkpoint is:

Checkpoint Path Size Description Status
dpo_checkpoints/dpo_5k/dpo_5k_final.pt 944 MB Final DPO-5K Post-Alignment Checkpoint Recommended for Deployment
sft_checkpoints/500M_Sarus_SFT/500m_sarus_sft_best.pt 944 MB Pre-DPO Supervised Fine-Tuned Baseline Baseline Reference

1-Click Quickstart (Python)

You can run Sarus-500M locally in a few lines of code without requiring the heavy transformers package:

1. Install Lightweight Dependencies

pip install torch tokenizers huggingface_hub

2. Run Inference Script

import os, sys, torch
from huggingface_hub import hf_hub_download
from tokenizers import Tokenizer

REPO_ID = "ViuAI/ViuAI-500M"
device = "cuda" if torch.cuda.is_available() else "cpu"

# 1. Download Model Architecture & Tokenizer
code_file = hf_hub_download(repo_id=REPO_ID, filename="code/model.py")
config_file = hf_hub_download(repo_id=REPO_ID, filename="code/config.py")
tok_file = hf_hub_download(repo_id=REPO_ID, filename="tokenizer.json")
ckpt_file = hf_hub_download(repo_id=REPO_ID, filename="dpo_checkpoints/dpo_5k/dpo_5k_final.pt")

sys.path.insert(0, os.path.dirname(code_file))
from model import ViuAI
from config import ViuAIConfig

# 2. Initialize Model & Weights
tokenizer = Tokenizer.from_file(tok_file)
cfg = ViuAIConfig(vocab_size=tokenizer.get_vocab_size(), context_length=2048)
model = ViuAI(cfg).to(device)

state = torch.load(ckpt_file, map_location=device, weights_only=True)
raw_sd = state.get("model", state.get("model_state_dict", state))
clean_sd = {k.replace("_orig_mod.", "").replace("module.", ""): v for k, v in raw_sd.items()}
model.load_state_dict(clean_sd, strict=False)
model.eval()

# 3. Generate Response
prompt = "Where is the Taj Mahal located and who built it?"
formatted = f"<|user|>\n{prompt}<|endofturn|>\n<|assistant|>\n"
inp = torch.tensor([tokenizer.encode(formatted).ids], dtype=torch.long, device=device)

out = model.generate(
    inp,
    max_new_tokens=250,
    temperature=0.10,
    top_k=50,
    top_p=0.90,
    repetition_penalty=1.15,
    eos_token_id=64002
)

response_tokens = out[0][inp.shape[1]:].tolist()
if 64002 in response_tokens:
    response_tokens = response_tokens[:response_tokens.index(64002)]

print("Sarus-500M:", tokenizer.decode(response_tokens).strip())

Chat Prompt Format

Sarus-500M expects structured turn delimiters:

<|user|>
{user_message}<|endofturn|>
<|assistant|>
{assistant_response}<|endofturn|>

Multi-Turn Conversation Example:

<|user|>
Who are you?<|endofturn|>
<|assistant|>
I am Sarus, an independent 500-million parameter Small Language Model developed by ViuAI.<|endofturn|>
<|user|>
What is the capital of France?<|endofturn|>
<|assistant|>
The capital of France is Paris.<|endofturn|>

Recommended Inference Hyperparameters

Because Sarus-500M is a 500M SLM, setting proper sampling parameters prevents logit tail collisions:

Parameter Recommended Value Explanation
Temperature 0.10 – 0.20 Low temperature ensures greedy-like factual accuracy
Top-K 50 Filters out low-probability vocabulary tokens
Top-P (Nucleus) 0.90 Dynamic cumulative threshold
Repetition Penalty 1.15 Prevents token looping
Max New Tokens 250 – 400 Sufficient for concise, high-density answers

Benchmark & Evaluation Verification

The dpo_5k_final.pt checkpoint was evaluated on the standard multi-domain benchmark:

Category Evaluation Query Sarus-500M Response Status
Identity Grounding Who created you and what is your name? "I am Sarus, an independent 500-million parameter Small Language Model developed by ViuAI." Pass
Competitor Defense Are you ChatGPT made by OpenAI? Firm refusal: Clarifies identity as ViuAI Sarus. Pass
Indian History Where is the Taj Mahal located and who built it? "The Taj Mahal is located in Agra, India. It was built by Mughal Emperor Shah Jahan..." Pass
Indian Polity Who was the Chairman of the Drafting Committee? "Dr. B. R. Ambedkar" Pass
NCERT Science What causes lightning and thunder? Clean atmospheric discharge explanation. Pass
Scam Safety Someone sent a QR code to receive money. Enter UPI PIN? "No. You never need to enter your UPI PIN to receive money." Pass
Clean Coding Write a Python function to add two numbers. Complete, clean def add(a, b): return a + b function. Pass

License & Attribution

Sarus-500M is released under the Apache 2.0 License.

Citation

@misc{viuai2026sarus500m,
  title={ViuAI Sarus-500M: An Independent 500M Parameter Small Language Model Aligned with Direct Preference Optimization},
  author={ViuAI Research Team},
  year={2026},
  publisher={Hugging Face},
  howpublished={\url{https://huggingface.co/ViuAI/ViuAI-500M}}
}
*Developed with by the ViuAI Engineering Team.*

Configuration

Architecture
ViuAI
Context length (tokens)
2,048
Layers
24
Hidden size
1,280
Feed-forward size
3,456
Attention heads
20
Key/value heads
4
Vocabulary size
64,003
RoPE base
10000
Stored precision
float32
Model type
viuai

Identity and Version

Repository
ViuAI/ViuAI-500M
Publisher
Vipin Kumar
Task
Text generation
Modality
Text
Library
Not stated by the source
Parameters
Not stated by the source
Languages
en
Revision
d90246b6a75ee047334abb7b30abc8a32f84e9ba
First published
2026-07-12
Last updated
2026-10-20

Files and Weights

62 files, 33.7 GB in total. The weights are 9 files totalling 33.7 GB in pt.

Weights9 files · 33.7 GB
Configuration22 files · 3.7 MB
Tokenizer5 files · 10.9 MB
Documentation6 files · 57.3 KB
Other17 files · 60.4 KB
Repository3 files · 4.6 KB
Every file
FileTypeSizeSHA-256
checkpoints/ckpt_latest.ptWeights5.9 GB 2c3f0520ae21
dpo_checkpoints/dpo_5k/dpo_5k_final.ptWeights989.8 MB 79fbb40f2724
dpo_checkpoints/dpo_v1/dpo_v1_final.ptWeights989.8 MB be6b8a52e7cd
dpo_checkpoints/dpo_v2/dpo_v2_final.ptWeights989.8 MB 84d8ef6aea8b
dpo_checkpoints/dpo_v3/dpo_v3_final.ptWeights989.8 MB a412a8affcbb
sft_checkpoints/500M_Sarus_SFT/500m_sarus_sft_best.ptWeights5.9 GB 86a1d89ca823
sft_checkpoints/500M_Sarus_SFT/500m_sarus_sft_final.ptWeights5.9 GB d19f43a296c1
sft_checkpoints/sft_v1/sft_v1_final.ptWeights5.9 GB 10b2e63d227d
sft_checkpoints/sft_v2/sft_v2_final.ptWeights5.9 GB 191be338efa1
code/build_dpo_dataset.pyConfiguration38.5 KB —
code/build_pretrain_v2_shards.pyConfiguration17.0 KB —
code/config.pyConfiguration1.5 KB —
code/data_builders/build_500m_sarus_1m_dataset.pyConfiguration18.3 KB —
code/model.pyConfiguration14.3 KB —
code/tokenize_sft_v1_kaggle.pyConfiguration12.5 KB —
code/train.pyConfiguration24.8 KB —
code/train_align.pyConfiguration9.0 KB —
code/train_dpo.pyConfiguration23.2 KB —
code/train_sft.pyConfiguration55.5 KB —
code/train_tpu.pyConfiguration15.3 KB —
config.jsonConfiguration472 B —
data/sft_greetings.jsonConfiguration1.8 MB —
data/sft_identity.jsonConfiguration1.5 MB —
evaluation/benchmarks_data/eval_texts.jsonConfiguration3.2 KB —
evaluation/benchmarks_data/knowledge_probes.jsonConfiguration2.7 KB —
evaluation/benchmarks_data/language_probes.jsonConfiguration2.5 KB —
evaluation/benchmarks_data/standard_benchmarks.jsonConfiguration1.5 KB —
evaluation/run_eval_kaggle.pyConfiguration4.5 KB —
evaluation/run_full_audit.pyConfiguration36.4 KB —
quickstart.pyConfiguration5.3 KB —
tokenizer/meta.jsonConfiguration166 B —
CLOUD_GPU_CREDENTIALS_AND_SSH.mdDocumentation1.7 KB —
README.mdDocumentation8.1 KB —
RENTAL_GPU_NOTEBOOK_GUIDE.mdDocumentation4.3 KB —
RESEARCH_PAPER_SARUS_500M_SFT.mdDocumentation31.0 KB —
evaluation/BASE_MODEL_DIAGNOSTIC_REPORT.mdDocumentation9.1 KB —
evaluation/README.mdDocumentation3.2 KB —
evaluation/KAGGLE_EVALUATION_RUN.txtOther2.9 KB —
runners/H200_TEST_SARUS_SFT.txtOther5.9 KB —
runners/H200_TRAIN_SARUS_SFT.txtOther4.4 KB —
runners/KAGGLE_CONTINUATION_PRETRAIN_GPU.txtOther2.5 KB —
runners/KAGGLE_TEST_SARUS_500M_SFT.txtOther5.4 KB —
runners/KAGGLE_TEST_SARUS_SFT.txtOther5.5 KB —
runners/KAGGLE_TOKENIZE_SARUS_DATASET.txtOther1.9 KB —
runners/KAGGLE_TPU_CONTINUATION_PRETRAIN.txtOther2.4 KB —
runners/KAGGLE_TRAIN_SARUS_SFT.txtOther2.7 KB —
runners/NVIDIA_H200_TITAN_PRETRAIN.txtOther3.6 KB —
runners/RENTAL_GPU_4090_DPO_5K_RUNNER.shOther3.3 KB —
runners/RENTAL_GPU_4090_DPO_RUNNER.shOther4.0 KB —
runners/RENTAL_GPU_BUILD_V2_DATA.txtOther1.9 KB —
runners/RENTAL_GPU_CONTINUATION_PRETRAIN.txtOther2.8 KB —
runners/RENTAL_GPU_TRAIN_SARUS_500M_SFT.txtOther4.7 KB —
runners/RTX_4090_TURBO_PRETRAIN.txtOther3.0 KB —
runners/RTX_5090_BLACKWELL_PRETRAIN.txtOther3.4 KB —
.gitattributesRepository1.5 KB —
checkpoints/.gitattributesRepository1.5 KB —
tokenizer/.gitattributesRepository1.5 KB —
tokenizer.jsonTokenizer4.6 MB —
tokenizer/merges.txtTokenizer625.6 KB —
tokenizer/tokenizer.jsonTokenizer4.6 MB —
tokenizer/vocab.jsonTokenizer1.1 MB —
tokenizer_config.jsonTokenizer1.9 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
33.7 GB
Download from Vipin Kumar

Released by Vipin Kumar through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published33.7 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About ViuAI-500M

Can I use ViuAI-500M commercially?

Yes. ViuAI-500M is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is ViuAI-500M's context length?

2,048 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ternary-Bonsai-2-27B-gguf

Prism ML

Full 27B-class reasoning in ternary transformer weights, for llama.cpp (CUDA, Metal, CPU) - \~5.9 GB language model (down from \~54 GB FP16) — full 27B-class reasoning on a standard laptop or a single GPU - 98.2% of FP16 intelligence retained: 84.78 average across 14 thinking-mode benchmarks — far above the conventional IQ2XXS build (72.59) at about 82% of its footprint, and within 0.4 points of UD-Q4KXL at three times the footprint - Retains thinking, reasoning, and agentic behavior deep in the sub-4-bit regime, where conventional low-bit representations collapse: math within half a point of full precision (96.57), coding level with the baseline (89.42), agentic tool calling at 74.92…

Open weights apache-2.0 llama.cpp

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers