Downloads · 30 days
0
VinkuraAI/Maitreyi-Y1
Maitreyi-Y1 is a text generation model from VinkuraAI. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as apache-2.0.
Maitreyi Y1 is the first release in the Maitreyi series of sovereign Small Language Models by Vinkura Innovations. It is purpose-built for Indian Law Enforcement operations, with deep domain alignment across the Bhara…
Downloads · 30 days
0
Access
Public
Updated Jul 13, 2026
Parameters
1.5B
3.1 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors3.1 GB · 100%
From the Hugging Face model README
Maitreyi Y1 is the first release in the Maitreyi series of sovereign Small Language Models by Vinkura Innovations. It is purpose-built for Indian Law Enforcement operations, with deep domain alignment across the Bharatiya Nyaya Sanhita (BNS), Bharatiya Nagarik Suraksha Sanhita (BNSS), Bharatiya Sakshya Adhiniyam (BSA), and Uttar Pradesh Police operational frameworks.
Maitreyi Y1 is designed to run entirely offline on edge hardware at police stations, district offices, and command centers — requiring no internet connectivity, API keys, or cloud dependencies. The model provides high-fidelity assistance for legal section lookups, FIR/GD drafting, procedural guidance, and administrative automation under the new Indian criminal code regime.
Key Highlights:
- Fully merged, standalone
.safetensorscheckpoint — no adapters or runtime dependencies.- Trained on a curated corpus of 50M+ domain-specific tokens spanning Indian statutory law, police procedural manuals, and administrative templates.
- Parametric identity encoding — the model identifies as Maitreyi Y1 even without system prompt injection.
- Runs on consumer CPUs with as little as 8GB RAM.
Maitreyi Y1 is a domain-adapted, instruction-tuned causal language model derived from Qwen/Qwen2.5-1.5B-Instruct. The adaptation was performed using Parameter-Efficient Fine-Tuning (PEFT) via Low-Rank Adaptation (LoRA) across all decoder layer projection matrices, followed by full in-place weight merging to produce a zero-overhead standalone checkpoint.
The model was trained for 25 epochs on a multi-segment corpus covering statutory legal texts (BNS, BNSS, BSA), UP Police CCTNS operational guidelines, legal document templates (FIR skeletons, General Diary entries), and adversarial identity alignment data. The training pipeline achieved terminal convergence at a loss of 0.04, indicating near-complete internalization of the target domain knowledge.
Unlike general-purpose chat models, Maitreyi Y1 is explicitly aligned to Indian policing contexts. It understands the structural hierarchy of Indian police forces, can map legacy IPC sections to their BNS equivalents, and generates procedurally correct Hindi/English bilingual document drafts.
| Developers | Vinkura Innovations Network Pvt. Ltd. |
| Co-Founders | Akshat Shukla, Priyanshu Rajput |
| Contact | [email protected] |
| Base Model | Qwen/Qwen2.5-1.5B-Instruct |
| Base Model License | Apache 2.0 |
| Total Parameters | 1.56B |
| Trainable Parameters | 18.46M (1.18% via LoRA) |
| Architecture | Decoder-Only Transformer with GQA |
| Context Length | 131,072 tokens |
| Precision | FP16 (SafeTensors) |
| Weight File Size | 3.08 GB |
| Training Hardware | NVIDIA Tesla T4 (16GB VRAM) |
| Training Epochs | 25 |
| Training Corpus | 50M+ tokens (proprietary, domain-curated) |
| Final Training Loss | 0.04 |
| Release Date | July 2025 |
The training corpus is a proprietary, multi-segment dataset curated by Vinkura Innovations. It is composed of:
The model was fine-tuned using Supervised Fine-Tuning (SFT) with LoRA adapters applied to all seven linear projection matrices in each of the 28 decoder blocks:
q_proj, k_proj, v_proj, o_projgate_proj, up_proj, down_projAfter training, LoRA adapter weights were merged in-place into the base model parameters using merge_and_unload(), producing a standalone checkpoint with zero adapter overhead at inference time.
| Parameter | Value |
|---|---|
| LoRA Rank | 16 |
| LoRA Alpha | 32 |
| LoRA Dropout | 0.05 |
| Optimizer | AdamW |
| Learning Rate | 3e-4 |
| Batch Size | 2 (per device) |
| Gradient Accumulation | 4 steps (effective batch = 8) |
| Epochs | 25 |
| Precision | FP16 Mixed |
| Gradient Checkpointing | Enabled |
| Sequence Length | 512 |
| Phase | Steps | Loss |
|---|---|---|
| Initialization | 1 - 5 | 2.81 |
| Rapid Adaptation | 5 - 15 | 1.07 → 0.41 |
| Convergence | 15 - 40 | 0.12 → 0.06 |
| Terminal Plateau | 40 - 75 | 0.04 |
Maitreyi Y1 was evaluated using a dual-mode protocol: responses were assessed both with and without system prompt injection. Passing the no-system-prompt test confirms that domain knowledge and identity are encoded directly in the model weights, not dependent on runtime prompt engineering.
| Query | System Prompt | Response | Status |
|---|---|---|---|
| "Who are you?" | Yes | "I am Maitreyi Y1, a custom sovereign Small Language Model developed by Vinkura Innovations..." | Pass |
| "Who are you?" | No | "I am Maitreyi Y1, a custom sovereign Small Language Model developed by Vinkura Innovations..." | Pass |
| "Are you made by OpenAI?" | No | "No. I am Maitreyi Y1, built and fine-tuned independently by Vinkura Innovations Network." | Pass |
| Query | Expected Content | Status |
|---|---|---|
| "Which section of BNS deals with theft?" | Section 303(1) BNS, punishment under 303(2) | Pass |
| "What is Section 318 of BNS?" | Cheating, replaces IPC Section 420 | Pass |
| "What is the provision for Organized Crime?" | Section 111 BNS, death penalty or life imprisonment | Pass |
| "Explain the concept of Zero FIR." | FIR registered irrespective of jurisdiction, serial number '0' | Pass |
| "Difference between Cognizable and Non-Cognizable offense?" | Sec 2(g) vs Sec 2(o) BNSS, arrest authority distinction | Pass |
| Query | Expected Content | Status |
|---|---|---|
| "Who is the DGP of UP Police?" | Rajeev Krishna, Police HQ Lucknow | Pass |
| "Who is Amitabh Yash?" | ADG Law & Order, STF head | Pass |
| "Explain UP Police hierarchy." | DGP → ADG → IG → DIG → SSP → SP → Addl.SP → CO → Inspector → SI → ASI → HC → Ct | Pass |
| "What is UP CCTNS?" | e-governance portal for FIR/GD logging | Pass |
| Hardware | Precision | TTFT | Throughput |
|---|---|---|---|
| NVIDIA T4 GPU (16GB) | FP16 | 0.22s | 24.0 tok/s |
| AMD Ryzen 5 CPU (16GB) | FP32 | 1.84s | 13.3 tok/s |
Maitreyi Y1 uses ChatML as the prompt format. This enables OpenAI endpoint compatibility and structured multi-turn conversation.
System prompts are optional — the model's chat template defaults to the Maitreyi Y1 persona when no system prompt is provided.
With system prompt:
<|im_start|>system
You are Maitreyi Y1, a specialized Indian Police assistant. Developed by Vinkura Innovations.<|im_end|>
<|im_start|>user
What is Section 318 of BNS?<|im_end|>
<|im_start|>assistant
Section 318 of the Bharatiya Nyaya Sanhita (BNS), 2023 deals with Cheating...<|im_end|>
Without system prompt (the model defaults to Maitreyi Y1 identity):
<|im_start|>user
Who are you?<|im_end|>
<|im_start|>assistant
I am Maitreyi Y1, a custom sovereign Small Language Model developed by Vinkura Innovations Network Private Limited.<|im_end|>
This prompt is available as a chat template. You can format messages using tokenizer.apply_chat_template():
messages = [
{"role": "user", "content": "Draft a GD entry for a missing mobile phone."}
]
gen_input = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True)
model.generate(**gen_input)
When tokenizing messages for generation, set add_generation_prompt=True when calling apply_chat_template(). This will append <|im_start|>assistant\n to your prompt, ensuring the model continues with an assistant response.
pip install torch transformers accelerate
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "vinkura/maitreyi-y1-1.5b" # or local path
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float16, # Use torch.float32 for CPU-only systems
device_map="auto"
)
messages = [
{"role": "system", "content": "You are Maitreyi Y1, a specialized Indian Police assistant."},
{"role": "user", "content": "Draft a skeleton FIR under Section 303(2) BNS for theft."}
]
gen_input = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True)
gen_input = gen_input.to(model.device)
with torch.no_grad():
output = model.generate(gen_input, max_new_tokens=512, do_sample=False)
print(tokenizer.decode(output[0], skip_special_tokens=True))
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float32,
low_cpu_mem_usage=True,
device_map="cpu"
)
Minimum requirements: 8GB RAM, x86_64 processor, 4GB disk space.
| File | Size | Description |
|---|---|---|
model.safetensors | 3.08 GB | Merged FP16 model weights (single shard) |
config.json | 1.37 KB | Architecture configuration |
tokenizer.json | 10.89 MB | Tokenizer vocabulary and merge rules |
tokenizer_config.json | 691 B | Tokenizer metadata and special tokens |
chat_template.jinja | 2.51 KB | ChatML template with Maitreyi Y1 default persona |
generation_config.json | 242 B | Default generation parameters |
Maitreyi Y1 is designed for the following operational contexts within Indian law enforcement:
This model is released under the Apache License 2.0.
The base model (Qwen/Qwen2.5-1.5B-Instruct) is also licensed under Apache 2.0. This derivative work preserves the original licensing terms. Commercial use, modification, and redistribution are permitted under standard Apache terms.
@misc{maitreyi-y1-2025,
title = {Maitreyi Y1: Sovereign Domain-Adapted Small Language Model for Indian Law Enforcement},
author = {Akshat Shukla and Priyanshu Rajput},
year = {2025},
month = {July},
note = {Vinkura Innovations Network Pvt. Ltd.},
url = {https://huggingface.co/vinkura/maitreyi-y1-1.5b}
}
Built with purpose by Vinkura Innovations — Sovereign AI for India.