pii-en-65m / reproduction /scripts /check_environment.py
smoh's picture
Stage DataFog PII v0.1.0: epoch-2 checkpoint, frozen MCP bundle, provenance and licenses (part 2)
4b51830 verified
Raw History Blame
1.56 kB
"""Small environment smoke check; does not download data or train a PII model."""
import importlib.metadata
import json
import platform
from pathlib import Path
import onnxruntime as ort
import torch
result = {
"platform": platform.platform(),
"python": platform.python_version(),
"versions": {name: importlib.metadata.version(name) for name in (
"torch", "transformers", "datasets", "accelerate", "safetensors",
"scikit-learn", "onnx", "onnxscript", "onnxruntime",
)},
"mps_built": torch.backends.mps.is_built(),
"mps_available": torch.backends.mps.is_available(),
"onnxruntime_providers": ort.get_available_providers(),
}
if result["mps_available"]:
torch.manual_seed(0)
model = torch.nn.Linear(8, 2).to("mps")
optimizer = torch.optim.AdamW(model.parameters())
before = model.weight.detach().clone()
loss = model(torch.ones(4, 8, device="mps")).square().mean()
loss.backward()
finite_gradients = all(torch.isfinite(p.grad).all().item() for p in model.parameters())
optimizer.step()
torch.mps.synchronize()
result["mps_smoke_check"] = {
"finite_loss": torch.isfinite(loss).item(),
"finite_gradients": finite_gradients,
"weights_changed": not torch.equal(before, model.weight),
}
assert all(result["mps_smoke_check"].values()), result
out = Path(__file__).resolve().parents[1] / "artifacts" / "environment-check.json"
out.parent.mkdir(exist_ok=True)
out.write_text(json.dumps(result, indent=2) + "\n")
print(json.dumps(result, indent=2))