Spaces:
Running on Zero
Running on Zero
| """Gradio Space for ShinpacheShimura/t5-smaller.""" | |
| import gradio as gr | |
| import spaces | |
| import torch | |
| from transformers import AutoModelForSeq2SeqLM, AutoTokenizer | |
| MODEL_ID = "ShinpacheShimura/t5-smaller" | |
| SUBFOLDER = "optimized-flan-t5-small" | |
| tokenizer = AutoTokenizer.from_pretrained( | |
| MODEL_ID, | |
| subfolder=SUBFOLDER, | |
| ) | |
| model = AutoModelForSeq2SeqLM.from_pretrained( | |
| MODEL_ID, | |
| subfolder=SUBFOLDER, | |
| device_map={"": 0}, | |
| ) | |
| model.eval() | |
| def generate(prompt, max_new_tokens, num_beams): | |
| prompt = prompt.strip() | |
| if not prompt: | |
| raise gr.Error("Enter a prompt first.") | |
| inputs = tokenizer( | |
| prompt, | |
| return_tensors="pt", | |
| truncation=True, | |
| ).to("cuda") | |
| with torch.inference_mode(): | |
| output_ids = model.generate( | |
| **inputs, | |
| max_new_tokens=int(max_new_tokens), | |
| num_beams=int(num_beams), | |
| do_sample=False, | |
| ) | |
| return tokenizer.decode( | |
| output_ids[0], | |
| skip_special_tokens=True, | |
| ) | |
| demo = gr.Interface( | |
| fn=generate, | |
| inputs=[ | |
| gr.Textbox( | |
| label="Prompt", | |
| value="translate English to German: How old are you?", | |
| lines=4, | |
| ), | |
| gr.Slider(8, 128, value=64, step=8, label="Maximum new tokens"), | |
| gr.Slider(1, 4, value=1, step=1, label="Beams"), | |
| ], | |
| outputs=gr.Textbox(label="Output"), | |
| title="t5-smaller", | |
| description="A 4-bit NF4 version of FLAN-T5 Small.", | |
| api_name="predict", | |
| ) | |
| demo.queue().launch() | |