File size: 2,547 Bytes
d10214a 539debe d10214a 318834e d10214a 7888e51 d10214a aff4485 91a8143 d10214a 91a8143 d10214a ff2a72a 2c12e86 2e4a4ab d10214a 1940b48 d10214a 91a8143 d10214a 91a8143 d10214a 2c12e86 2e4a4ab d10214a 301ebcf 378b55a aff4485 e85679c c219137 e85679c |
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 |
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() |