Download code/paya/inference.py from yeabwang/Paya: direct link, hf CLI and curl.
- Browser
- Download file 1.12 kB
-
https://huggingface.co/yeabwang/Paya/resolve/main/code/paya/inference.py
- Command line
-
hf download hf://yeabwang/Paya/code/paya/inference.py
-
curl -L -o inference.py https://huggingface.co/yeabwang/Paya/resolve/main/code/paya/inference.py
1.12 kB
| """Load an exported model for inference.""" | |
| import json | |
| from pathlib import Path | |
| from .checkpoint import load_checkpoint | |
| from .model import PayaModel | |
| from .provenance import RUNTIME_CONTRACT, contained_file, sha256 | |
| from .vendor import signal | |
| __all__ = ["load_model"] | |
| def load_model(directory, device="cpu"): | |
| root = Path(directory).resolve() | |
| manifest = json.loads((root/"manifest.json").read_text(encoding="utf-8")) | |
| if manifest.get("contract") != RUNTIME_CONTRACT: | |
| raise ValueError("Unsupported model architecture") | |
| for name, expected in manifest["files"].items(): | |
| if sha256(contained_file(root, name)) != expected: | |
| raise ValueError(f"Model file checksum changed: {name}") | |
| config = json.loads((root/"config.json").read_text(encoding="utf-8")) | |
| assets = {name: root/name for name in (signal.ASSET_KEY, "text")} | |
| model = PayaModel.from_assets(assets, config["preparation"], config["head"], device) | |
| if manifest["identity"] != model.identity(): | |
| raise ValueError("Model identities differ") | |
| load_checkpoint(root/"decision.pt", model) | |
| return model | |