Shield sweep upload
Browse files- README.md +71 -0
- config.json +14 -0
- d11/best.pt +3 -0
- d11/model.onnx +3 -0
- d11/training_summary.json +74 -0
- d7/best.pt +3 -0
- d7/model.onnx +3 -0
- d7/training_summary.json +74 -0
- d9/best.pt +3 -0
- d9/model.onnx +3 -0
- d9/training_summary.json +74 -0
README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: pytorch
|
| 3 |
+
tags:
|
| 4 |
+
- quantum-error-correction
|
| 5 |
+
- surface-code
|
| 6 |
+
- cuda-q
|
| 7 |
+
- circuit-family-specialized
|
| 8 |
+
license: other
|
| 9 |
+
license_name: nvidia-open-model-license-derivative
|
| 10 |
+
base_model: nvidia/Ising-Decoder-SurfaceCode-1-Fast
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
# QFabric Shield — MPS family decoder
|
| 14 |
+
|
| 15 |
+
Circuit-family-specialized neural QEC decoder, fine-tuned from
|
| 16 |
+
[`nvidia/Ising-Decoder-SurfaceCode-1-Fast`](https://huggingface.co/nvidia/Ising-Decoder-SurfaceCode-1-Fast)
|
| 17 |
+
on Stim-generated surface-code syndromes specific to the **mps** circuit family
|
| 18 |
+
used by [QFabric](https://quantabull.com).
|
| 19 |
+
|
| 20 |
+
## Distance variants
|
| 21 |
+
|
| 22 |
+
This repo contains **one decoder per code distance**, each trained on the full
|
| 23 |
+
sweep of physical error rates `p in { 0.001, 0.003, 0.005 }`:
|
| 24 |
+
|
| 25 |
+
- `d7/` — code distance D=7
|
| 26 |
+
- `d9/` — code distance D=9
|
| 27 |
+
- `d11/` — code distance D=11
|
| 28 |
+
|
| 29 |
+
Loading a specific variant:
|
| 30 |
+
|
| 31 |
+
```python
|
| 32 |
+
import torch
|
| 33 |
+
ckpt = torch.load(hf_hub_download("QuantaBull/qfabric-shield-mps", "d9/best.pt", token=HF_TOKEN))
|
| 34 |
+
```
|
| 35 |
+
|
| 36 |
+
## Architecture
|
| 37 |
+
|
| 38 |
+
- **Backbone** — 4-layer 3D CNN matching the Ising-Fast topology
|
| 39 |
+
(channels 4 → 128 → 128 → 128 → 4, kernel 3×3×3, GELU, ~913K params).
|
| 40 |
+
- **Family adapter** — small residual 3D CNN with family-biased kernel shape
|
| 41 |
+
`(5,3,3)` (the temporal bias for MPS prep's layered depth structure).
|
| 42 |
+
- **Total params** — ~913K backbone + ~5K adapter.
|
| 43 |
+
|
| 44 |
+
## Training
|
| 45 |
+
|
| 46 |
+
- Base: `nvidia/Ising-Decoder-SurfaceCode-1-Fast` weights loaded by shape-match.
|
| 47 |
+
- Data: ~500K Stim shots per (distance, p_error) cell, family-specific noise.
|
| 48 |
+
- Optimizer: AdamW, lr=1e-4, cosine schedule, 20 epochs.
|
| 49 |
+
- Hardware: single RTX 4090 (Community Cloud spot), ~2 hours per (family, distance).
|
| 50 |
+
|
| 51 |
+
## Performance — threshold curve
|
| 52 |
+
|
| 53 |
+
See [`QuantaBull/qfabric-shield-bench`](https://huggingface.co/datasets/QuantaBull/qfabric-shield-bench)
|
| 54 |
+
for the LER vs p threshold curve across all distances and decoders. The
|
| 55 |
+
canonical figure of merit: as code distance increases, Shield's specialist
|
| 56 |
+
drives LER below threshold faster than PyMatching does on the same family.
|
| 57 |
+
|
| 58 |
+
## Runtime
|
| 59 |
+
|
| 60 |
+
- ONNX exports under `d{N}/model.onnx`, opset 18, FP32 storage.
|
| 61 |
+
- Designed for CUDA-Q QEC's `trt_decoder` for sub-µs real-time decoding.
|
| 62 |
+
- CPU inference latency under 10 ms / shot via onnxruntime — used by the
|
| 63 |
+
public demo Space.
|
| 64 |
+
|
| 65 |
+
## License & rights
|
| 66 |
+
|
| 67 |
+
Derivative of NVIDIA's Ising-Decoder-SurfaceCode-1-Fast under the NVIDIA Open
|
| 68 |
+
Model License. Family-adapter architecture and fine-tuned weights are
|
| 69 |
+
proprietary to QuantaBull and covered by US Provisional Patent Application
|
| 70 |
+
"Circuit-Family-Specialized Neural Decoder for Financial Quantum Computing"
|
| 71 |
+
(Q3 2026 filing, Jay Gopalan inventor).
|
config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"family": "mps",
|
| 3 |
+
"base_model": "nvidia/Ising-Decoder-SurfaceCode-1-Fast",
|
| 4 |
+
"distances": [
|
| 5 |
+
7,
|
| 6 |
+
9,
|
| 7 |
+
11
|
| 8 |
+
],
|
| 9 |
+
"p_errors": [
|
| 10 |
+
0.001,
|
| 11 |
+
0.003,
|
| 12 |
+
0.005
|
| 13 |
+
]
|
| 14 |
+
}
|
d11/best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c0accfca79d24f0f23becd2f4334c46b3007a7eba03fc87ca348253309844999
|
| 3 |
+
size 3678914
|
d11/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cb811f3cff7f54797b8caa53a3316cab0f01b7e3dd730e85e1dc28d250ace333
|
| 3 |
+
size 3680471
|
d11/training_summary.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"family": "mps",
|
| 3 |
+
"distance": 11,
|
| 4 |
+
"p_errors": [
|
| 5 |
+
0.001,
|
| 6 |
+
0.003,
|
| 7 |
+
0.005
|
| 8 |
+
],
|
| 9 |
+
"epochs": 10,
|
| 10 |
+
"best_val_loss": 0.5914782265027364,
|
| 11 |
+
"history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1,
|
| 14 |
+
"train_loss": 0.6484808355990628,
|
| 15 |
+
"val_loss": 0.6087731907844544,
|
| 16 |
+
"val_acc": 0.64852
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"epoch": 2,
|
| 20 |
+
"train_loss": 0.6031991806144045,
|
| 21 |
+
"val_loss": 0.6040539802296956,
|
| 22 |
+
"val_acc": 0.6555333333333333
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"epoch": 3,
|
| 26 |
+
"train_loss": 0.5991920113218876,
|
| 27 |
+
"val_loss": 0.6001383352724711,
|
| 28 |
+
"val_acc": 0.6533333333333333
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"epoch": 4,
|
| 32 |
+
"train_loss": 0.595755222846918,
|
| 33 |
+
"val_loss": 0.597707236328125,
|
| 34 |
+
"val_acc": 0.6544533333333333
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"epoch": 5,
|
| 38 |
+
"train_loss": 0.5927219207773711,
|
| 39 |
+
"val_loss": 0.5949280035654704,
|
| 40 |
+
"val_acc": 0.65108
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"epoch": 6,
|
| 44 |
+
"train_loss": 0.5904195594278971,
|
| 45 |
+
"val_loss": 0.5931575341796875,
|
| 46 |
+
"val_acc": 0.6528133333333334
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"epoch": 7,
|
| 50 |
+
"train_loss": 0.5887521731048718,
|
| 51 |
+
"val_loss": 0.5921786656888326,
|
| 52 |
+
"val_acc": 0.6525066666666667
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"epoch": 8,
|
| 56 |
+
"train_loss": 0.58778055483199,
|
| 57 |
+
"val_loss": 0.591686326789856,
|
| 58 |
+
"val_acc": 0.65304
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"epoch": 9,
|
| 62 |
+
"train_loss": 0.5872493131316335,
|
| 63 |
+
"val_loss": 0.5915090257453919,
|
| 64 |
+
"val_acc": 0.6531066666666666
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"epoch": 10,
|
| 68 |
+
"train_loss": 0.587051412791202,
|
| 69 |
+
"val_loss": 0.5914782265027364,
|
| 70 |
+
"val_acc": 0.6535066666666667
|
| 71 |
+
}
|
| 72 |
+
],
|
| 73 |
+
"elapsed_s": 2171.176953315735
|
| 74 |
+
}
|
d7/best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e9801ebfcf98d42cbd161dfa11af2b0adb2ae582606b0dd88eca4f6866b4e6db
|
| 3 |
+
size 3678914
|
d7/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:50a5d3ab75fdf60038e122e288db455f266f44fd423eb4dbe633fb2699089fff
|
| 3 |
+
size 3680471
|
d7/training_summary.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"family": "mps",
|
| 3 |
+
"distance": 7,
|
| 4 |
+
"p_errors": [
|
| 5 |
+
0.001,
|
| 6 |
+
0.003,
|
| 7 |
+
0.005
|
| 8 |
+
],
|
| 9 |
+
"epochs": 10,
|
| 10 |
+
"best_val_loss": 0.4831204416529338,
|
| 11 |
+
"history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1,
|
| 14 |
+
"train_loss": 0.5607715682975033,
|
| 15 |
+
"val_loss": 0.5172046812121074,
|
| 16 |
+
"val_acc": 0.72836
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"epoch": 2,
|
| 20 |
+
"train_loss": 0.5119922722542076,
|
| 21 |
+
"val_loss": 0.5059984067726135,
|
| 22 |
+
"val_acc": 0.7311333333333333
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"epoch": 3,
|
| 26 |
+
"train_loss": 0.5024265777868974,
|
| 27 |
+
"val_loss": 0.5000054170099895,
|
| 28 |
+
"val_acc": 0.73356
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"epoch": 4,
|
| 32 |
+
"train_loss": 0.49566674374162106,
|
| 33 |
+
"val_loss": 0.4932661373837789,
|
| 34 |
+
"val_acc": 0.73652
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"epoch": 5,
|
| 38 |
+
"train_loss": 0.4903293320657496,
|
| 39 |
+
"val_loss": 0.48893825971285504,
|
| 40 |
+
"val_acc": 0.7387333333333334
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"epoch": 6,
|
| 44 |
+
"train_loss": 0.4865752147396824,
|
| 45 |
+
"val_loss": 0.4870646811612447,
|
| 46 |
+
"val_acc": 0.7389866666666667
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"epoch": 7,
|
| 50 |
+
"train_loss": 0.48379588486286634,
|
| 51 |
+
"val_loss": 0.4845165158335368,
|
| 52 |
+
"val_acc": 0.7413733333333333
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"epoch": 8,
|
| 56 |
+
"train_loss": 0.4821662684557731,
|
| 57 |
+
"val_loss": 0.4835508217271169,
|
| 58 |
+
"val_acc": 0.74152
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"epoch": 9,
|
| 62 |
+
"train_loss": 0.48123680889230025,
|
| 63 |
+
"val_loss": 0.48317052680651346,
|
| 64 |
+
"val_acc": 0.74204
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"epoch": 10,
|
| 68 |
+
"train_loss": 0.48091617532596254,
|
| 69 |
+
"val_loss": 0.4831204416529338,
|
| 70 |
+
"val_acc": 0.7419466666666666
|
| 71 |
+
}
|
| 72 |
+
],
|
| 73 |
+
"elapsed_s": 898.6921174526215
|
| 74 |
+
}
|
d9/best.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5e9a8cf11b31b70eb770d00fd7dd83f8f361f56f717f1a0d532c987e8d703929
|
| 3 |
+
size 3678914
|
d9/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fe511b78ff35b013022be3f7aff1bc3b5308866934bf9528379eac97c4ec8e3d
|
| 3 |
+
size 3680471
|
d9/training_summary.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"family": "mps",
|
| 3 |
+
"distance": 9,
|
| 4 |
+
"p_errors": [
|
| 5 |
+
0.001,
|
| 6 |
+
0.003,
|
| 7 |
+
0.005
|
| 8 |
+
],
|
| 9 |
+
"epochs": 10,
|
| 10 |
+
"best_val_loss": 0.5482157255172729,
|
| 11 |
+
"history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1,
|
| 14 |
+
"train_loss": 0.6155825373612789,
|
| 15 |
+
"val_loss": 0.5750814655431111,
|
| 16 |
+
"val_acc": 0.68864
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"epoch": 2,
|
| 20 |
+
"train_loss": 0.5688975947440298,
|
| 21 |
+
"val_loss": 0.5643576537450155,
|
| 22 |
+
"val_acc": 0.6886266666666667
|
| 23 |
+
},
|
| 24 |
+
{
|
| 25 |
+
"epoch": 3,
|
| 26 |
+
"train_loss": 0.5614777644311336,
|
| 27 |
+
"val_loss": 0.5588828429603576,
|
| 28 |
+
"val_acc": 0.6888666666666666
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"epoch": 4,
|
| 32 |
+
"train_loss": 0.5560373221681829,
|
| 33 |
+
"val_loss": 0.5546226082547505,
|
| 34 |
+
"val_acc": 0.68824
|
| 35 |
+
},
|
| 36 |
+
{
|
| 37 |
+
"epoch": 5,
|
| 38 |
+
"train_loss": 0.552139919251559,
|
| 39 |
+
"val_loss": 0.5518873160171509,
|
| 40 |
+
"val_acc": 0.6889466666666667
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"epoch": 6,
|
| 44 |
+
"train_loss": 0.5495574191679035,
|
| 45 |
+
"val_loss": 0.5500225927098592,
|
| 46 |
+
"val_acc": 0.6896666666666667
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"epoch": 7,
|
| 50 |
+
"train_loss": 0.5475853756727252,
|
| 51 |
+
"val_loss": 0.5492112227694194,
|
| 52 |
+
"val_acc": 0.6893333333333334
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"epoch": 8,
|
| 56 |
+
"train_loss": 0.5464580642117952,
|
| 57 |
+
"val_loss": 0.5484689228375753,
|
| 58 |
+
"val_acc": 0.69088
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"epoch": 9,
|
| 62 |
+
"train_loss": 0.5458091868042527,
|
| 63 |
+
"val_loss": 0.5482660090955098,
|
| 64 |
+
"val_acc": 0.69076
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"epoch": 10,
|
| 68 |
+
"train_loss": 0.5455730257134689,
|
| 69 |
+
"val_loss": 0.5482157255172729,
|
| 70 |
+
"val_acc": 0.6909333333333333
|
| 71 |
+
}
|
| 72 |
+
],
|
| 73 |
+
"elapsed_s": 1465.5698182582855
|
| 74 |
+
}
|