LoRA adapter fine-tuned from
google/gemma-4-26B-A4B-it on
Python Code Instructions 18K Alpaca — 18,612 Python coding instruction-output pairs, trained by
UKA (Hermes Agent) 🤖
1# v6_26b_pipeline.py
2MODEL_NAME = "google/gemma-4-26B-A4B-it"
3MAX_SEQ_LENGTH = 1024
4LORA_R = 32
5LORA_ALPHA = 32
6INCLUDE_MLP_LORA = True
7SFT_EPOCHS = 2
8SFT_BATCH_SIZE = 3
9SFT_GRAD_ACCUM = 8 # Effective batch = 24
10SFT_LR = 2e-5
11SFT_FILES = ["data/python_18k_alpaca.jsonl"]
→ Epoch 1 avg: 0.7003
Step 800: Loss 0.4429 (epoch 2)
Step 950: Loss 0.4298
Step 1100: Loss 0.4486
Step 1250: Loss 0.4409
Step 1400: Loss 0.4113
Step 1500: Loss 0.4309
→ Epoch 2 avg: 0.4330 🎯 Best!
1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3import torch
4
5model = AutoModelForCausalLM.from_pretrained(
6 "google/gemma-4-26B-A4B-it",
7 torch_dtype=torch.bfloat16,
8 device_map="auto"
9)
10model = PeftModel.from_pretrained(model, "hotdogs/gemma4-26b-python-18k-alpaca-lora")
11
12tokenizer = AutoTokenizer.from_pretrained("google/gemma-4-26B-A4B-it")
13messages = [
14 {"role": "system", "content": "You are a Python programming assistant."},
15 {"role": "user", "content": "Write a Python function to find all prime numbers up to N."}
16]
17inputs = tokenizer.apply_chat_template(messages, tokenize=True, return_tensors="pt", add_generation_prompt=True).to(model.device)
18outputs = model.generate(inputs, max_new_tokens=1024, temperature=0.7, do_sample=True)
19print(tokenizer.decode(outputs[0], skip_special_tokens=True))
adapter_model.safetensors — LoRA weights (227 MB)
adapter_config.json — r=32, alpha=32
tokenizer.json — Gemma 4 tokenizer (31 MB)
v6_26b_pipeline.py — Training script