Download scripts/build_normstd.py from wepiqx/MERNIK: direct link, hf CLI and curl.
- Browser
- Download file 1.86 kB
-
https://huggingface.co/wepiqx/MERNIK/resolve/main/scripts/build_normstd.py
- Command line
-
hf download hf://wepiqx/MERNIK/scripts/build_normstd.py
-
curl -L -o build_normstd.py https://huggingface.co/wepiqx/MERNIK/resolve/main/scripts/build_normstd.py
1.86 kB
| #!/usr/bin/env python3 | |
| """Build top-down with norms pinned at F16 (the norms-F16 probe). | |
| Usage: build_normstd.py --utility MODE --size MIB --output FILE | |
| """ | |
| import argparse | |
| import os | |
| import sys | |
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from model_reader import read_model | |
| from imatrix_reader import read_imatrix, detect_tied_groups, build_importance_table | |
| from classifier import optimal_classify_topdown, compute_stats | |
| from config_generator import generate_flags, format_flags | |
| from quantizer import run_dry_run, run_quantization | |
| M = "/mnt/Vsio/Downloads/NeoHorse-1-9B-BF16.gguf" | |
| I = "/mnt/Vsio/Downloads/NeoHorse-1-9B.imatrix.gguf" | |
| def main(): | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("--utility", default="mse") | |
| ap.add_argument("--size", type=float, default=6500) | |
| ap.add_argument("--output", required=True) | |
| args = ap.parse_args() | |
| model = read_model(M) | |
| im = read_imatrix(I) | |
| tg = detect_tied_groups(im) | |
| imp = build_importance_table(im, model) | |
| a, pad = optimal_classify_topdown(imp, tg, model, args.size, | |
| uopt={"mode": args.utility}) | |
| ne = {k: v["n_elements"] for k, v in model.get("tensors", {}).items()} | |
| n = 0 | |
| for t in a: | |
| if "norm" in t or ne.get(t, 10 ** 9) < 100000: | |
| if a[t] != "F16": | |
| n += 1 | |
| a[t] = "F16" | |
| st = compute_stats(a, ne, pad) | |
| print("norms rescued: %d total=%.1f (target %.0f)" % (n, st["total_mib"], args.size)) | |
| flags = generate_flags(a, model, "Q5_K_M", args.size) | |
| flags["imatrix"] = I | |
| print(format_flags(flags)) | |
| dry = run_dry_run(flags, M) | |
| print("dry-run: %.0f" % (dry or -1)) | |
| ok = run_quantization(flags, M, args.output) | |
| print("OK" if ok else "FAILED") | |
| sys.exit(0 if ok else 1) | |
| if __name__ == "__main__": | |
| main() | |