|
|
import gradio as gr |
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
import torch |
|
|
|
|
|
|
|
|
model_id = "deepseek-ai/deepseek-llm-7b-chat" |
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id) |
|
|
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16, device_map="auto") |
|
|
|
|
|
|
|
|
def generate_response(prompt, temperature,top_p,max_new_tokens,repetition_penalty): |
|
|
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) |
|
|
outputs = model.generate( |
|
|
**inputs, |
|
|
do_sample=True, |
|
|
temperature=temperature, |
|
|
top_p=top_p, |
|
|
max_new_tokens=max_new_tokens, |
|
|
repetition_penalty=repetition_penalty, |
|
|
) |
|
|
|
|
|
return tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
|
|
|
|
|
|
demo = gr.Interface(fn=generate_response, |
|
|
inputs=[ |
|
|
gr.Textbox(label="Prompt", lines=6, placeholder="Ask something..."), |
|
|
gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Temperature"), |
|
|
gr.Slider(0.1, 1.0, value=0.9, step=0.1, label="top_p"), |
|
|
gr.Slider(32.0, 2048.0, value=512.0, step=1.0, label="max_new_tokens"), |
|
|
gr.Slider(1.0, 2.0, value=1.1, step=0.1, label="repetition_penalty"), |
|
|
], |
|
|
outputs="text" |
|
|
) |
|
|
demo.launch() |