Spaces:
Runtime error
Runtime error
import gradio as gr | |
import torch | |
import torch.nn.functional as F | |
from transformers import XGLMTokenizer, XGLMForCausalLM | |
tokenizer = XGLMTokenizer.from_pretrained("facebook/xglm-2.9B") | |
model = XGLMForCausalLM.from_pretrained("facebook/xglm-2.9B") | |
data_samples = { | |
'en': [ | |
{ | |
"premise": "I wanted to conserve energy.", | |
"choice1": "I swept the floor in the unoccupied room.", | |
"choice2": "I shut off the light in the unoccupied room.", | |
"question": "effect", | |
"label": "1" | |
} | |
], | |
'zh': [ | |
{ | |
"premise": "ζζ³θηΊ¦θ½ζΊγ", | |
"choice1": "ζε¨η©ΊηηζΏι΄ιζ«δΊε°ζΏγ", | |
"choice2": "ζζη©ΊζΏι΄ιηη―ε ³δΊγ", | |
"question": "effect", | |
"label": "1" | |
} | |
] | |
} | |
def get_logprobs(prompt): | |
inputs = tokenizer(prompt, return_tensors="pt") | |
input_ids, output_ids = inputs["input_ids"], inputs["input_ids"][:, 1:] | |
outputs = model(**inputs, labels=input_ids) | |
logits = outputs.logits | |
logprobs = torch.gather(F.log_softmax(logits, dim=2), 2, output_ids.unsqueeze(2)) | |
return logprobs | |
# Zero-shot evaluation for the Choice of Plausible Alternatives (COPA) task. | |
# A return value of 0 indicates that the first alternative is more plausible, | |
# while 1 indicates that the second alternative is more plausible. | |
def COPA_eval(premise, choice1, choice2): | |
lprob1 = get_logprobs(premise + "\n" + choice1).sum() | |
lprob2 = get_logprobs(premise + "\n" + choice2).sum() | |
#return 0 if lprob1 > lprob2 else 1 | |
return choice1 if lprob1 > lprob2 else choice2 | |
iface = gr.Interface( | |
fn=COPA_eval, | |
inputs=["text", "text", "text"], | |
outputs=["text"], | |
theme="huggingface", | |
title="XGLM-Few-shot Learning with Multilingual Language Models", | |
description="A simple interface for zero-shot evaluation for the Choice of Plausible Alternatives (COPA) task using XGLM.", | |
examples=[["I wanted to conserve energy.", "I swept the floor in the unoccupied room.", "I shut off the light in the unoccupied room.",], ["ζζ³θηΊ¦θ½ζΊγ", "ζε¨η©ΊηηζΏι΄ιζ«δΊε°ζΏγ", "ζζη©ΊζΏι΄ιηη―ε ³δΊγ",]], | |
article="<p style='text-align: center'><a href='https://arxiv.org/abs/2112.10668'>Few-shot Learning with Multilingual Language Models</a>" | |
) | |
iface.launch() |