Downloads · 30 days
0
vikhram-labs/NariRaksha-3B
NariRaksha-3B is a text generation model from vikhram-labs. Use it when you need the model to write or continue text. The card lists the license as apache-2.0.
QLoRA fine-tune of Qwen/Qwen2.5-3B-Instruct on NariRaksha-100K, a dataset of Indian women's safety scenarios. The model produces structured safety assessments — risk type, severity, reasoning, recommended action, and…
Downloads · 30 days
0
Access
Public
Updated Jun 21, 2026
Repo size
131 MB
Likes
1
Public
Click a slice to open those files.
.safetensors120 MB · 91%
From the Hugging Face model README
QLoRA fine-tune of Qwen/Qwen2.5-3B-Instruct on NariRaksha-100K, a dataset of Indian women's safety scenarios. The model produces structured safety assessments — risk type, severity, reasoning, recommended action, and legal context (BNS / IT Act / PWDVA) — from a free-text scenario description.
Status: open research artifact. This is an early-stage fine-tune released for research, replication, and community evaluation — not a validated or deployment-ready safety system. See Evaluation and Limitations before using it for anything beyond experimentation.
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
"vikhram-labs/NariRaksha-3B", load_in_4bit=True
)
FastLanguageModel.for_inference(model)
prompt = "A woman in Chennai has been receiving repeated unwanted messages from a former colleague across multiple platforms over several weeks."
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
| Base model | Qwen/Qwen2.5-3B-Instruct |
| Method | QLoRA, 4-bit (NF4) |
| LoRA rank / alpha | r=16, α=32 |
| Framework | Unsloth |
| Training data | Full NariRaksha-100K (~100K rows, single split, no held-out eval set) |
| Steps | 100 |
| Step | Training Loss |
|---|---|
| 25 | 2.3122 |
| 50 | 0.2770 |
| 75 | 0.0698 |
This is the complete loss telemetry currently available — three logged points over 100 total steps, training loss only. Read it as a directional signal that the model is fitting the data quickly, not as evidence of task generalization. See Evaluation for why.
No held-out validation/test split or downstream benchmark has been run on this model. NariRaksha-100K was released as a single split, and training to date has used 100% of it, so the loss curve above reflects in-sample fit only.
The drop from 2.31 → 0.07 over 75 steps is steep enough, on a 3B model with
this little data exposure, that it should be read as a likely signal of
memorization rather than generalization — particularly since a
meaningful share of the dataset's reasoning and recommended_action
fields are template-conditioned and repeat near-verbatim across many rows
(documented in the dataset card).
A model can drive loss this low partly by memorizing a small set of stock
phrases rather than learning to reason over novel scenarios.
What's needed before this can be called a validated model: a held-out
eval split stratified by risk_type/severity, eval-loss tracking
alongside training loss, and qualitative testing on scenarios outside the
training distribution (including paraphrases and edge cases). None of that
exists yet for this checkpoint.
Released as an open research artifact for:
Not currently intended for:
reasoning / recommended_action
spans to reduce memorization pressure@incollection{nariraksha2026,
title = {NariRaksha: Gender-Responsive AI for Women's Safety},
author = {Vikhram S and Jeffin Gracewell J},
booktitle = {India AI Impact Summit 2026 Casebook on AI and Gender Empowerment},
year = {2026},
publisher = {Ministry of Electronics and Information Technology (MeitY), Government of India and UN Women}
}
Apache 2.0.