import torchfrom transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfigfrom peft import PeftModel model_id = "NousResearch/Llama-2-7b-chat-hf"adapter_id = "harshagale/llm-upload" # 1. You must use the same 4-bit config to load the base modelbnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16, bnb_4bit_use_double_quant=True) # 2. Load the base tokenizer and configure the padding tokentokenizer = AutoTokenizer.from_pretrained(model_id)tokenizer.pad_token = tokenizer.eos_token # 3. Load the quantized base modelbase_model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=bnb_config, device_map="auto") # 4. Merge the PEFT adapter weights onto the base modelmodel = PeftModel.from_pretrained(base_model, adapter_id) # 5. Quick inference testprompt = "Human: Tell me a joke.\nAssistant:"inputs = tokenizer(prompt, return_tensors="pt").to("cuda") with torch.no_grad(): outputs = model.generate(**inputs, max_new_tokens=50) print(tokenizer.decode(outputs[0], skip_special_tokens=True))