Instructions to use iromu/Gemma3-1B-tools with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use iromu/Gemma3-1B-tools with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="iromu/Gemma3-1B-tools") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("iromu/Gemma3-1B-tools") model = AutoModelForCausalLM.from_pretrained("iromu/Gemma3-1B-tools", 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 iromu/Gemma3-1B-tools with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "iromu/Gemma3-1B-tools" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "iromu/Gemma3-1B-tools", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/iromu/Gemma3-1B-tools
- SGLang
How to use iromu/Gemma3-1B-tools 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 "iromu/Gemma3-1B-tools" \ --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": "iromu/Gemma3-1B-tools", "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 "iromu/Gemma3-1B-tools" \ --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": "iromu/Gemma3-1B-tools", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use iromu/Gemma3-1B-tools with Docker Model Runner:
docker model run hf.co/iromu/Gemma3-1B-tools
Gemma3 1B Tools
Gemma 3 1B fine-tuned with LoRA for tool calling and agent-style interactions.
Base model
This model was fine-tuned from:
google/gemma-3-1b-it
Training
Training was performed using NVIDIA NeMo AutoModel with LoRA/PEFT.
LoRA configuration
- LoRA dimension:
32 - LoRA alpha:
32 - Dropout:
0.05 - Target modules:
*.proj(all*_projlinear layers)
Training configuration
- Max sequence length:
4096 - Learning rate:
5e-5(cosine decay, 15 warmup steps, min1e-6) - Weight decay:
0.01 - Global batch size:
64(micro batch 2 x 32 accumulation) - Training steps:
336(4 epochs) - Mixed precision:
bf16 - Validation loss:
0.579→0.4715(final epoch)
Dataset
Training used the sft_tools split of the
r0b0tlab/qwen3.8-max-glm5.2-kimi-k3-distillation dataset.
Tool-calling format
This model was trained with a custom chat template (bundled as
chat_template.jinja). It renders the tool schemas into a developer
turn and emits tool calls as:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
Serving stacks must render prompts with this template (e.g. via the
tokenizer's apply_chat_template) for tool calling to work.
Intended use
- Structured tool/function calling
- Agent-style multi-step interactions
- Small-footprint on-device or edge deployment
It is not intended to be a general replacement for larger Gemma models.
Usage
Serve the model:
trtllm-serve serve iromu/Gemma3-1B-tools --port 8000
Load it with llama.cpp:
llama-cli -hf iromu/Gemma3-1B-tools-GGUF:Q4_K_M
Validation matrix
Tool-calling validation on the sft_tools validation split (greedy decoding, 384 max new tokens). Throughput is single-stream greedy decode, not serving throughput.
Pretrained base (google/gemma-3-1b-it): 2.0% exact-args match (1/50). Fine-tuned (BF16): 66.0% exact-args match (33/50) (+64pp vs base).
- GGUF-BF16: 20/50 (40.0%) exact, 66.0 tok/s — 61% of BF16.
- GGUF-Q4_K_M: 10/50 (20.0%) exact, 89.5 tok/s — 30% of BF16.
- GGUF-Q5_K_M: 24/50 (48.0%) exact, 60.7 tok/s — 73% of BF16.
- GGUF-Q8_0: 22/50 (44.0%) exact, 50.2 tok/s — 67% of BF16.
- NVFP4: 2/50 (4.0%) exact, 169.0 tok/s — 6% of BF16.
| Model | Quant | n | Tool call emitted | Names match | Exact args match | Δ exact vs BASE | tok/s |
|---|---|---|---|---|---|---|---|
| Gemma3-1B-tools | BASE (google/gemma-3-1b-it) | 50 | 6/50 (12.0%) | 1/50 (2.0%) | 1/50 (2.0%) | — | 68.5 |
| Gemma3-1B-tools | BF16 | 50 | 50/50 (100.0%) | 41/50 (82.0%) | 33/50 (66.0%) | +64pp | 47.1 |
| Gemma3-1B-tools | GGUF-BF16 | 50 | 50/50 (100.0%) | 36/50 (72.0%) | 20/50 (40.0%) | +38pp | 66.0 |
| Gemma3-1B-tools | GGUF-Q4_K_M | 50 | 50/50 (100.0%) | 19/50 (38.0%) | 10/50 (20.0%) | +18pp | 89.5 |
| Gemma3-1B-tools | GGUF-Q5_K_M | 50 | 50/50 (100.0%) | 34/50 (68.0%) | 24/50 (48.0%) | +46pp | 60.7 |
| Gemma3-1B-tools | GGUF-Q8_0 | 50 | 50/50 (100.0%) | 37/50 (74.0%) | 22/50 (44.0%) | +42pp | 50.2 |
| Gemma3-1B-tools | NVFP4 | 50 | 34/50 (68.0%) | 2/50 (4.0%) | 2/50 (4.0%) | +2pp | 169.0 |
- Downloads last month
- -