File size: 3,071 Bytes
af41bdf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54cf79d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e06a301
af41bdf
 
 
 
 
 
54cf79d
af41bdf
 
 
 
 
 
 
 
 
 
 
 
 
54cf79d
af41bdf
54cf79d
af41bdf
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# import gradio as gr
# from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
# from peft import PeftModel, PeftConfig

# # Load tokenizer
# tokenizer = AutoTokenizer.from_pretrained(".")

# # Load base model with quantization
# bnb_config = BitsAndBytesConfig(load_in_4bit=True)
# base_model = AutoModelForCausalLM.from_pretrained(
#     "unsloth/Meta-Llama-3.1-8B-bnb-4bit",  # same base you fine-tuned
#     quantization_config=bnb_config,
#     device_map="auto"
# )

# # Load LoRA adapters
# model = PeftModel.from_pretrained(base_model, ".")

# # Create Gradio Interface
# def generate_response(prompt):
#     inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
#     outputs = model.generate(**inputs, max_new_tokens=200, do_sample=True, temperature=0.7)
#     return tokenizer.decode(outputs[0], skip_special_tokens=True)

# gr.Interface(
#     fn=generate_response,
#     inputs=gr.Textbox(label="Enter your instruction"),
#     outputs=gr.Textbox(label="Model response"),
#     title="LLaMA 3 - Fine-tuned Model"
# ).launch()

# Here I change the model name 
# from transformers import AutoTokenizer, AutoModelForCausalLM
# from peft import PeftModel
# import torch
# import gradio as gr

# # Load base model from HF Hub
# base_model_name = "distilgpt2"
# tokenizer = AutoTokenizer.from_pretrained(base_model_name)

# # Load base model (set torch_dtype if needed)
# model = AutoModelForCausalLM.from_pretrained(base_model_name, torch_dtype=torch.float16)

# # Load LoRA adapters from local files in Space
# adapter_path = "./"  # If adapter files are in root or specify folder name
# model = PeftModel.from_pretrained(model, adapter_path)

# model.eval()

# def predict(text):
#     inputs = tokenizer(text, return_tensors="pt").to("cpu")  # Use "cuda" if GPU available
#     outputs = model.generate(**inputs, max_new_tokens=70)
#     return tokenizer.decode(outputs[0], skip_special_tokens=True)
    
# iface = gr.Interface(fn=predict, inputs="text", outputs="text", title="LoRA Model Demo")
# iface.launch()

# // Here is the new code with intent to optimize 
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
import gradio as gr

# Load base model from HF Hub
base_model_name = "unsloth/Llama-3.2-1B"  # Use your model path or model name
tokenizer = AutoTokenizer.from_pretrained(base_model_name)

# Load base model (set torch_dtype if needed)
model = AutoModelForCausalLM.from_pretrained(base_model_name, torch_dtype=torch.float16)

# Load LoRA adapters from local files in Space
adapter_path = "./"  # If adapter files are in root or specify folder name
model = PeftModel.from_pretrained(model, adapter_path)

model.eval()

def predict(text):
    inputs = tokenizer(text, return_tensors="pt").to("cpu")  # Use "cuda" if GPU available
    outputs = model.generate(**inputs, max_new_tokens=100)
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

iface = gr.Interface(fn=predict, inputs="text", outputs="text", title="LoRA Model Demo")
iface.launch()