Matej's picture
Upload folder using huggingface_hub
2a11749 verified
|
Raw
History Blame Contribute Delete
1.89 kB
metadata
license: mit
language:
  - en
base_model:
  - google/gemma-3-12b-it
pipeline_tag: text-generation
tags:
  - Vision language model (VLM)
  - Slovenian

- GaMS3-12B-Multimodal is a Vision Language Model for Slovenian capable of vision question answering#

The model is based on GaMS3-12B (which is based on google/gemma-3-12b-it) and was fine-tuned on curated instruction-tuning text-image Slovenian dataset using a custom SFT trainer.

Dataset is available here: https://clarin.si/repository/xmlui/handle/11356/2050

How to use it:

from transformers import AutoProcessor, Gemma3ForConditionalGeneration
import torch

model_id = "GaMS-Beta/GaMS3-12B-Multimodal"
model = Gemma3ForConditionalGeneration.from_pretrained(
    model_id, device_map="auto",
).eval()

processor = Gemma3Processor.from_pretrained(model_id)


messages = [
    {
        "role": "system",
        "content": [{"type": "text", "text": ""}]
    },
    {
        "role": "user",
        "content": [
            {"type": "image", "image": "https://www.mestomladih.si/wp-content/uploads/2010/10/kam-na-izlet-v-mariboru.png"},
            {"type": "text", "text": "Katero mesto je na sliki?"}
        ]
    }
]

print(processor.apply_chat_template(messages, tokenize=False))

inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True,
    return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)

input_len = inputs["input_ids"].shape[-1]

with torch.inference_mode():
    generation = model.generate(
        **inputs,
        max_new_tokens=2048,
        do_sample=True, 
        temperature=0.8,
        top_p=0.9, 
        top_k=40  
    )
    generation = generation[0][input_len:]

decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)