🇮🇳 Bharat-Tiny-LLM v2 (PyTorch / Transformers Base)

1.5B Parameter Open-Weights Indic LLM featuring Brahmi Token Injection for 33.8% token compression and +36% faster Hindi inference.


Bharat-Tiny-LLM v2 Technical Infographic


🎯 Model Overview

Bharat-Tiny-LLM v2 is an open-weights 1.5B parameter language model built on top of Qwen2.5-1.5B, optimized specifically for Hindi and Hinglish text generation.

By introducing Brahmi Token Injection — a technique that surgically injects 300 Devanagari subword tokens into the model's vocabulary — Bharat-Tiny-LLM v2 eliminates the severe "Token Tax" imposed by standard English-centric tokenizers on Indian scripts.

This repository contains the unquantized PyTorch / HuggingFace Transformers open weights, compatible with Linux, Windows, CUDA GPUs, vLLM, TGI, and Google Colab.


🎨 Architectural Pipeline & Training Methodology

Brahmi Token Injection Architecture

Interactive Training Pipeline Flowchart

flowchart LR
    A["Raw Hindi Corpus"] --> B["Brahmi Subword Mining<br>(Top 300 Devanagari Tokens)"]
    B --> C["Tokenizer Vocabulary Expansion<br>(151,936 ➔ 152,236)"]
    C --> D["Stage 1: Embedding Alignment<br>(Freeze Backbone, Train 300 Embeddings)"]
    D --> E["Stage 2: LoRA Fine-Tuning<br>(Rank=16 on Attention q,k,v,o proj)"]
    E --> F["Fused PyTorch Base Weights<br>(eulogik/Bharat-Tiny-LLM-v2)"]
    F --> G["Q4 Affine Quantization<br>(eulogik/Bharat-Tiny-LLM-v2-MLX)"]

✨ Key Benchmarks & Technical Advantages

Metric Base Qwen2.5-1.5B Bharat-Tiny-LLM v2 Technical Advantage
Tokens for 1,000 Hindi Chars ~950 tokens ~630 tokens 33.8% Fewer Tokens (up to 58% on chat prompts)
Inference Throughput (Hindi) 50 tok/s 68 tok/s +36% Speed Boost
Validation Loss (Hindi Corpus) 2.776 1.837 52.5% Loss Reduction (Perplexity: 16.1 → 6.3)
Hardware Compatibility CUDA / CPU / MPS CUDA / CPU / MPS Universal PyTorch / vLLM / GGUF support

🚀 Quick Start with PyTorch & Transformers

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "eulogik/Bharat-Tiny-LLM-v2"

# Load Tokenizer & Model Weights
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)

# Generate Hindi Text
prompt = "भारत की सांस्कृतिक विविधता के बारे में बताइए:"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=150,
    temperature=0.7,
    do_sample=True
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

📊 Token Compression Benchmarks

Prompt (Hindi / Hinglish) Base Qwen Tokens Bharat-v2 Tokens Savings
"ज़रूरी बात है क्या करते हो" 26 tokens 11 tokens 58% Savings
"नमस्ते, आप कैसे हैं?" 15 tokens 7 tokens 53% Savings
"भारत की राजधानी नई दिल्ली है" 22 tokens 14 tokens 36% Savings
"bhai aaj ka weather kaisa hai?" 12 tokens 8 tokens 33% Savings

🔗 Model Family Repositories


📜 License & Citation

Licensed under Apache 2.0. Free for commercial, enterprise, and research use.

@misc{kishore2026brahmi,
    title={Brahmi: Efficient Devanagari Token Injection for Multilingual LLMs},
    author={Gautam Kishore},
    year={2026},
    publisher={eulogik},
    howpublished={\url{https://huggingface.co/eulogik/Bharat-Tiny-LLM-v2}}
}
Downloads last month
45
Safetensors
Model size
2B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support