zmbfeng commited on
Commit
f9b7274
·
1 Parent(s): 4aa8f13

add scoring

Browse files
Files changed (1) hide show
  1. app.py +32 -10
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  import random
3
  import os
4
  import copy
5
-
6
  from huggingface_hub import login
7
  from transformers import pipeline
8
  from transformers import GPT2Tokenizer, GPT2LMHeadModel,set_seed
@@ -54,18 +54,40 @@ def create_response(input_str,
54
  if seed != -1:
55
  set_seed(seed)
56
  if model_name == "original_model":
57
- output_ids = original_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences )
58
- elif model_name == "untethered_model":
59
- output_ids = untethered_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences )
 
 
 
 
 
60
  elif model_name == "untethered_paraphrased_model":
61
- output_ids = untethered_paraphrased_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences )
 
 
62
  else:
63
- output_ids = original_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences )
64
-
 
 
 
 
 
 
 
 
 
 
 
65
  outputs = model_name+" generated <br>"
66
- for output_id in output_ids:
67
- output = tokenizer.decode(output_id, skip_special_tokens=True)
68
- outputs=outputs+output+"<br/>"
 
 
 
 
69
  return outputs
70
 
71
 
 
2
  import random
3
  import os
4
  import copy
5
+ import torch
6
  from huggingface_hub import login
7
  from transformers import pipeline
8
  from transformers import GPT2Tokenizer, GPT2LMHeadModel,set_seed
 
54
  if seed != -1:
55
  set_seed(seed)
56
  if model_name == "original_model":
57
+ output = original_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences,return_dict_in_generate=True, output_scores=True )
58
+ transition_scores = original_model.compute_transition_scores(output.sequences, output.scores,
59
+ normalize_logits=False)
60
+
61
+ elif model_name == "untethered_model":
62
+ output = untethered_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences,return_dict_in_generate=True, output_scores=True )
63
+ transition_scores = untethered_model.compute_transition_scores(output.sequences, output.scores,
64
+ normalize_logits=False)
65
  elif model_name == "untethered_paraphrased_model":
66
+ output = untethered_paraphrased_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences,return_dict_in_generate=True, output_scores=True )
67
+ transition_scores = untethered_paraphrased_model.compute_transition_scores(output.sequences, output.scores,
68
+ normalize_logits=False)
69
  else:
70
+ output = original_model.generate(input_ids,pad_token_id=tokenizer.eos_token_id,do_sample=do_sample, attention_mask=attention_mask, max_length=100, temperature=temperature, top_p=top_p, repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences,return_dict_in_generate=True, output_scores=True )
71
+ transition_scores = original_model.compute_transition_scores(output.sequences, output.scores,
72
+ normalize_logits=False)
73
+ score_list = []
74
+ for scores in transition_scores:
75
+ # exp_tensor_list = torch.exp(scores)
76
+ # print(scores)
77
+ # print(exp_tensor_list)
78
+ sum_exp_tensor_list = torch.sum(scores)
79
+ len_exp_tensor_list = torch.numel(scores)
80
+ average_exp_tensor_list = sum_exp_tensor_list / len_exp_tensor_list
81
+ print(average_exp_tensor_list)
82
+ score_list.append(average_exp_tensor_list.item())
83
  outputs = model_name+" generated <br>"
84
+ for index, output_id in enumerate(output.sequences):
85
+ sentence = tokenizer.decode(output_id, skip_special_tokens=True)
86
+ print(sentence + " score:" + str(score_list[index]))
87
+
88
+ # for output_id in output_ids:
89
+ # output = tokenizer.decode(output_id, skip_special_tokens=True)
90
+ # outputs=outputs+output+"<br/>"
91
  return outputs
92
 
93