Spaces:
Runtime error
Runtime error
taka-yamakoshi
commited on
Commit
·
c1ed878
1
Parent(s):
9149baa
impl interv
Browse files
custom_modeling_albert_flax.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
from typing import Callable, Optional, Tuple
|
|
|
2 |
|
3 |
import numpy as np
|
4 |
|
@@ -88,6 +89,27 @@ class CustomFlaxAlbertSelfAttention(nn.Module):
|
|
88 |
hidden_states.shape[:2] + (self.config.num_attention_heads, head_dim)
|
89 |
)
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
# Convert the boolean attention mask to an attention bias.
|
92 |
if attention_mask is not None:
|
93 |
# attention mask in the form of attention bias
|
|
|
1 |
from typing import Callable, Optional, Tuple
|
2 |
+
from copy import deepcopy
|
3 |
|
4 |
import numpy as np
|
5 |
|
|
|
89 |
hidden_states.shape[:2] + (self.config.num_attention_heads, head_dim)
|
90 |
)
|
91 |
|
92 |
+
reps = {
|
93 |
+
'lay': hidden_states,
|
94 |
+
'qry': query_states,
|
95 |
+
'key': key_states,
|
96 |
+
'val': value_states,
|
97 |
+
}
|
98 |
+
if layer_id in interv_dict:
|
99 |
+
interv = interv_dict[layer_id]
|
100 |
+
for rep_name in ['lay','qry','key','val']:
|
101 |
+
if rep_name in interv:
|
102 |
+
new_state = deepcopy(reps[rep_name])
|
103 |
+
for head_id, pos, swap_ids in interv[rep_name]:
|
104 |
+
new_state[swap_ids[0],pos,head_id] = reps[rep_name][swap_ids[1],pos,head_id]
|
105 |
+
new_state[swap_ids[1],pos,head_id] = reps[rep_name][swap_ids[0],pos,head_id]
|
106 |
+
reps[rep_name] = deepcopy(new_state)
|
107 |
+
|
108 |
+
hidden_states = deepcopy(reps['lay'])
|
109 |
+
query_states = deepcopy(reps['qry'])
|
110 |
+
key_states = deepcopy(reps['key'])
|
111 |
+
value_states = deepcopy(reps['val'])
|
112 |
+
|
113 |
# Convert the boolean attention mask to an attention bias.
|
114 |
if attention_mask is not None:
|
115 |
# attention mask in the form of attention bias
|