Ambiakshi SLM Forge Studio
Unquantized 16-bit LoRA Fine-Tuning Foundry for Google Gemma 4 on 16GB Kaggle P100 GPUs. Zero-OOM mathematical profiler.
Hyperparameter & VRAM Matrix✅ FITS ON 16GB P100
Context Window (Tokens)8,192 tk
512 (FinBERT)4,0968,192 (Long-Context)
LoRA Rank (r)r = 16 (Alpha = 32)
Per-Device Batch Size2
Gradient CheckpointingReduces activation memory by ~75%
Model Weights (FP16):8.00 GB
LoRA Weights + Optimizer:0.75 GB
Activations Memory:4.59 GB
CUDA Runtime Buffer:0.85 GB
Estimated Peak VRAM:14.19 GB / 16.00 GB
Generated PyTorch LoRA ScriptGoogle Gemma 4 · Unquantized FP16
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments
from peft import LoraConfig, get_peft_model
from trl import SFTTrainer
# 1. Load Google Gemma 4 in Unquantized FP16
model_id = "google/gemma-4"
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto"
)
model.gradient_checkpointing_enable()
# 2. Configure Low-Rank Adaptation (LoRA)
peft_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
model = get_peft_model(model, peft_config)
# 3. Training Arguments for 8,192-Token Sequences
training_args = TrainingArguments(
output_dir="./gemma4-slm-checkpoint",
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
learning_rate=2e-4,
lr_scheduler_type="cosine",
warmup_ratio=0.03,
max_steps=500,
fp16=True,
logging_steps=10,
save_strategy="steps",
save_steps=100
)
# 4. Initialize SFTTrainer with 8k Context Window
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
peft_config=peft_config,
max_seq_length=8192,
args=training_args
)
trainer.train()Target Hardware: Kaggle P100 (16GB) · Zero-OOM