Views
No views yet
1import re
2import torch
3from transformers import AutoTokenizer, AutoModelForCausalLM
4from peft import PeftModel
5from pydantic import BaseModel
6import json
7
8# Load local model + LoRA adapter as before
9local_directory = "meta-llama/Llama-3.2-1B-Instruct"
10adapter_repo = "deshanksuman/finetuned-meta-Llama-3.2-1B-Instruct-WSD"
11access_token = "hfxtoken"
12
13tokenizer = AutoTokenizer.from_pretrained(local_directory, use_auth_token=access_token)
14base_model = AutoModelForCausalLM.from_pretrained(
15 local_directory,
16 use_auth_token=access_token,
17 device_map="auto",
18 torch_dtype="auto",
19 load_in_4bit=False
20)
21model = PeftModel.from_pretrained(base_model, adapter_repo, use_auth_token=access_token)
22model.to("cuda" if torch.cuda.is_available() else "cpu")
23
24
25# Function to generate structured JSON response
26def generate_structured_response(question, context="You are a helpful assistant. Respond only with valid JSON.", device="cuda"):
27 prompt = (
28 f"{context}\n\n"
29 f"Question: {question}\n\n"
30 f"Respond with valid JSON only in the format: {{\"meaning\":}}"
31 )
32
33 inputs = tokenizer(prompt, return_tensors="pt").to(device)
34
35 output_ids = model.generate(
36 inputs.input_ids,
37 max_new_tokens=256,
38 temperature=0.3,
39 top_p=0.9,
40 do_sample=True,
41 num_beams=3,
42 no_repeat_ngram_size=3,
43 early_stopping=True
44 )
45
46 response_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
47
48 return response_text