SmolGRPO-135M / app.py
ayyuce's picture
Update app.py
81d26f9 verified
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
import torch
model_name = "ayyuce/SmolGRPO-135M"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
generator = pipeline("text-generation", model=model, tokenizer=tokenizer, device=-1) # device=-1 ensures CPU usage
def generate_text(prompt, max_new_tokens, temperature, top_p, do_sample):
generate_kwargs = {
"max_new_tokens": int(max_new_tokens),
"temperature": float(temperature),
"top_p": float(top_p),
"do_sample": do_sample == "Yes",
}
generated_list = generator(prompt, **generate_kwargs)
generated_text = generated_list[0]["generated_text"]
return generated_text
with gr.Blocks() as demo:
gr.Markdown("# SmolGRPO-135M Text Generator")
with gr.Row():
with gr.Column():
prompt = gr.Textbox(label="Prompt", lines=5, placeholder="Enter your prompt here...")
max_new_tokens = gr.Number(label="Max New Tokens", value=256)
temperature = gr.Slider(label="Temperature", minimum=0.0, maximum=1.0, value=0.5)
top_p = gr.Slider(label="Top-p (Nucleus Sampling)", minimum=0.0, maximum=1.0, value=0.9)
do_sample = gr.Dropdown(label="Do Sample", choices=["Yes", "No"], value="Yes")
generate_button = gr.Button("Generate Text")
with gr.Column():
output = gr.Textbox(label="Generated Text", lines=15)
generate_button.click(
fn=generate_text,
inputs=[prompt, max_new_tokens, temperature, top_p, do_sample],
outputs=output
)
if __name__ == "__main__":
demo.launch()