Download code/eval_streak_ckpt.py from Akahsizrr/spec100m: direct link, hf CLI and curl.
- Browser
- Download file 1.01 kB
-
https://huggingface.co/Akahsizrr/spec100m/resolve/main/code/eval_streak_ckpt.py
- Command line
-
hf download hf://Akahsizrr/spec100m/code/eval_streak_ckpt.py
-
curl -L -o eval_streak_ckpt.py https://huggingface.co/Akahsizrr/spec100m/resolve/main/code/eval_streak_ckpt.py
1.01 kB
| """Standalone streak eval: python3 eval_streak_ckpt.py <ckpt> [max_heads]""" | |
| import sys, torch | |
| from config import Config | |
| from model import build_model | |
| from data_pipeline import load_tokens | |
| from train_medusa import eval_streak | |
| ckpt_path = sys.argv[1] | |
| max_heads = int(sys.argv[2]) if len(sys.argv) > 2 else None | |
| cfg = Config.v5_500m() | |
| model = build_model(cfg, "cuda") | |
| ckpt = torch.load(ckpt_path, map_location="cuda") | |
| missing, unexpected = model.load_state_dict(ckpt["model"], strict=False) | |
| print(f"loaded {ckpt_path} (step {ckpt.get('step')}) missing={len(missing)}") | |
| model.eval() | |
| cfg.use_markov_head = hasattr(model, "spec_markov_emb") | |
| data = load_tokens("mixture500m").to("cuda") | |
| for mk in ([True, False] if cfg.use_markov_head else [False]): | |
| cfg.use_markov_head = mk | |
| s, a = eval_streak(model, cfg, data, seq=1024, device="cuda", | |
| max_heads=max_heads) | |
| print(f"markov={'on ' if mk else 'off'} streak ~{s:.2f} " | |
| f"head-0 acc {a:.3f} (max_heads={max_heads})") | |