import torchfrom peft import PeftModelfrom transformers import ( AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig,) base_id = "mistralai/Mistral-7B-Instruct-v0.3"adapter_id = "ridoley/mistral7b-vaa-general-qlora" bnb = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16,) tokenizer = AutoTokenizer.from_pretrained(base_id) base = AutoModelForCausalLM.from_pretrained( base_id, quantization_config=bnb, device_map="auto",) model = PeftModel.from_pretrained(base, adapter_id)model.eval() messages = [ { "role": "system", "content": ( "You are a Lean and BPM expert. Classify all process activities " "as VA, BVA, or NVA. Return only valid JSON with keys " "process_name and activities. Each activity should include " "activity_name, label, waste_type, and justification." ), }, { "role": "user", "content": ( "Process Name: Goods Delivery Process\n" "1. Receive shipping order document\n" "2. Receive goods from customer\n" "3. Deliver goods to customer address\n" "Classify all activities. Return JSON only." ), },] prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True,) inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.inference_mode(): output = model.generate( **inputs, max_new_tokens=512, do_sample=False, ) generated_tokens = output[0][inputs["input_ids"].shape[1]:]print(tokenizer.decode(generated_tokens, skip_special_tokens=True))