Spaces:
Running
Running
import gradio as gr | |
import torch | |
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline | |
from peft import PeftModel # Load Adapter Model | |
# Tên Base Model & Adapter Model | |
base_model_name = "Qwen/Qwen2.5-1.5B-Instruct" | |
adapter_name = "ShynBui/OU_student_book_v5_1.5" | |
# Load Base Model | |
print("🔄 Đang tải Base Model...") | |
base_model = AutoModelForCausalLM.from_pretrained( | |
base_model_name, torch_dtype=torch.float16, device_map="cpu" | |
) | |
tokenizer = AutoTokenizer.from_pretrained(base_model_name) | |
# Load Adapter Model | |
print("🔄 Đang tải Adapter Model...") | |
model = PeftModel.from_pretrained(base_model, adapter_name) | |
text_generator = pipeline("text-generation", model=model, tokenizer=tokenizer) | |
# Hàm sinh văn bản với các tham số điều chỉnh | |
def generate_text(prompt, temperature=0.7, top_p=0.9, top_k=50, max_length=512): | |
outputs = text_generator( | |
prompt, | |
max_length=max_length, # Giới hạn số token sinh ra | |
temperature=temperature, # Điều chỉnh độ sáng tạo | |
top_p=top_p, # Nucleus Sampling | |
top_k=top_k # Top-k Sampling | |
) | |
return outputs[0]["generated_text"] | |
# Giao diện Gradio với các thanh trượt điều chỉnh | |
demo = gr.Interface( | |
fn=generate_text, | |
inputs=[ | |
gr.Textbox(label="Nhập câu hỏi"), | |
gr.Slider(0.1, 1.5, value=0.7, label="Temperature"), | |
gr.Slider(0.1, 1.0, value=0.9, label="Top-p"), | |
gr.Slider(1, 100, value=50, label="Top-k"), | |
gr.Slider(100, 2048, value=512, label="Max Tokens"), | |
], | |
outputs="text", | |
title="OU Student Book Chatbot", | |
description="Chatbot sử dụng mô hình fine-tuned trên Qwen2.5-1.5B, chạy trên CPU với các tham số điều chỉnh.", | |
) | |
# Chạy ứng dụng | |
demo.launch() | |