Gemma-3-1b-it-OpenR1-Turkish

Model Description

erythropygia/Gemma-3-1b-it-OpenR1-Turkish is a 1B-parameter Turkish instruction-tuned language model, fine-tuned using GRPO (Group Relative Policy Optimization) techniques for better efficiency and response quality.

Model Details

  • Base Model: google/gemma-3-1b-it
  • Fine-tuned with GRPO and LoRa (Low-Rank Adaptation)
  • max_seq_lenght: 2048 tokens
  • max_prompt_lenght: 1024 tokens
  • Fine-tuning on an L4 GPU for 11 more hours

Usage

Install Dependencies

%%capture
import os
if "COLAB_" not in "".join(os.environ.keys()):
    !pip install unsloth vllm
else:
    # [NOTE] Do the below ONLY in Colab! Use [[pip install unsloth vllm]]
    !pip install --no-deps unsloth vllm
# Install latest Hugging Face for Gemma-3!
!pip install --no-deps git+https://github.com/huggingface/[email protected]

#@title Colab Extra Install { display-mode: "form" }
%%capture
import os
if "COLAB_" not in "".join(os.environ.keys()):
    !pip install unsloth vllm
else:
    !pip install --no-deps unsloth vllm
    # [NOTE] Do the below ONLY in Colab! Use [[pip install unsloth vllm]]
    # Skip restarting message in Colab
    import sys, re, requests; modules = list(sys.modules.keys())
    for x in modules: sys.modules.pop(x) if "PIL" in x or "google" in x else None
    !pip install --no-deps bitsandbytes accelerate xformers==0.0.29.post3 peft trl triton cut_cross_entropy unsloth_zoo
    !pip install sentencepiece protobuf datasets huggingface_hub hf_transfer

    # vLLM requirements - vLLM breaks Colab due to reinstalling numpy
    f = requests.get("https://raw.githubusercontent.com/vllm-project/vllm/refs/heads/main/requirements/common.txt").content
    with open("vllm_requirements.txt", "wb") as file:
        file.write(re.sub(rb"(transformers|numpy|xformers)[^\n]{1,}\n", b"", f))
    !pip install -r vllm_requirements.txt
from unsloth import FastModel
import torch
max_seq_length = 2096

model, tokenizer = FastModel.from_pretrained(
    model_name = "erythropygia/Gemma-3-1b-it-OpenR1-Turkish",
    max_seq_length = max_seq_length,
    load_in_4bit = False,  # 4 bit quantization to reduce memory
    load_in_8bit = False, # A bit more accurate, uses 2x memory
    token = "YOUR_HF_TOKEN",
)


# Load and prep dataset
SYSTEM_PROMPT = f"""
Aşağıdaki formatta cevap ver
<think></think> etiketleri arasıda problemi nasıl çözeceğin hakkında düşün ve adım adım çözümünü planla.
Ardından, çözümünü <answer></answer> arasına yerleştir. Yanıt, <answer></answer> kısmının içinde belirtilen mantıklı adımlara dayanmalı

Format aşağıdaki gibi olmalıdır:
<think>
...
</think>
<answer>
...
</answer>
"""

messages = [
    {"role": "system", "content": SYSTEM_PROMPT},
    {"role": "user",   "content": "python'da stok yönetimi için örnek bir class yazar mısın?"},
]

text = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt = True, # Must add for generation
    tokenize = False,
)
from transformers import TextStreamer
_ = model.generate(
    **tokenizer(text, return_tensors = "pt").to("cuda"),
    max_new_tokens = 1024, # Increase for longer outputs!
    # Recommended Gemma-3 settings!
    temperature = 1, top_p = 0.95, top_k = 128,
    streamer = TextStreamer(tokenizer, skip_prompt = True),
)

Response:

<think>
Stok yönetimi için bir Python sınıfı yazmak, stoklarınızı yönetmek için gerekli olan temel işlevleri kapsayacak şekilde tasarlanmalıdır.
Bu sınıf, stokların eklenmesini, silmesini, fiyatlarını güncellemesini ve stok seviyelerini hesaplamasını içermelidir.
Ayrıca, stok seviyelerinin stok seviyeleriyle karşılaştırılmasını ve stok seviyelerinin yüksek olduğunda stokları satmasını veya almasını sağlamalıdır.
Ayrıca, stok seviyelerinin düşük olduğunda stokları almasını sağlamalıdır.
</think>
<answer>
class Stok:
    def __init__(self, stok_id, stok_adı, başlangic_miktar, fiyat, stok_seviyesi):
        self.stok_id = stok_id
        self.stok_adi = stok_adı
        self.baslangic_miktar = başlangic_miktar
        self.fiyat = fiyat
        self.stok_seviyesi = stok_seviyesi

    def ekle(self, miktar):
        if miktar > self.baslangic_miktar:
            self.baslangic_miktar += miktar
            return True
        else:
            return False

    def sil(self, stok_id):
        if stok_id in self.stok_seviyeleri:
            del self.stok_seviyeleri[stok_id]
        else:
            print("Stok ID'si bulunamadı.")
            return False

    def güncelle_fiyat(self, yeni_fiyat):
        self.fiyat = yeni_fiyat
        return True

    def hesapla_stok_seviyesi(self):
        if self.stok_seviyesi == 0:
            return 1
        else:
            return self.stok_seviyesi

    def print_stok_bilgileri(self):
        print(f"Stok ID: {self.stok_id}, Stok Adı: {self.stok_adi}, Başlangıç Miktarı: {self.baslangic_miktar}, Fiyat: {self.fiyat}, Stok Seviyesi: {self.stok_seviyesi}")

# Örnek Kullanım
stok1 = Stok(1, "Meyve", 100, 10.0, 5)
stok2 = Stok(2, "Elma", 20, 5.0, 2)

print("Önceki Stok Bilgileri:")
stok1.print_stok_bilgileri()
stok2.print_stok_bilgileri()

stok1.ekle(10)
stok1.ekle(5)
stok1.ekle(15)

stok1.print_stok_bilgileri()

stok1.sil(1)
print("\nStok ID 1 silindi.")
stok1.print_stok_bilgileri()

stok1.güncelle_fiyat(8.0)
stok1.print_stok_bilgileri()
</answer>
Downloads last month
37
Safetensors
Model size
1,000M params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for erythropygia/Gemma-3-1b-it-OpenR1-Turkish

Finetuned
(56)
this model
Quantizations
1 model