Spaces:
Runtime error
Runtime error
import gradio as gr | |
import transformers | |
import torch.nn.functional as F | |
import numpy as np | |
def generate(model_name="Salesforce/codegen-350M-mono", text="World"): | |
model = transformers.AutoModelForCausalLM.from_pretrained(model_name) | |
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name) | |
input_ids = tokenizer.encode(text, return_tensors='pt') | |
output = model.generate(input_ids, max_length=100, do_sample=True) | |
return tokenizer.decode(output[0]) | |
def get_token_likelyhoods(model_name="Salesforce/codegen-350M-mono", text="World"): | |
# get likelyhoods for each token | |
model = transformers.AutoModelForCausalLM.from_pretrained(model_name) | |
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name) | |
input_ids = tokenizer.encode(text, return_tensors='pt') | |
out = model(input_ids) | |
probs = F.softmax(out.logits, dim=-1).squeeze() | |
output = [] | |
for tok, logits in zip(input_ids.squeeze()[1:], probs): | |
output.append(( | |
tokenizer.decode(tok), | |
str(round(logits[tok].item() * 100, 4)) + "%", | |
# tokenizer.decode(np.argmax(logits.detach())) | |
)) | |
return output | |
demo = gr.Interface( | |
fn=get_token_likelyhoods, | |
title="Per-token likelyhood GUI based on Giant Language model Test Room", | |
inputs = [ | |
gr.Textbox( | |
label="Model name", | |
lines=1, | |
value="Salesforce/codegen-350M-mono", | |
), | |
gr.Textbox( | |
label="Text", | |
lines=3, | |
value="def first_n_primes(n):\n primes = []\n i = 2\n while len(primes) < n:\n if is_prime(i):\n primes.append(i)\n i += 1\n return", | |
), | |
], | |
outputs = gr.HighlightedText( | |
label="Diff", | |
combine_adjacent=True, | |
).style(color_map={"+": "red", "-": "green"}), | |
) | |
if __name__ == "__main__": | |
demo.launch() | |
# iface = gr.Interface(fn=generate, inputs=["text", "text"], outputs="text") | |
# iface.launch() | |