#!/usr/bin/env python3 import argparse import struct from pathlib import Path GGML_FILE_MAGIC = 0x67676D6C GGUF_TYPE_STRING = 8 GGML_TYPE_F32 = 0 GGUF_ALIGNMENT = 32 def pad32(n: int) -> int: return (n + GGUF_ALIGNMENT - 1) & ~(GGUF_ALIGNMENT - 1) def write_gguf_string(buf: bytearray, value: str) -> None: data = value.encode("utf-8") buf += struct.pack(" int: if ggml_type != GGML_TYPE_F32: raise ValueError("only F32 is implemented for these probes") n = 1 for dim in dims: n *= dim return n * 4 def write_minimal_gguf(path: Path, tensors: list[tuple[str, tuple[int, ...], bytes]], kv: dict[str, str] | None = None) -> None: kv = kv or {} buf = bytearray() buf += b"GGUF" buf += struct.pack(" None: buf = bytearray() buf += struct.pack(" None: names = [ "dense/kernel:0", "dense/bias:0", "layer_normalization/gamma:0", "layer_normalization/beta:0", "dense_1/kernel:0", "dense_1/bias:0", "dense_2/kernel:0", "dense_2/bias:0", "layer_normalization_1/gamma:0", "layer_normalization_1/beta:0", "target_label/kernel:0", "target_label/bias:0", ] tensors = [(name, (1,), struct.pack(" None: write_minimal_gguf(path, []) def make_mnist_bad_arch(path: Path) -> None: write_minimal_gguf(path, [], {"general.architecture": "mnist-fc"}) def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--outdir", type=Path, default=Path(__file__).resolve().parent) args = parser.parse_args() args.outdir.mkdir(parents=True, exist_ok=True) make_gptj_quantizer_ndims(args.outdir / "ggml_gptj_quant_common_ndims1024.bin", 1024) make_magika_bad_shapes(args.outdir / "magika_required_tensors_bad_shapes.gguf") make_yolo_empty(args.outdir / "yolo_empty_model.gguf") make_mnist_bad_arch(args.outdir / "mnist_arch_no_tensors.gguf") if __name__ == "__main__": main()