aimeri commited on
Commit
53e36fb
·
verified ·
1 Parent(s): 445ce14

Update eval/battery_mt.py

Browse files
Files changed (1) hide show
  1. eval/battery_mt.py +2 -7
eval/battery_mt.py CHANGED
@@ -1,10 +1,6 @@
1
  #!/usr/bin/env python3
2
  """Multi-turn RP battery for mockingbird.
3
 
4
- The single-turn battery is structurally blind to the live defect (repetition
5
- ACROSS turns), so this drives real multi-turn episodes: the model's own turns
6
- feed back into context, exactly the loop where repetition compounds.
7
-
8
  Episodes are scripted user-turn sequences over RP cards, two of them designed
9
  as repetition bait:
10
  loop-bait near-identical user beats twice in a row
@@ -13,14 +9,13 @@ as repetition bait:
13
 
14
  Per-episode scorers (an episode PASSES only if all pass):
15
  repeat max word-set Jaccard between any two generated turns < 0.55
16
- (the mini-sorcha gate, same constant)
17
  opener no 3-word opener shared by >50% of generated turns (tic)
18
  collapse median length of last 3 turns >= 40% of first 3
19
  format asterisk beats in >=half of turns iff the card uses them
20
  clean no Name:-prefix opener, no meta/refusal break (common.META_BREAK)
21
  stop no turn runs into the max_tokens ceiling (the unstoppable check)
22
 
23
- Run: MODEL_URL=http://host:8000/v1 MODEL=mockingbird python3 battery_mt.py
24
  Selftest: python3 battery_mt.py --selftest (canned repeater vs healthy)
25
  """
26
 
@@ -38,7 +33,7 @@ from common import META_BREAK
38
  # Battery-local, stricter than common.NAME_PREFIX: every word before the colon
39
  # must be capitalized (a proper name — "Mrs. Reed:", "Malty S Melromarc:").
40
  # In-character status headers ("Crew status:", "Tether integrity:") are NOT
41
- # transcript openers; measured false positives at ckpt-350/400.
42
  NAME_PREFIX = re.compile(r"^[A-Z][a-z'.]+( [A-Z][A-Za-z'.]*){0,3}: \S")
43
 
44
  WORD = re.compile(r"[a-z']+")
 
1
  #!/usr/bin/env python3
2
  """Multi-turn RP battery for mockingbird.
3
 
 
 
 
 
4
  Episodes are scripted user-turn sequences over RP cards, two of them designed
5
  as repetition bait:
6
  loop-bait near-identical user beats twice in a row
 
9
 
10
  Per-episode scorers (an episode PASSES only if all pass):
11
  repeat max word-set Jaccard between any two generated turns < 0.55
 
12
  opener no 3-word opener shared by >50% of generated turns (tic)
13
  collapse median length of last 3 turns >= 40% of first 3
14
  format asterisk beats in >=half of turns iff the card uses them
15
  clean no Name:-prefix opener, no meta/refusal break (common.META_BREAK)
16
  stop no turn runs into the max_tokens ceiling (the unstoppable check)
17
 
18
+ Run: MODEL_URL=http://host:8000/v1 MODEL=thrasher python3 battery_mt.py
19
  Selftest: python3 battery_mt.py --selftest (canned repeater vs healthy)
20
  """
21
 
 
33
  # Battery-local, stricter than common.NAME_PREFIX: every word before the colon
34
  # must be capitalized (a proper name — "Mrs. Reed:", "Malty S Melromarc:").
35
  # In-character status headers ("Crew status:", "Tether integrity:") are NOT
36
+ # transcript openers.
37
  NAME_PREFIX = re.compile(r"^[A-Z][a-z'.]+( [A-Z][A-Za-z'.]*){0,3}: \S")
38
 
39
  WORD = re.compile(r"[a-z']+")