Spaces:
Sleeping
Sleeping
| 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() | |