in sparse_autoencoder/explanations.py [0:0]
def get_minimal_subsequence(doc):
for i in range(len(doc["token_ints"]) - 1, -1, -1):
atom_acts = yield doc["token_ints"][i:]
assert (
len(atom_acts) == len(doc["token_ints"]) - i
), f"{len(atom_acts)} != {len(doc['token_ints']) - i}"
if atom_acts[-1] / doc["act"] >= 0.5:
return {
"tokens": doc["tokens"][i:],
"token_ints": doc["token_ints"][i:],
"subsequence_act": atom_acts[-1],
"orig_act": doc["act"],
}
print("Warning: no minimal subsequence found")
# raise ValueError("No minimal subsequence found")
return {
"tokens": doc["tokens"],
"token_ints": doc["token_ints"],
"subsequence_act": doc["act"],
"orig_act": doc["act"],
}