taka-yamakoshi commited on
Commit
85debe8
1 Parent(s): e2ecd0a
Files changed (1) hide show
  1. app.py +7 -3
app.py CHANGED
@@ -130,7 +130,10 @@ def separate_options(option_locs):
130
  assert np.sum(np.diff(option_locs)>1)==1
131
  sep = list(np.diff(option_locs)>1).index(1)+1
132
  option_1_locs, option_2_locs = option_locs[:sep], option_locs[sep:]
133
- assert np.all(np.diff(option_1_locs)==1) and np.all(np.diff(option_2_locs)==1)
 
 
 
134
  return option_1_locs, option_2_locs
135
 
136
  def mask_out(input_ids,pron_locs,option_locs,mask_id):
@@ -227,7 +230,7 @@ if __name__=='__main__':
227
 
228
  for layer_id in range(num_layers):
229
  interventions = [create_interventions(16,['lay','qry','key','val'],num_heads) if i==layer_id else {'lay':[],'qry':[],'key':[],'val':[]} for i in range(num_layers)]
230
- for masked_ids in [masked_ids_option_1, masked_ids_option_2]:
231
  input_ids = torch.tensor([
232
  *[masked_ids['sent_1'] for _ in range(num_heads)],
233
  *[masked_ids['sent_2'] for _ in range(num_heads)]
@@ -235,7 +238,8 @@ if __name__=='__main__':
235
  outputs = SkeletonAlbertForMaskedLM(model,input_ids,interventions=interventions)
236
  logprobs = F.log_softmax(outputs['logits'], dim = -1)
237
  logprobs_1, logprobs_2 = logprobs[:num_heads], logprobs[num_heads:]
238
- evals_1 = [logprobs_1[:,pron_locs[0]+1+i,token] for i,token in enumerate(option_1_tokens)]
 
239
 
240
 
241
  preds_0 = [torch.multinomial(torch.exp(probs), num_samples=1).squeeze(dim=-1) for probs in logprobs[0][1:-1]]
 
130
  assert np.sum(np.diff(option_locs)>1)==1
131
  sep = list(np.diff(option_locs)>1).index(1)+1
132
  option_1_locs, option_2_locs = option_locs[:sep], option_locs[sep:]
133
+ if len(option_1_locs)>1:
134
+ assert np.all(np.diff(option_1_locs)==1)
135
+ if len(option_2_locs)>1:
136
+ assert np.all(np.diff(option_2_locs)==1)
137
  return option_1_locs, option_2_locs
138
 
139
  def mask_out(input_ids,pron_locs,option_locs,mask_id):
 
230
 
231
  for layer_id in range(num_layers):
232
  interventions = [create_interventions(16,['lay','qry','key','val'],num_heads) if i==layer_id else {'lay':[],'qry':[],'key':[],'val':[]} for i in range(num_layers)]
233
+ for masked_ids, option_tokens in zip([masked_ids_option_1, masked_ids_option_2],[option_1_tokens,option_2_tokens]):
234
  input_ids = torch.tensor([
235
  *[masked_ids['sent_1'] for _ in range(num_heads)],
236
  *[masked_ids['sent_2'] for _ in range(num_heads)]
 
238
  outputs = SkeletonAlbertForMaskedLM(model,input_ids,interventions=interventions)
239
  logprobs = F.log_softmax(outputs['logits'], dim = -1)
240
  logprobs_1, logprobs_2 = logprobs[:num_heads], logprobs[num_heads:]
241
+ evals_1 = [logprobs_1[:,pron_locs['sent_1'][0]+1+i,token] for i,token in enumerate(option_tokens)]
242
+ evals_2 = [logprobs_2[:,pron_locs['sent_2'][0]+1+i,token] for i,token in enumerate(option_tokens)]
243
 
244
 
245
  preds_0 = [torch.multinomial(torch.exp(probs), num_samples=1).squeeze(dim=-1) for probs in logprobs[0][1:-1]]