File size: 2,215 Bytes
fddfb10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""Supplement GPU latency with ASR session boundaries, preserving the original score."""
from pathlib import Path
import argparse
import json
from verify_mlx_q3_memory_regression_v1 import timing_audit, sha


def main():
    p = argparse.ArgumentParser(description=__doc__)
    p.add_argument('--directory', type=Path, required=True)
    args = p.parse_args()
    root = args.directory
    output = root / 'causal-alignment-audit.json'
    assert not output.exists()
    report = json.loads((root / 'run.json').read_text())
    assert report['status'] == 'complete'
    raw = root / 'run.jsonl'
    obs = root / 'run.observed.jsonl'
    assert sha(raw) == report['logs']['raw']['sha256']
    assert sha(obs) == report['logs']['observed']['sha256']
    rows = [json.loads(line) for line in raw.open()]
    observations = [json.loads(line) for line in obs.open()]
    # Derived times use the same recorded origin as the unchanged primary score.
    for row, receipt in zip(rows, observations, strict=True):
        assert row['kind'] == receipt['kind'] and row.get('index') == receipt['index']
        receipt['received_seconds_since_feeder_start'] = (
            receipt['received_monotonic_seconds'] - report['feeder']['feeder_started_monotonic'])
    audit = timing_audit(dict(score=report['caption_score']), rows, observations)
    result = dict(status='supplementary_audit_complete', audit=audit,
        original_counts=report['caption_score']['counts'],
        original_alignment_timing=report['caption_score']['aligned_word_timing'],
        production_ready=False, whole_release_pass=False, not_a_replacement_score=True,
        method='Textual matches wholly outside the emitting ASR session cannot identify the spoken word for latency. They remain unresolved recognition evidence, never zero-latency successes. Original global score and latency are retained.',
        inputs={str(path): sha(path) for path in (root / 'run.json', raw, obs, Path(__file__),
                                                   Path(__file__).with_name('verify_mlx_q3_memory_regression_v1.py'))})
    output.write_text(json.dumps(result, indent=2) + '\n')
    print(json.dumps(audit))


if __name__ == '__main__':
    main()