Instructions to use SauravMahalik/kalinga-01 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SauravMahalik/kalinga-01 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SauravMahalik/kalinga-01") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("SauravMahalik/kalinga-01") model = AutoModelForCausalLM.from_pretrained("SauravMahalik/kalinga-01", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SauravMahalik/kalinga-01 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SauravMahalik/kalinga-01" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SauravMahalik/kalinga-01", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SauravMahalik/kalinga-01
- SGLang
How to use SauravMahalik/kalinga-01 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 "SauravMahalik/kalinga-01" \ --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": "SauravMahalik/kalinga-01", "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 "SauravMahalik/kalinga-01" \ --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": "SauravMahalik/kalinga-01", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use SauravMahalik/kalinga-01 with Docker Model Runner:
docker model run hf.co/SauravMahalik/kalinga-01
language:
- or
license: other
library_name: transformers
tags:
- odia
- text-generation
- kalinga-series
- unfinished
- mystery
- evaluated
🏛️ KALINGA — Experiment No. 01
One language. Done properly.
The frontier forgot Odia.
40+ million speakers. A literary tradition older than most languages the frontier has ever shipped. And the biggest labs in the world trained on 200 languages — and left this one out, as if it had never existed.
Kalinga exists because we refuse to accept that.
This is Experiment No. 01. The first of a series that will not stop.
What we found, and what we kept
We started with 28,549,762 rows of raw Odia.
More than half of it was the same text wearing different clothes. We removed it all. What remains is signal — and nothing else:
| Rows kept | 12,438,948 — nothing repeated, nothing padded |
| Total text | ~5.9 billion characters of Odia |
| English-aligned | 48.7 % — real alignments, not flags |
| Per-row | median 203 · mean 474 characters |
| Quality gate | ≥ 20 chars · ≥ 10 % Odia script · 63 shards · 3.7 GB |
| Composition | monolingual 68.9 % · pretrain 15.4 % · parallel 7.7 % · instruction 5.3 % · QA 1.5 % · web · encyclopedic · speech · sentiment |
The frontier's approach: 200 languages, two minutes each.
Kalinga's approach: one language, 5.9 billion characters, nothing repeated.
The corpus has never been published anywhere. While licensing of legacy sources is resolved, it stays private — this model is the closest thing to it that exists in public.
The receipts
The first eval numbers exist. They are not flattering. That is the point.
Evaluated on Odia Eval Benchmark (60 rows per task × 7 tasks = 420 rows, greedy decoding, max 96 new tokens, 2× T4):
| Task | Kalinga-01 | sarvam-1 (base) |
|---|---|---|
| multiple_choice (acc) | 0.0 % | 13.3 % |
| QA span F1 | 0.0 | 0.03 |
| math (acc) | 0.0 % | 0.0 % |
| classification (acc) | 0.0 % | 0.0 % |
| NER token F1 | 0.0 | 0.14 |
| translation chrF | 0.096 | 0.04 |
| generation | logged | logged |
What the numbers say: Kalinga-01 emits <reserved_token> ids in every
one of the 420 generations — a sign the checkpoint's output layer and
embeddings are misaligned with its tokenizer, i.e. the experiment is
unfinished (as tagged), not merely undertrained. The base model it was built
on, sarvam-1, at least produces coherent Odia. Kalinga does not — yet.
These numbers will get better. When they do, they get written here. Until then, this card stays honest.
Status
- Exists
- Remembers its language
- Evaluated — numbers above. honest, not flattering.
- Explained
- Named — you'll recognize it when you see it.
- Freed — the corpus, when licensing allows.
Watch. The silence will not last.
For the 40 million
Your language was never the problem. The attention was.
It's free. Take it. Use it. That's the point.
If you must:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "SauravMahalik/kalinga-01"
model = AutoModelForCausalLM.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)
text = "..." # a sentence, in a language it knows
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=64)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
— Experiment No. 01 · Kalinga Series
The series has already begun.