Solomon / mlx /src /solomon_mlx /artifacts.py
ArcherHume's picture
Claude Opus 5 (1M context)
Pin the MLX hub loader to the published revision
b35fb3b
Raw
History Blame Contribute Delete
2.61 kB
"""Artifact verification and distinct MLX runtime identities."""
import hashlib
import json
from importlib.metadata import version
from pathlib import Path
SOLOMON_REVISION = "5c0a4a82ddaeca6da2e3013f7045a8196c86957d"
BASE_REVISION = "1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0"
ADAPTER_SHA = "2addaf841ecc58829ad73081603b8d3e52743c53c6d558a17a1dd30e9bd2dbca"
HEADS_SHA = "126a9b5487dca937a768a4f228f2d2e7d513900d8ad0e99c4137fbaa42a1aa6f"
def sha256(path):
h = hashlib.sha256()
with Path(path).open("rb") as f:
for block in iter(lambda: f.read(8 << 20), b""):
h.update(block)
return h.hexdigest()
def digest(value):
return hashlib.sha256(
json.dumps(value, sort_keys=True, separators=(",", ":"), allow_nan=False).encode()
).hexdigest()
def verify_release(root):
root = Path(root)
manifest = json.loads((root / "MANIFEST.json").read_text())
checked = {}
for row in manifest["files"]:
rel = row["destination"]
path = (root / rel).resolve()
if not path.is_relative_to(root.resolve()):
raise ValueError("Manifest path escapes source directory")
expected = row.get("staged_sha256")
size = row.get("staged_bytes")
actual = sha256(path)
if expected and actual != expected:
raise ValueError(f"Source checksum mismatch: {rel}")
if size is not None and path.stat().st_size != size:
raise ValueError(f"Source size mismatch: {rel}")
checked[rel] = actual
return checked
def code_identity():
root = Path(__file__).parent
return digest({str(p.relative_to(root)): sha256(p) for p in sorted(root.rglob("*.py"))})
def runtime_identity(binding, *, chunk_size=2048, max_tokens=40960):
import platform
import mlx.core as mx
value = {
"backend": "mlx-metal",
"contract": "solomon-mlx-v1",
"source_contract": "solomon-v1",
"profile": binding["profile"],
"chunk_size": chunk_size,
"max_tokens": max_tokens,
"metal_device": mx.device_info(),
"macos_version": platform.mac_ver()[0],
"model_binding": digest(binding),
"code_sha256": code_identity(),
"versions": {p: version(p) for p in ("mlx", "mlx-vlm", "transformers", "numpy", "pillow")},
"placement": "question",
"lora_scale": 2.0,
"answer_projection": "trained-semantic-head-float32",
"recurrence": "mlx-float32",
"solomon_revision": SOLOMON_REVISION,
"base_revision": BASE_REVISION,
}
return {**value, "fingerprint": digest(value)}