File size: 1,217 Bytes
53e2835 |
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 |
from peft import PeftModel
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
# Define model details
base_model_name = "microsoft/phi-2"
adapter_name = "JamieAi33/Phi-2-QLora"
# Load base model
print("Loading base model...")
base_model = AutoModelForCausalLM.from_pretrained(base_model_name, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
# Apply LoRA adapter
print("Loading LoRA adapter...")
model = PeftModel.from_pretrained(base_model, adapter_name)
# Function to generate text
def generate_text(prompt, max_tokens):
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=max_tokens)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown("# PEFT LoRA Model")
with gr.Row():
prompt = gr.Textbox(label="Prompt", lines=4)
max_tokens = gr.Slider(label="Max Tokens", minimum=10, maximum=200, value=50)
output = gr.Textbox(label="Generated Text", lines=6)
generate_button = gr.Button("Generate")
generate_button.click(generate_text, inputs=[prompt, max_tokens], outputs=output)
demo.launch()
|