import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfigfrom peft import PeftModel # Configure 4-bit NF4 quantizationbnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16,) # Load frozen base modelbase_model = AutoModelForCausalLM.from_pretrained( "microsoft/phi-2", quantization_config=bnb_config, device_map="auto", trust_remote_code=True,) # Attach LoRA adaptermodel = PeftModel.from_pretrained(base_model, "alfeenafsal/phi2-qlora-finetune")model.eval() tokenizer = AutoTokenizer.from_pretrained("alfeenafsal/phi2-qlora-finetune", trust_remote_code=True)tokenizer.pad_token = tokenizer.eos_token # Format promptprompt = "### Instruction:\nWrite a Python function that checks if two strings are anagrams of each other (case-insensitive).\n\n### Response:\n"inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=200, do_sample=False, # Deterministic greedy decoding eos_token_id=tokenizer.eos_token_id, pad_token_id=tokenizer.pad_token_id, ) completion = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)print(completion)