Sasando-1 / app.py
afrizalha's picture
Update app.py
2c12e86 verified
import os
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
hf_token= os.getenv("access_token")
tokenizer = AutoTokenizer.from_pretrained("afrizalha/Sasando-1-25M", token=hf_token)
tiny = AutoModelForCausalLM.from_pretrained("afrizalha/Sasando-1-25M", token=hf_token)
tinier = AutoModelForCausalLM.from_pretrained("afrizalha/Sasando-1-7M", token=hf_token)
desc = """Sasando-1 is a tiny, highly experimental text generator built using the Phi-3 architecture. It comes with two variations of microscopic sizes: 7M and 25M parameters. It is trained on a tightly-controlled Indo4B dataset filtered to only have 18000 unique words. The method is inspired by Microsoft's TinyStories paper which demonstrates that a tiny language model can produce fluent text when trained on tightly-controlled dataset.\n\nTry prompting with two simple words, and let the model continue. Fun examples provided below."""
def generate(starting_text, choice, temp, top_p):
if choice == '7M':
model = tinier
elif choice == '25M':
model = tiny
elif choice == "Info":
yield desc
return
results = []
for i in range(5):
inputs = tokenizer([starting_text], return_tensors="pt").to(model.device)
outputs = model.generate(
inputs=inputs.input_ids,
max_new_tokens=32-len(inputs.input_ids[0]),
do_sample=True,
temperature=temp,
top_p=top_p
)
outputs = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
outputs = outputs[:outputs.find(".")]
results.append(outputs)
yield "\n\n".join(results)
with gr.Blocks(theme=gr.themes.Soft()) as app:
starting_text = gr.Textbox(label="Starting text", value="cinta adalah")
res = gr.Textbox(label="Continuation", value="cinta adalah", scale=2)
choice = gr.Radio(["7M", "25M", "Info"], label="Select model", value='Info')
temp = gr.Slider(label="Temperature", minimum=0.1, maximum=1.0, step=0.1, value=0.7)
top_p = gr.Slider(label="Top P", minimum=0.1, maximum=1.0, step=0.1, value=0.5)
gr.Interface(
fn=generate,
inputs=[starting_text,choice,temp,top_p],
outputs=[res],
allow_flagging="never",
title="Sasando-1",
)
examples=gr.Examples([["gue"], ["presiden"], ["cinta adalah"], ["allah, aku"], ["dia marah karena"],
["inflasi"], ["kolam renang"], ["messi"], ["jalan-jalan"], ["komputer itu"]], [starting_text])
app.launch()