File size: 2,654 Bytes
d10214a 539debe d10214a 318834e d10214a 7888e51 d10214a 91a8143 d10214a 91a8143 d10214a 91a8143 d10214a 1940b48 d10214a 91a8143 d10214a 91a8143 d10214a 91a8143 d10214a 1940b48 d10214a 1940b48 d10214a dcb978e ddb6e7a d10214a ce2e0ae |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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")
choice = gr.Radio(["7M", "25M", "Info"], label="Select model", info="Built with the Phi-3 architecture")
# num_runs = gr.Slider(label="Number of examples", minimum=1, maximum=10, step=1, value=5)
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)
res = gr.Textbox(label="Continuation")
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"], ["ayo jalan-jalan"], ["komputer itu"]], [starting_text], value='Info')
app.launch()
|