Instructions to use dheeyantra/dhee-pravega with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dheeyantra/dhee-pravega with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="dheeyantra/dhee-pravega") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("dheeyantra/dhee-pravega") model = AutoModelForMultimodalLM.from_pretrained("dheeyantra/dhee-pravega", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use dheeyantra/dhee-pravega with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "dheeyantra/dhee-pravega" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dheeyantra/dhee-pravega", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/dheeyantra/dhee-pravega
- SGLang
How to use dheeyantra/dhee-pravega 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 "dheeyantra/dhee-pravega" \ --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": "dheeyantra/dhee-pravega", "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 "dheeyantra/dhee-pravega" \ --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": "dheeyantra/dhee-pravega", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use dheeyantra/dhee-pravega with Docker Model Runner:
docker model run hf.co/dheeyantra/dhee-pravega
Dhee-Pravega v3
Agentic tool-calling model for 18 languages, fine-tuned from
google/gemma-4-E2B-it and merged to bf16.
What v3 changes
Accuracy when the model is offered numerous choices of tools.
v1 and v2 were trained on a corpus that presents one tool per conversation and fills every argument slot in 92.2% of its calls. A model trained that way is never given a choice it can get wrong, so it learns to call whatever it is shown
- all tools or none. v3 is trained instead on our own 18-language corpus, where 68.8% of turns offer a genuine choice among several tools and 12.3% of conversations correctly make no call at all.
The schema diversity behind that: 16,037 distinct tool schemas, against 1,071 in the corpus v1/v2 saw.
v3 also introduces language switching (change_language) and translation
prompts, neither of which existed in any earlier Pravega training data.
Evaluation
720 held-out conversations, 40 per language across all 18, scored against the reference tool call:
| metric | v3 |
|---|---|
| tool call emitted when expected | 0.9847 |
| correct tool selected | 0.9653 |
| all arguments correct | 0.7111 |
Read the tool-selection number in context: it is measured on a test set where most turns present several candidate tools, which is a materially harder task than the single-tool setting earlier versions were scored in. The two are not directly comparable.
Usage
Tools are rendered with Gemma-4's own chat template - pass them structured, not as prose in the system prompt.
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("dheeyantra/dhee-pravega")
model = AutoModelForCausalLM.from_pretrained("dheeyantra/dhee-pravega",
dtype="bfloat16", device_map="auto")
messages = [{"role": "user", "content": "Mumbai ka mausam kaisa hai?"}]
tools = [{"type": "function", "function": {
"name": "get_weather",
"description": "Current weather for a city",
"parameters": {"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]}}}]
ids = tok.apply_chat_template(messages, tools=tools,
add_generation_prompt=True, return_tensors="pt")
print(tok.decode(model.generate(ids.to(model.device), max_new_tokens=128)[0]))
Training
| base | google/gemma-4-E2B-it |
| method | QLoRA (r=16, alpha=32) on the text decoder, merged to bf16 |
| corpus | 181,191 conversations / 18 languages |
| schedule | 11,472 steps, effective batch 16, max_seq_len 1536, lr 5e-5 |
| continues from | the v2 adapter, rather than the base |
These weights are the final checkpoint. The best checkpoint by held-out loss was step 9,000 (0.9654 against 0.9664 at the end) - a noise-level difference, and the evaluation above was run on the final weights, so the reported numbers describe exactly what is published here.
Licence
Research use only. Dhee-Pravega is released under the Dhee Research-Only Licence v1.0: academic research, evaluation, benchmarking, red-teaming, teaching and personal experimentation are permitted; commercial use is not. Commercial licences are available from Dheeyantra Research Labs on request.
Two sets of terms apply, not one. This model is a fine-tune of Google's Gemma, so the Gemma Terms of Use and the Gemma Prohibited Use Policy continue to apply in addition to ours. Nothing in our licence grants rights Google has not granted. Where ours is narrower, ours controls for Dheeyantra's contribution; where Gemma's is narrower, Gemma's controls.
If you redistribute the model or anything derived from it, you must pass both sets of terms along.
Earlier versions. Revisions tagged v2 and earlier were published under
license: gemma and remain available under the terms in force when they were
distributed. This licence applies from v3 onward.
- Downloads last month
- 534