bloom-1b3-gen / app.py
younesbelkada
add files
5c7de89
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("bigscience/bloom-1b3", use_cache=True)
tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-1b3")
def post_process_sentence(input_sentence, generated_sentence):
new_sentence = generated_sentence.replace(input_sentence, "")
if "\n" not in new_sentence:
return generated_sentence.replace(" ", " ") + "\n- "
else:
return (input_sentence + new_sentence.split("\n")[0]).replace(" ", " ") + "\n- "
def generate_single(model, tokenizer, input_sentence, max_length=50, top_k=0, temperature=0.7):
input_ids = tokenizer.encode(input_sentence, return_tensors="pt")
output = model.generate(
input_ids, do_sample=True,
max_length=len(input_sentence)+max_length,
top_k=top_k,
temperature=temperature
)
generated_sentence = tokenizer.decode(output[0], skip_special_tokens=True)
return post_process_sentence(input_sentence, generated_sentence)
def question_bloom(input_sentence, max_length, temperature):
post_processed_output = generate_single(model, tokenizer, input_sentence, temperature=temperature, max_length=max_length)
return post_processed_output.split("\n-")[-2]
gr.Interface(
question_bloom,
[
gr.Textbox(lines=10, label="Input code"),
gr.inputs.Slider(
minimum=8,
maximum=256,
step=1,
default=8,
label="Number of tokens to generate",
),
gr.inputs.Slider(
minimum=0,
maximum=2,
step=0.1,
default=0.6,
label="Temperature",
),
],
outputs=gr.Textbox(label="Predicted sentence", lines=10),
).launch()