Skip to content

Commit d27fd17

Browse files
author
Ronald Tse
committed
fix(eval): per-item DER guards zero-haraqat paragraphs (evaluator 0/0)
1 parent 9ccd9e1 commit d27fd17

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

src/gpu/modal_distill.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,13 +1205,18 @@ def der_ce_from_preds(preds) -> dict:
12051205
)
12061206
return {"der_ce": round(total_der, 4), "n": len(inputs)} # evaluator already returns %
12071207

1208-
def item_der_from_preds(preds) -> list[float]:
1209-
ders = []
1208+
def item_der_from_preds(preds) -> list[float | None]:
1209+
ders: list[float | None] = []
12101210
for pred, gt in zip(preds, gts, strict=True):
1211-
_, _, d, _, _ = E.caculate_errors_on_sentences(
1212-
[pred], [gt], gt_missing_diacritic_is_error=False
1213-
)
1214-
ders.append(float(d))
1211+
try:
1212+
_, _, d, _, _ = E.caculate_errors_on_sentences(
1213+
[pred], [gt], gt_missing_diacritic_is_error=False
1214+
)
1215+
ders.append(float(d))
1216+
except ZeroDivisionError:
1217+
# paragraph carries no scorable haraqat positions; the
1218+
# aggregate call skips it, single-item calls cannot
1219+
ders.append(None)
12151220
return ders
12161221

12171222
teacher_preds = windowed_paragraphs(teacher, tok, inputs, window=window)
@@ -1221,11 +1226,12 @@ def item_der_from_preds(preds) -> list[float]:
12211226
"teacher": der_ce_from_preds(teacher_preds),
12221227
"student": der_ce_from_preds(student_preds),
12231228
}
1229+
t_ders = item_der_from_preds(teacher_preds)
1230+
s_ders = item_der_from_preds(student_preds)
12241231
result["paired_bootstrap"] = paired_bootstrap([
12251232
s - t
1226-
for s, t in zip(
1227-
item_der_from_preds(student_preds), item_der_from_preds(teacher_preds), strict=True
1228-
)
1233+
for s, t in zip(s_ders, t_ders, strict=True)
1234+
if s is not None and t is not None
12291235
])
12301236
result["gate_delta"] = round(result["student"]["der_ce"] - result["teacher"]["der_ce"], 4)
12311237
result["gate_pass"] = result["gate_delta"] <= 0.5

0 commit comments

Comments
 (0)