How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("text-generation", model="xsanskarx/thinkygemma-4b")
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)
# pip install -U transformers accelerate
# Load model directly
from transformers import AutoProcessor, AutoModelForMultimodalLM

processor = AutoProcessor.from_pretrained("xsanskarx/thinkygemma-4b")
model = AutoModelForMultimodalLM.from_pretrained("xsanskarx/thinkygemma-4b", 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=256)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
Quick Links

thinkygemma-4b: your average reasoner

Fine-tuned from Gemma-3-4b-pt

πŸ“Œ Model ID: xsanskarx/thinkygemma-4b
πŸ“Œ Parameters trained: 1.8 billion
πŸ“Œ Trained on: 25k rows of verified Chain-of-Thought (CoT) traces from DeepSeek R1 and Qwen QWQ
πŸ“Œ Next planned step: GRPO πŸ“Œ adapters repo: xsanskarx/thinkgemma-4b


Model Description

This is a fine-tuned version of Google's Gemma-3-4b-it, adapted for **structured reasoning / induced reasoning behaviour.

Training Details

  • Hardware: Single NVIDIA H100
  • Training Time: 9 hours
  • Training Method: LoRA fine-tuning (r = 128, alpha = 256)
  • Dataset: 25k CoT traces
  • Base Model: google/gemma-3-4b-it

Setup

from transformers import AutoTokenizer, Gemma3ForConditionalGeneration, TextStreamer
import torch

# Load model and tokenizer
model_id = "xsanskarx/thinkygemma-4b"
model = Gemma3ForConditionalGeneration.from_pretrained(model_id, device_map="auto").eval()
tokenizer = AutoTokenizer.from_pretrained(model_id)

def ask_model(prompt: str, max_tokens=8192, temperature=0.7):
    """
    Function to ask a question to the model and stream the response.
    """
    messages = [
        {"role": "system", "content": "You are an expert math problem solver, think and reason inside <think> tags, enclose all reasoning in <think> tags, verifying logic step by step and then return your final structured answer"},
        {"role": "user", "content": prompt}
    ]

    formatted_prompt = tokenizer.apply_chat_template(messages, tokenize=False)
    inputs = tokenizer(formatted_prompt, return_tensors="pt").to(model.device)

    streamer = TextStreamer(tokenizer, skip_special_tokens=True)
    with torch.inference_mode():
        model.generate(**inputs, max_new_tokens=max_tokens, do_sample=True, temperature=temperature, streamer=streamer)

# Example usage
ask_model("do 2+2")
Downloads last month
13
Safetensors
Model size
5B params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for xsanskarx/thinkygemma-4b

Finetuned
(354)
this model