ShinpacheShimura's picture
Update app.py
c1346da verified
Raw
History Blame Contribute Delete
1.55 kB
"""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()
@spaces.GPU(duration=30)
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()