vlm-twin-spec-decoding / code /s32_analyze.py
LeoMaxwell's picture
add code, data, results, patches, report
ee3e28a verified
Raw History Blame Contribute Delete
951 Bytes
import json, statistics as st
B="/testessfs10/users/zeyu.zhang/wangyu_ssd/stage1/"
def load(p):
d={}
for line in open(B+p):
r=json.loads(line); d[r["pid"]]=r
return d
v1,v2,v3 = load("s32_van_e.jsonl"), load("s32_van_e2.jsonl"), load("s32_van_e3.jsonl")
for tag,f in (("blind_strict","s32_spec_g6.jsonl"),("blind_relax","s32_specrx_g6.jsonl")):
sp = load(f)
pids = sorted(set(sp)&set(v2)&set(v3))
n=len(pids)
ratios = sorted(sp[p]["tok_s"]/((v2[p]["tok_s"]+v3[p]["tok_s"])/2) for p in pids)
med=st.median(ratios); q1=ratios[n//4]; q3=ratios[(3*n)//4]
spm=st.mean([sp[p]["tok_s"] for p in pids])
print(f"{tag}: n={n} median={med:.3f} [IQR {q1:.3f}-{q3:.3f}] spec_mean={spm:.1f} tok/s")
m1=st.mean([r["tok_s"] for r in v1.values()]); m2=st.mean([r["tok_s"] for r in v2.values()]); m3=st.mean([r["tok_s"] for r in v3.values()])
print(f"vanilla means: van_e={m1:.2f} van_e2={m2:.2f} van_e3={m3:.2f} tok/s")