1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3from peft import PeftModel
4
5base_model_name = "unsloth/Qwen2.5-1.5B-Instruct-bnb-4bit"
6adapter_name = "SanatanSinghVishen/sift-1b-dpo"
7
8# 1. Load Tokenizer & Base Model
9tokenizer = AutoTokenizer.from_pretrained(base_model_name, trust_remote_code=True)
10base_model = AutoModelForCausalLM.from_pretrained(
11 base_model_name,
12 torch_dtype=torch.bfloat16,
13 device_map="auto"
14)
15
16# 2. Load Golden DPO Adapter
17model = PeftModel.from_pretrained(base_model, adapter_name)
18model.eval()
19
20# 3. Formulate Input Query
21messages = [
22 {
23 "role": "system",
24 "content": "You are a function calling agent. Output only valid JSON tool calls."
25 },
26 {
27 "role": "user",
28 "content": "Book a ride to JFK airport arriving by 5:00 PM."
29 }
30]
31
32prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
33inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
34
35# 4. Generate Clean JSON Response
36with torch.no_grad():
37 outputs = model.generate(**inputs, max_new_tokens=128, temperature=0.1)
38
39response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
40print(response)