Compare MTP steps and prefill batches; retain qualified MTP 2 baseline

This commit is contained in:
2026-09-18 23:22:45 +08:00
parent 918b78a3b8
commit c8bfe6b9ab
45 changed files with 3785 additions and 3 deletions
+20
View File
@@ -0,0 +1,20 @@
"""Summarize tuning receipts without omitting failed variants."""
import argparse,json,pathlib,re,statistics
p=argparse.ArgumentParser();p.add_argument('root',type=pathlib.Path);a=p.parse_args();out={}
for folder in sorted(a.root.glob('*/*')):
if not folder.is_dir():continue
entry={};status=folder/'status.json'
if status.exists():entry.update(json.loads(status.read_text()))
for f in ['screen.jsonl','quality-medium.jsonl']:
path=folder/f
if not path.exists():continue
rows=[json.loads(l) for l in path.read_text().splitlines() if l]
entry[f]={'count':len(rows),'failed':[r['name'] for r in rows if not r['passed']]}
if f=='screen.jsonl':
entry['decode_tps']={tag:statistics.median(r['decode_tps'] for r in rows if r['name'].startswith('perf-'+tag+'-') and r.get('decode_tps')) for tag in ['code','chinese','reasoning'] if any(r['name'].startswith('perf-'+tag+'-') and r.get('decode_tps') for r in rows)}
entry['latency']={r['name']:{'ttft_s':r.get('ttft_s'),'elapsed_s':r.get('elapsed_s'),'passed':r['passed']} for r in rows if r['name'] in ['long-context-0','long-context-1','long-context-image','video-120s','multi-image']}
log=folder/'server.log'
if log.exists():
s=log.read_text();entry['memory_log']=[l for l in s.splitlines() if any(t in l for t in ['Model loading took','Available KV cache memory','GPU KV cache size','To serve at least one request'])]
if entry:out[str(folder.relative_to(a.root))]=entry
print(json.dumps(out,ensure_ascii=False,indent=2))