ShynBui's picture
Update app.py
8681e58 verified
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()