import torchfrom peft import PeftModelfrom transformers import AutoModelForCausalLM, AutoTokenizerfrom src.utils import unwrap_clippable_linear base_id = "google/gemma-4-26B-A4B-it"dapt_id = "cmndcntrlcyber/gemma4-26b-a4b-dapt-offsec"sft_id = "cmndcntrlcyber/gemma4-26b-a4b-code-trainer-aggressive-full1" tokenizer = AutoTokenizer.from_pretrained(base_id)model = AutoModelForCausalLM.from_pretrained( base_id, torch_dtype=torch.bfloat16, device_map="auto",)unwrap_clippable_linear(model) # Merge DAPT adapter into base weightsmodel = PeftModel.from_pretrained(model, dapt_id)model = model.merge_and_unload() # Load SFT adapter (active LoRA)model = PeftModel.from_pretrained(model, sft_id)model.eval() messages = [ {"role": "user", "content": "Write a Python function that performs an ARP scan on a /24 subnet using scapy."},]inputs = tokenizer.apply_chat_template( messages, return_tensors="pt", add_generation_prompt=True,).to(model.device)out = model.generate(inputs, max_new_tokens=512, do_sample=False)print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))