Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import pipeline, AutoTokenizer | |
# Define examples and model configuration | |
examples = [ | |
"Give me a recipe for pizza with pineapple", | |
"Write me a tweet about the new OpenVINO release", | |
"Explain the difference between CPU and GPU", | |
"Give five ideas for a great weekend with family", | |
"Do Androids dream of Electric sheep?", | |
"Who is Dolly?", | |
"Please give me advice on how to write resume?", | |
"Name 3 advantages to being a cat", | |
"Write instructions on how to become a good AI engineer", | |
"Write a love letter to my best friend", | |
] | |
# Define the model and its tokenizer | |
model_name = "susnato/phi-2" # Replace with your actual model identifier | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
generator = pipeline("text-generation", model=model_name, tokenizer=tokenizer) | |
def run_generation(user_text, top_p, temperature, top_k, max_new_tokens, performance): | |
prompt = f"Instruct:{user_text}\nOutput:" | |
response = generator(prompt, max_length=max_new_tokens, top_p=top_p, temperature=temperature, top_k=top_k)[0]["generated_text"] | |
return response, "N/A" # Replace "N/A" with actual performance metrics if available | |
def reset_textbox(*args): | |
return "", "", "" | |
def main(): | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
"# Question Answering with OpenVINO\n" | |
"Provide instruction which describes a task below or select among predefined examples and model writes response that performs requested task." | |
) | |
with gr.Row(): | |
with gr.Column(scale=4): | |
user_text = gr.Textbox( | |
placeholder="Write an email about an alpaca that likes flan", | |
label="User instruction", | |
) | |
model_output = gr.Textbox(label="Model response", interactive=False) | |
performance = gr.Textbox(label="Performance", lines=1, interactive=False) | |
with gr.Column(scale=1): | |
button_clear = gr.Button(value="Clear") | |
button_submit = gr.Button(value="Submit") | |
gr.Examples(examples, user_text) | |
with gr.Column(scale=1): | |
max_new_tokens = gr.Slider( | |
minimum=1, | |
maximum=1000, | |
value=256, | |
step=1, | |
interactive=True, | |
label="Max New Tokens", | |
) | |
top_p = gr.Slider( | |
minimum=0.05, | |
maximum=1.0, | |
value=0.92, | |
step=0.05, | |
interactive=True, | |
label="Top-p (nucleus sampling)", | |
) | |
top_k = gr.Slider( | |
minimum=0, | |
maximum=50, | |
value=0, | |
step=1, | |
interactive=True, | |
label="Top-k", | |
) | |
temperature = gr.Slider( | |
minimum=0.1, | |
maximum=5.0, | |
value=0.8, | |
step=0.1, | |
interactive=True, | |
label="Temperature", | |
) | |
user_text.submit( | |
run_generation, | |
[user_text, top_p, temperature, top_k, max_new_tokens, performance], | |
[model_output, performance], | |
) | |
button_submit.click( | |
run_generation, | |
[user_text, top_p, temperature, top_k, max_new_tokens, performance], | |
[model_output, performance], | |
) | |
button_clear.click( | |
reset_textbox, | |
[user_text, model_output, performance], | |
[user_text, model_output, performance], | |
) | |
return demo | |
if __name__ == "__main__": | |
iface = main() | |
iface.launch(share=True) | |