import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfigfrom peft import PeftModel BASE_MODEL = "Qwen/Qwen2.5-Coder-7B-Instruct"ADAPTER_REPO = "devanshty/Code-Autopsy" # 1. Load Tokenizer & 4-bit Base Modeltokenizer = AutoTokenizer.from_pretrained(BASE_MODEL, trust_remote_code=True)bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True) base_model = AutoModelForCausalLM.from_pretrained( BASE_MODEL, quantization_config=bnb_config, device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True) # 2. Load Fine-Tuned Code-Autopsy Adaptermodel = PeftModel.from_pretrained(base_model, ADAPTER_REPO)model.eval() # 3. Format Diagnostic Promptcode_snippet = '''def append_item(val, lst=[]): lst.append(val) return lst''' prompt = f"""<|im_start|>systemYou are a code review expert. Analyze the provided code, identify any bugs or issues, explain the root cause, and provide a corrected version.<|im_end|><|im_start|>userLanguage: python ```python{code_snippet}```<|im_end|><|im_start|>assistant""" inputs = tokenizer(prompt, return_tensors="pt").to(model.device)with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=512, do_sample=False, pad_token_id=tokenizer.eos_token_id ) print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))