rename monarch_*->blockdiag_* (they were single block-diagonal factors), publish genuine 2-factor Monarch runs, re-quantize int8 with Einsum weight fix
Browse files- .gitattributes +4 -0
- README.md +104 -94
- blockdiag_8/config.json +36 -0
- blockdiag_8/g_best +3 -0
- blockdiag_8/g_best.onnx +3 -0
- blockdiag_8/g_best_fp32.onnx +3 -0
- blockdiag_fc/config.json +35 -0
- blockdiag_fc/g_best +3 -0
- blockdiag_fc/g_best.onnx +3 -0
- blockdiag_fc/g_best_fp32.onnx +3 -0
- blockdiag_full/config.json +36 -0
- blockdiag_full/g_best +3 -0
- blockdiag_full/g_best.onnx +3 -0
- blockdiag_full/g_best_fp32.onnx +3 -0
- monarch_8/config.json +4 -3
- monarch_8/g_best +2 -2
- monarch_8/g_best.onnx +2 -2
- monarch_8/g_best_fp32.onnx +2 -2
- monarch_fc/config.json +2 -2
- monarch_fc/g_best +2 -2
- monarch_fc/g_best.onnx +2 -2
- monarch_fc/g_best_fp32.onnx +2 -2
- monarch_full/config.json +4 -3
- monarch_full/g_best +2 -2
- monarch_full/g_best.onnx +2 -2
- monarch_full/g_best_fp32.onnx +2 -2
- wide_blockdiag/config.json +36 -0
- wide_blockdiag/g_best +3 -0
- wide_blockdiag/g_best.onnx +3 -0
- wide_blockdiag/g_best_fp32.onnx +3 -0
- wide_monarch/config.json +4 -3
- wide_monarch/g_best +2 -2
- wide_monarch/g_best.onnx +2 -2
- wide_monarch/g_best_fp32.onnx +2 -2
.gitattributes
CHANGED
|
@@ -42,3 +42,7 @@ monarch_8/g_best filter=lfs diff=lfs merge=lfs -text
|
|
| 42 |
monarch_fc/g_best filter=lfs diff=lfs merge=lfs -text
|
| 43 |
monarch_full/g_best filter=lfs diff=lfs merge=lfs -text
|
| 44 |
wide_monarch/g_best filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
monarch_fc/g_best filter=lfs diff=lfs merge=lfs -text
|
| 43 |
monarch_full/g_best filter=lfs diff=lfs merge=lfs -text
|
| 44 |
wide_monarch/g_best filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
blockdiag_8/g_best filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
blockdiag_full/g_best filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
blockdiag_fc/g_best filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
wide_blockdiag/g_best filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -7,6 +7,7 @@ tags:
|
|
| 7 |
- speech-denoising
|
| 8 |
- nsnet2
|
| 9 |
- butterfly
|
|
|
|
| 10 |
- monarch
|
| 11 |
- structured-matrices
|
| 12 |
- onnx
|
|
@@ -22,96 +23,115 @@ metrics:
|
|
| 22 |
|
| 23 |
Best-PESQ checkpoints from the
|
| 24 |
[eco8-neaixt](https://github.com/LarocheC/eco8-neaixt) compression sweep:
|
| 25 |
-
NSNet2 speech enhancement with the FC and GRU layers swappable between
|
| 26 |
-
|
| 27 |
-
[Monarch](https://arxiv.org/abs/2204.00595) factorizations.
|
| 28 |
|
| 29 |
Trained on
|
| 30 |
-
[VoiceBank-DEMAND-16k](https://huggingface.co/datasets/JacobLinCool/VoiceBank-DEMAND-16k)
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
|
| 45 |
-
|
|
| 46 |
-
| `
|
| 47 |
-
| `
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
## Key findings
|
| 57 |
|
| 58 |
-
- **
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
- **
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
|
|
|
| 74 |
|
| 75 |
## Layout
|
| 76 |
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
the run was trained with.
|
| 80 |
|
| 81 |
```
|
| 82 |
-
baseline/
|
| 83 |
-
monarch_fc/
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
butterfly_ortho/{g_best,g_best_fp32.onnx,g_best.onnx,config.json}
|
| 89 |
-
butterfly_2blocks/{g_best,g_best_fp32.onnx,g_best.onnx,config.json}
|
| 90 |
-
wide_monarch/{g_best,g_best_fp32.onnx,g_best.onnx,config.json}
|
| 91 |
```
|
| 92 |
|
| 93 |
## Loading
|
| 94 |
|
| 95 |
-
### PyTorch checkpoint
|
| 96 |
-
|
| 97 |
-
Clone the repo first (model classes live there):
|
| 98 |
-
|
| 99 |
```bash
|
| 100 |
-
git clone https://github.com/LarocheC/eco8-neaixt
|
| 101 |
-
cd eco8-neaixt
|
| 102 |
-
uv sync
|
| 103 |
```
|
| 104 |
|
| 105 |
-
Then:
|
| 106 |
-
|
| 107 |
```python
|
| 108 |
import json, torch
|
| 109 |
from huggingface_hub import hf_hub_download
|
| 110 |
-
from env import AttrDict
|
| 111 |
-
from
|
| 112 |
|
| 113 |
REPO = "claroche1/sparse-nsnet2-checkpoints"
|
| 114 |
-
RUN = "
|
| 115 |
|
| 116 |
cfg = json.load(open(hf_hub_download(REPO, f"{RUN}/config.json")))
|
| 117 |
ckpt = torch.load(hf_hub_download(REPO, f"{RUN}/g_best"),
|
|
@@ -121,53 +141,43 @@ model = NSNet2(AttrDict(cfg)).cuda().eval()
|
|
| 121 |
model.load_state_dict(ckpt["generator"])
|
| 122 |
```
|
| 123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
### ONNX (FP32 or int8)
|
| 125 |
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
is in `inference_onnx.py` in the source repo.
|
| 130 |
|
| 131 |
```python
|
| 132 |
import onnxruntime as ort
|
| 133 |
from huggingface_hub import hf_hub_download
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
# FP32:
|
| 139 |
-
fp32_path = hf_hub_download(REPO, f"{RUN}/g_best_fp32.onnx")
|
| 140 |
-
fp32_sess = ort.InferenceSession(fp32_path, providers=["CPUExecutionProvider"])
|
| 141 |
-
|
| 142 |
-
# int8 (deployment):
|
| 143 |
-
int8_path = hf_hub_download(REPO, f"{RUN}/g_best.onnx")
|
| 144 |
-
int8_sess = ort.InferenceSession(int8_path, providers=["CPUExecutionProvider"])
|
| 145 |
```
|
| 146 |
|
| 147 |
-
End-to-end inference example with PESQ measurement is in `inference_onnx.py`
|
| 148 |
-
in the source repo.
|
| 149 |
-
|
| 150 |
## Citations
|
| 151 |
|
| 152 |
```bibtex
|
| 153 |
@inproceedings{braun2021nsnet2,
|
| 154 |
title={Towards efficient models for real-time deep noise suppression},
|
| 155 |
author={Braun, Sebastian and Tashev, Ivan},
|
| 156 |
-
booktitle={ICASSP},
|
| 157 |
-
year={2021}
|
| 158 |
}
|
| 159 |
-
|
| 160 |
@inproceedings{dao2019butterfly,
|
| 161 |
title={Learning fast algorithms for linear transforms using butterfly factorizations},
|
| 162 |
author={Dao, Tri and Gu, Albert and Eichhorn, Matthew and Rudra, Atri and R{\'e}, Christopher},
|
| 163 |
-
booktitle={ICML},
|
| 164 |
-
year={2019}
|
| 165 |
}
|
| 166 |
-
|
| 167 |
@inproceedings{dao2022monarch,
|
| 168 |
title={Monarch: Expressive structured matrices for efficient and accurate training},
|
| 169 |
author={Dao, Tri and Chen, Beidi and Sohoni, Nimit S and Desai, Arjun and Poli, Michael and Grogan, Jessica and Liu, Alexander and Rao, Aniruddh and Rudra, Atri and R{\'e}, Christopher},
|
| 170 |
-
booktitle={ICML},
|
| 171 |
-
year={2022}
|
| 172 |
}
|
| 173 |
```
|
|
|
|
| 7 |
- speech-denoising
|
| 8 |
- nsnet2
|
| 9 |
- butterfly
|
| 10 |
+
- block-diagonal
|
| 11 |
- monarch
|
| 12 |
- structured-matrices
|
| 13 |
- onnx
|
|
|
|
| 23 |
|
| 24 |
Best-PESQ checkpoints from the
|
| 25 |
[eco8-neaixt](https://github.com/LarocheC/eco8-neaixt) compression sweep:
|
| 26 |
+
NSNet2 speech enhancement with the FC and GRU layers swappable between dense,
|
| 27 |
+
[Butterfly](https://arxiv.org/abs/1903.05895), **block-diagonal**, and genuine
|
| 28 |
+
two-factor [Monarch](https://arxiv.org/abs/2204.00595) factorizations.
|
| 29 |
|
| 30 |
Trained on
|
| 31 |
+
[VoiceBank-DEMAND-16k](https://huggingface.co/datasets/JacobLinCool/VoiceBank-DEMAND-16k),
|
| 32 |
+
n\_fft 512, batch 256. PESQ on the full 824-utterance test split.
|
| 33 |
+
|
| 34 |
+
## ⚠️ Two corrections you should read before quoting these numbers
|
| 35 |
+
|
| 36 |
+
**1. Naming: the old `monarch_*` runs were NOT Monarch.** They are a *single
|
| 37 |
+
block-diagonal factor* (one block-diagonal matrix per projection, **zero
|
| 38 |
+
cross-block mixing**). A genuine [Monarch](https://arxiv.org/abs/2204.00595) is a
|
| 39 |
+
**two-factor** construction (block-diagonal × permutation × block-diagonal) with
|
| 40 |
+
full cross-channel mixing. The old runs have therefore been **renamed to
|
| 41 |
+
`blockdiag_*`**, and the `monarch_*` names now hold *genuinely* Monarch models:
|
| 42 |
+
|
| 43 |
+
| old name (was mislabeled) | now | `monarch_*` today |
|
| 44 |
+
| ------------------------- | ------------------ | ------------------------ |
|
| 45 |
+
| `monarch_8` | → `blockdiag_8` | genuine 2-factor Monarch |
|
| 46 |
+
| `monarch_full` | → `blockdiag_full` | genuine 2-factor Monarch |
|
| 47 |
+
| `monarch_fc` | → `blockdiag_fc` | genuine 2-factor Monarch |
|
| 48 |
+
| `wide_monarch` | → `wide_blockdiag` | genuine 2-factor Monarch |
|
| 49 |
+
|
| 50 |
+
If you previously pinned `monarch_8`, you now get a **different (genuinely
|
| 51 |
+
Monarch) model** — the block-diagonal one you had is at `blockdiag_8`.
|
| 52 |
+
|
| 53 |
+
**2. int8: the previously published int8 ONNX never quantized the structured
|
| 54 |
+
weights.** The structure-preserving export lowers each block-diagonal / Monarch
|
| 55 |
+
matmul to an `Einsum`, and onnxruntime ships no QDQ handler for `Einsum` — so
|
| 56 |
+
`quantize_static` skipped those nodes entirely. Only activations and the residual
|
| 57 |
+
dense MatMuls were int8; the **dominant weights stayed FP32**. Every int8 file
|
| 58 |
+
here has been **re-quantized with the structured weights genuinely int8** (fixed
|
| 59 |
+
in `nsnet2/qdq_einsum_quantizer.py` upstream). The "int8 is loss-free" property
|
| 60 |
+
does survive the fix — but it had never actually been tested before it.
|
| 61 |
+
|
| 62 |
+
## Results (int8 = genuinely quantized weights)
|
| 63 |
+
|
| 64 |
+
### Genuine two-factor Monarch
|
| 65 |
+
|
| 66 |
+
| run | params | FP32 PESQ | int8 PESQ | Δ (FP32→int8) |
|
| 67 |
+
| -------------- | -----: | --------: | --------: | ------------: |
|
| 68 |
+
| `wide_monarch` | 3.64 M | **2.881** | **2.884** | −0.003 |
|
| 69 |
+
| `monarch_8` | 0.55 M | 2.861 | 2.856 | +0.005 |
|
| 70 |
+
| `monarch_fc` | 2.38 M | 2.843 | 2.831 | +0.012 |
|
| 71 |
+
| `monarch_full` | 1.10 M | 2.838 | 2.846 | −0.009 |
|
| 72 |
+
|
| 73 |
+
### Block-diagonal, dense, butterfly
|
| 74 |
+
|
| 75 |
+
| run | params | FP32 PESQ | int8 PESQ | Δ (FP32→int8) |
|
| 76 |
+
| ------------------- | -----: | --------: | --------: | ------------: |
|
| 77 |
+
| `wide_blockdiag` | 2.36 M | 2.864 | 2.847 | +0.016 |
|
| 78 |
+
| `baseline` (dense) | 2.78 M | 2.845 | 2.833 | +0.012 |
|
| 79 |
+
| `blockdiag_8` | 0.36 M | 2.832 | 2.825 | +0.007 |
|
| 80 |
+
| `blockdiag_full` | 0.70 M | 2.827 | 2.843 | −0.016 |
|
| 81 |
+
| `blockdiag_fc` | 2.14 M | 2.805 | 2.787 | +0.018 |
|
| 82 |
+
| `butterfly_2blocks` | 0.36 M | 2.805 | 2.202 | +0.602 |
|
| 83 |
+
| `butterfly_fc` | 1.99 M | 2.799 | 2.494 | +0.306 |
|
| 84 |
+
| `butterfly_ortho` | 0.19 M | 2.780 | 2.577 | +0.203 |
|
| 85 |
+
| `butterfly_full` | 0.19 M | 2.772 | 2.128 | +0.644 |
|
| 86 |
|
| 87 |
## Key findings
|
| 88 |
|
| 89 |
+
- **Quality saturates — this model class is architecture-bound, not
|
| 90 |
+
capacity-bound.** Across three structure families and ~10× parameters, every
|
| 91 |
+
configuration lands in a **2.83–2.88** band, non-monotonically: the 0.55 M
|
| 92 |
+
`monarch_8` (2.861) beats both the 1.10 M `monarch_full` and the 2.38 M
|
| 93 |
+
`monarch_fc`. Going 7× from `monarch_8` to `wide_monarch` buys +0.020 PESQ.
|
| 94 |
+
NSNet2 predicts a magnitude mask and reuses the noisy phase, which caps PESQ
|
| 95 |
+
regardless of how expressive the mask predictor is. **The dense model was
|
| 96 |
+
already over-parameterized** — which is exactly why aggressive structuring is
|
| 97 |
+
nearly free. For deployment, take the smallest (`blockdiag_8` / `monarch_8`).
|
| 98 |
+
- **Genuine Monarch beats block-diagonal, but marginally** (+0.011…+0.038 FP32 at
|
| 99 |
+
matched `nblocks`) and it costs parameters — its second factor makes it larger.
|
| 100 |
+
Consistent with the saturation above.
|
| 101 |
+
- **Block-diagonal and Monarch quantize loss-free** (|Δ| ≤ 0.018 and ≤ 0.012),
|
| 102 |
+
*with the weights genuinely quantized*.
|
| 103 |
+
- **Butterfly with randn init degrades catastrophically under int8** (Δ up to
|
| 104 |
+
0.644). Use `init=ortho`: `butterfly_ortho` loses 0.203 to int8 vs 0.644 for
|
| 105 |
+
`butterfly_full` — same architecture, same data, only the init differs.
|
| 106 |
|
| 107 |
## Layout
|
| 108 |
|
| 109 |
+
One subdirectory per run: the generator (`g_best`), the streaming FP32 ONNX, the
|
| 110 |
+
static int8 ONNX, and the exact `config.json` it was trained with.
|
|
|
|
| 111 |
|
| 112 |
```
|
| 113 |
+
baseline/ blockdiag_8/ monarch_8/ butterfly_fc/
|
| 114 |
+
blockdiag_fc/ blockdiag_full/ monarch_fc/ butterfly_full/
|
| 115 |
+
wide_blockdiag/ monarch_full/ wide_monarch/ butterfly_ortho/
|
| 116 |
+
butterfly_2blocks/
|
| 117 |
+
|
| 118 |
+
each: {g_best, g_best_fp32.onnx, g_best.onnx, config.json}
|
|
|
|
|
|
|
|
|
|
| 119 |
```
|
| 120 |
|
| 121 |
## Loading
|
| 122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
```bash
|
| 124 |
+
git clone https://github.com/LarocheC/eco8-neaixt && cd eco8-neaixt && uv sync
|
|
|
|
|
|
|
| 125 |
```
|
| 126 |
|
|
|
|
|
|
|
| 127 |
```python
|
| 128 |
import json, torch
|
| 129 |
from huggingface_hub import hf_hub_download
|
| 130 |
+
from common.env import AttrDict
|
| 131 |
+
from nsnet2.model import NSNet2
|
| 132 |
|
| 133 |
REPO = "claroche1/sparse-nsnet2-checkpoints"
|
| 134 |
+
RUN = "monarch_8" # or any run from the tables
|
| 135 |
|
| 136 |
cfg = json.load(open(hf_hub_download(REPO, f"{RUN}/config.json")))
|
| 137 |
ckpt = torch.load(hf_hub_download(REPO, f"{RUN}/g_best"),
|
|
|
|
| 141 |
model.load_state_dict(ckpt["generator"])
|
| 142 |
```
|
| 143 |
|
| 144 |
+
> **Note for the `monarch_*` runs:** their GRU was trained through gru-qat's fused
|
| 145 |
+
> Monarch Triton kernel (`"gru": {"kind": "triton_monarch"}`), so their
|
| 146 |
+
> `state_dict` uses gru-qat module names. Loading them requires
|
| 147 |
+
> **`gru-qat >= 0.5.0`** and **`torch-structured >= 1.3.0`** (both pulled in by
|
| 148 |
+
> `uv sync`). The `blockdiag_*` / `butterfly_*` / `baseline` runs use the native
|
| 149 |
+
> path and have no such requirement.
|
| 150 |
+
|
| 151 |
### ONNX (FP32 or int8)
|
| 152 |
|
| 153 |
+
Streaming-shape: one frame `(B, n_freq)` plus GRU state `(num_layers, B, hidden)`
|
| 154 |
+
per session call, threaded across frames. End-to-end pipeline in
|
| 155 |
+
`nsnet2/inference_onnx.py`.
|
|
|
|
| 156 |
|
| 157 |
```python
|
| 158 |
import onnxruntime as ort
|
| 159 |
from huggingface_hub import hf_hub_download
|
| 160 |
+
REPO, RUN = "claroche1/sparse-nsnet2-checkpoints", "monarch_8"
|
| 161 |
+
sess = ort.InferenceSession(hf_hub_download(REPO, f"{RUN}/g_best.onnx"),
|
| 162 |
+
providers=["CPUExecutionProvider"]) # int8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 163 |
```
|
| 164 |
|
|
|
|
|
|
|
|
|
|
| 165 |
## Citations
|
| 166 |
|
| 167 |
```bibtex
|
| 168 |
@inproceedings{braun2021nsnet2,
|
| 169 |
title={Towards efficient models for real-time deep noise suppression},
|
| 170 |
author={Braun, Sebastian and Tashev, Ivan},
|
| 171 |
+
booktitle={ICASSP}, year={2021}
|
|
|
|
| 172 |
}
|
|
|
|
| 173 |
@inproceedings{dao2019butterfly,
|
| 174 |
title={Learning fast algorithms for linear transforms using butterfly factorizations},
|
| 175 |
author={Dao, Tri and Gu, Albert and Eichhorn, Matthew and Rudra, Atri and R{\'e}, Christopher},
|
| 176 |
+
booktitle={ICML}, year={2019}
|
|
|
|
| 177 |
}
|
|
|
|
| 178 |
@inproceedings{dao2022monarch,
|
| 179 |
title={Monarch: Expressive structured matrices for efficient and accurate training},
|
| 180 |
author={Dao, Tri and Chen, Beidi and Sohoni, Nimit S and Desai, Arjun and Poli, Michael and Grogan, Jessica and Liu, Alexander and Rao, Aniruddh and Rudra, Atri and R{\'e}, Christopher},
|
| 181 |
+
booktitle={ICML}, year={2022}
|
|
|
|
| 182 |
}
|
| 183 |
```
|
blockdiag_8/config.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"num_gpus": 0,
|
| 3 |
+
"batch_size": 256,
|
| 4 |
+
"learning_rate": 0.003,
|
| 5 |
+
"adam_b1": 0.8,
|
| 6 |
+
"adam_b2": 0.99,
|
| 7 |
+
"lr_decay": 0.99,
|
| 8 |
+
"seed": 1234,
|
| 9 |
+
"hidden_dim": 400,
|
| 10 |
+
"fc_hidden_dim": 600,
|
| 11 |
+
"num_gru_layers": 2,
|
| 12 |
+
"compress_factor": 0.3,
|
| 13 |
+
"linear": {
|
| 14 |
+
"kind": "blockdiag",
|
| 15 |
+
"nblocks": 8
|
| 16 |
+
},
|
| 17 |
+
"gru": {
|
| 18 |
+
"kind": "blockdiag",
|
| 19 |
+
"nblocks": 8
|
| 20 |
+
},
|
| 21 |
+
"sampling_rate": 16000,
|
| 22 |
+
"segment_size": 32000,
|
| 23 |
+
"n_fft": 512,
|
| 24 |
+
"hop_size": 256,
|
| 25 |
+
"win_size": 512,
|
| 26 |
+
"num_workers": 8,
|
| 27 |
+
"quant": {
|
| 28 |
+
"enabled": false,
|
| 29 |
+
"n_calib_utts": 200
|
| 30 |
+
},
|
| 31 |
+
"dist_config": {
|
| 32 |
+
"dist_backend": "nccl",
|
| 33 |
+
"dist_url": "tcp://localhost:54321",
|
| 34 |
+
"world_size": 1
|
| 35 |
+
}
|
| 36 |
+
}
|
blockdiag_8/g_best
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c7416829373b77c1a0fd9ef7a33681131abe33cda0bdf95e8ddc585610a7995b
|
| 3 |
+
size 1423570
|
blockdiag_8/g_best.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b179824dcf6eb6e04bb1d685b58ada46be7af398cc8a31cc16edadbd83ce1e86
|
| 3 |
+
size 432971
|
blockdiag_8/g_best_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ceaa0e96895fcfab277c8b0409fe0d9299a6f60f52bbd8fa6cc5e454b6e1ce73
|
| 3 |
+
size 1442161
|
blockdiag_fc/config.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"num_gpus": 0,
|
| 3 |
+
"batch_size": 256,
|
| 4 |
+
"learning_rate": 0.003,
|
| 5 |
+
"adam_b1": 0.8,
|
| 6 |
+
"adam_b2": 0.99,
|
| 7 |
+
"lr_decay": 0.99,
|
| 8 |
+
"seed": 1234,
|
| 9 |
+
"hidden_dim": 400,
|
| 10 |
+
"fc_hidden_dim": 600,
|
| 11 |
+
"num_gru_layers": 2,
|
| 12 |
+
"compress_factor": 0.3,
|
| 13 |
+
"linear": {
|
| 14 |
+
"kind": "blockdiag",
|
| 15 |
+
"nblocks": 4
|
| 16 |
+
},
|
| 17 |
+
"gru": {
|
| 18 |
+
"kind": "gru"
|
| 19 |
+
},
|
| 20 |
+
"sampling_rate": 16000,
|
| 21 |
+
"segment_size": 32000,
|
| 22 |
+
"n_fft": 512,
|
| 23 |
+
"hop_size": 256,
|
| 24 |
+
"win_size": 512,
|
| 25 |
+
"num_workers": 8,
|
| 26 |
+
"quant": {
|
| 27 |
+
"enabled": false,
|
| 28 |
+
"n_calib_utts": 200
|
| 29 |
+
},
|
| 30 |
+
"dist_config": {
|
| 31 |
+
"dist_backend": "nccl",
|
| 32 |
+
"dist_url": "tcp://localhost:54321",
|
| 33 |
+
"world_size": 1
|
| 34 |
+
}
|
| 35 |
+
}
|
blockdiag_fc/g_best
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cde0e25bebea3d5d713afaaf10f5e52eabaeb5ef552de45abc1cb216957e1848
|
| 3 |
+
size 8570351
|
blockdiag_fc/g_best.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:264bb5059e5359cd15b6f22fd1990fbfc537df6040be62ba9d8829ef5540b4b2
|
| 3 |
+
size 2252655
|
blockdiag_fc/g_best_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f105f2a4d8d2974d9c7da1264c58404e311ed5538fd7ea14c688cdb9610eb5f6
|
| 3 |
+
size 8578184
|
blockdiag_full/config.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"num_gpus": 0,
|
| 3 |
+
"batch_size": 256,
|
| 4 |
+
"learning_rate": 0.003,
|
| 5 |
+
"adam_b1": 0.8,
|
| 6 |
+
"adam_b2": 0.99,
|
| 7 |
+
"lr_decay": 0.99,
|
| 8 |
+
"seed": 1234,
|
| 9 |
+
"hidden_dim": 400,
|
| 10 |
+
"fc_hidden_dim": 600,
|
| 11 |
+
"num_gru_layers": 2,
|
| 12 |
+
"compress_factor": 0.3,
|
| 13 |
+
"linear": {
|
| 14 |
+
"kind": "blockdiag",
|
| 15 |
+
"nblocks": 4
|
| 16 |
+
},
|
| 17 |
+
"gru": {
|
| 18 |
+
"kind": "blockdiag",
|
| 19 |
+
"nblocks": 4
|
| 20 |
+
},
|
| 21 |
+
"sampling_rate": 16000,
|
| 22 |
+
"segment_size": 32000,
|
| 23 |
+
"n_fft": 512,
|
| 24 |
+
"hop_size": 256,
|
| 25 |
+
"win_size": 512,
|
| 26 |
+
"num_workers": 8,
|
| 27 |
+
"quant": {
|
| 28 |
+
"enabled": false,
|
| 29 |
+
"n_calib_utts": 200
|
| 30 |
+
},
|
| 31 |
+
"dist_config": {
|
| 32 |
+
"dist_backend": "nccl",
|
| 33 |
+
"dist_url": "tcp://localhost:54321",
|
| 34 |
+
"world_size": 1
|
| 35 |
+
}
|
| 36 |
+
}
|
blockdiag_full/g_best
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c9a34fe8ba46ad1c41ac474010eca2a8bbaadf30d334901af81146b93cc95ba7
|
| 3 |
+
size 2811538
|
blockdiag_full/g_best.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a666da906fccb95d99b452cc996a4ea446712aa4ccf73eda94408488832e866e
|
| 3 |
+
size 784123
|
blockdiag_full/g_best_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c49a7c8648612dc6db1acadbd2077db15f6f7197bea47d4c175d0b3cfc2b6894
|
| 3 |
+
size 2830166
|
monarch_8/config.json
CHANGED
|
@@ -15,8 +15,9 @@
|
|
| 15 |
"nblocks": 8
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
-
"kind": "
|
| 19 |
-
"nblocks": 8
|
|
|
|
| 20 |
},
|
| 21 |
"sampling_rate": 16000,
|
| 22 |
"segment_size": 32000,
|
|
@@ -33,4 +34,4 @@
|
|
| 33 |
"dist_url": "tcp://localhost:54321",
|
| 34 |
"world_size": 1
|
| 35 |
}
|
| 36 |
-
}
|
|
|
|
| 15 |
"nblocks": 8
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
+
"kind": "triton_monarch",
|
| 19 |
+
"nblocks": 8,
|
| 20 |
+
"struct_input": true
|
| 21 |
},
|
| 22 |
"sampling_rate": 16000,
|
| 23 |
"segment_size": 32000,
|
|
|
|
| 34 |
"dist_url": "tcp://localhost:54321",
|
| 35 |
"world_size": 1
|
| 36 |
}
|
| 37 |
+
}
|
monarch_8/g_best
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bb927b19edc8fc94da1b4cedc52dc1a75b56ab13272b9cd3d0101b5f1ab28353
|
| 3 |
+
size 2273489
|
monarch_8/g_best.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:37174cc619ecbb73e2526b4ec853d8fc97c6dea0969bf0c1d1358ac5d5409b61
|
| 3 |
+
size 677653
|
monarch_8/g_best_fp32.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:94d37f1c9ba921dde8b06ef8f4a20cbcce37ac5ab71f9a94c68f058563e51b3f
|
| 3 |
+
size 2245092
|
monarch_fc/config.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
| 15 |
"nblocks": 4
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
-
"kind": "
|
| 19 |
},
|
| 20 |
"sampling_rate": 16000,
|
| 21 |
"segment_size": 32000,
|
|
@@ -32,4 +32,4 @@
|
|
| 32 |
"dist_url": "tcp://localhost:54321",
|
| 33 |
"world_size": 1
|
| 34 |
}
|
| 35 |
-
}
|
|
|
|
| 15 |
"nblocks": 4
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
+
"kind": "triton"
|
| 19 |
},
|
| 20 |
"sampling_rate": 16000,
|
| 21 |
"segment_size": 32000,
|
|
|
|
| 32 |
"dist_url": "tcp://localhost:54321",
|
| 33 |
"world_size": 1
|
| 34 |
}
|
| 35 |
+
}
|
monarch_fc/g_best
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3be49fc25099bd925764cf2d7449417f96ca885ae0e2f90d92c3c2eb6eb7627e
|
| 3 |
+
size 9555373
|
monarch_fc/g_best.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0f03d3c0cb744e0d4b2f2ce55f813e21ca6b0be59446d21a548e472433b58ef2
|
| 3 |
+
size 2510827
|
monarch_fc/g_best_fp32.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:82d9cac18e0cdffa56caa906b62d0daa7e4fe852b589b5af89712849a6fd81e8
|
| 3 |
+
size 9537912
|
monarch_full/config.json
CHANGED
|
@@ -15,8 +15,9 @@
|
|
| 15 |
"nblocks": 4
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
-
"kind": "
|
| 19 |
-
"nblocks": 4
|
|
|
|
| 20 |
},
|
| 21 |
"sampling_rate": 16000,
|
| 22 |
"segment_size": 32000,
|
|
@@ -33,4 +34,4 @@
|
|
| 33 |
"dist_url": "tcp://localhost:54321",
|
| 34 |
"world_size": 1
|
| 35 |
}
|
| 36 |
-
}
|
|
|
|
| 15 |
"nblocks": 4
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
+
"kind": "triton_monarch",
|
| 19 |
+
"nblocks": 4,
|
| 20 |
+
"struct_input": true
|
| 21 |
},
|
| 22 |
"sampling_rate": 16000,
|
| 23 |
"segment_size": 32000,
|
|
|
|
| 34 |
"dist_url": "tcp://localhost:54321",
|
| 35 |
"world_size": 1
|
| 36 |
}
|
| 37 |
+
}
|
monarch_full/g_best
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d595a5f69cf0c40f92cae8e23a545fcc70c0c0cad1305a4dbff02cbe2e09a1f1
|
| 3 |
+
size 4454353
|
monarch_full/g_best.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f06d4607c1ffa9bd9d056cfef88c06afba7e09bdb06c95beb3ea165bb402d0e2
|
| 3 |
+
size 1229091
|
monarch_full/g_best_fp32.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7df98544d085c0c99157bcf707704fc8542b07f737dcd6c6a333cf76e51bbd8e
|
| 3 |
+
size 4425852
|
wide_blockdiag/config.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"num_gpus": 0,
|
| 3 |
+
"batch_size": 256,
|
| 4 |
+
"learning_rate": 0.003,
|
| 5 |
+
"adam_b1": 0.8,
|
| 6 |
+
"adam_b2": 0.99,
|
| 7 |
+
"lr_decay": 0.99,
|
| 8 |
+
"seed": 1234,
|
| 9 |
+
"hidden_dim": 768,
|
| 10 |
+
"fc_hidden_dim": 1024,
|
| 11 |
+
"num_gru_layers": 2,
|
| 12 |
+
"compress_factor": 0.3,
|
| 13 |
+
"linear": {
|
| 14 |
+
"kind": "blockdiag",
|
| 15 |
+
"nblocks": 4
|
| 16 |
+
},
|
| 17 |
+
"gru": {
|
| 18 |
+
"kind": "blockdiag",
|
| 19 |
+
"nblocks": 4
|
| 20 |
+
},
|
| 21 |
+
"sampling_rate": 16000,
|
| 22 |
+
"segment_size": 32000,
|
| 23 |
+
"n_fft": 512,
|
| 24 |
+
"hop_size": 256,
|
| 25 |
+
"win_size": 512,
|
| 26 |
+
"num_workers": 8,
|
| 27 |
+
"quant": {
|
| 28 |
+
"enabled": false,
|
| 29 |
+
"n_calib_utts": 200
|
| 30 |
+
},
|
| 31 |
+
"dist_config": {
|
| 32 |
+
"dist_backend": "nccl",
|
| 33 |
+
"dist_url": "tcp://localhost:54321",
|
| 34 |
+
"world_size": 1
|
| 35 |
+
}
|
| 36 |
+
}
|
wide_blockdiag/g_best
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e9ad0dda8f30258d8a9dfa42fd900c4e418bc97bdc2a2ed9a6aae709ab6542d7
|
| 3 |
+
size 9432786
|
wide_blockdiag/g_best.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4b0bf6ce3a0cd7650f647dcff733cbd47aa9c8645f1bf04cc82088b5ada975cb
|
| 3 |
+
size 2446614
|
wide_blockdiag/g_best_fp32.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:993a4691187c94e50c5e2de7a52a29113529cc0a487b8d98d989212594a7c9fa
|
| 3 |
+
size 9451516
|
wide_monarch/config.json
CHANGED
|
@@ -15,8 +15,9 @@
|
|
| 15 |
"nblocks": 4
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
-
"kind": "
|
| 19 |
-
"nblocks": 4
|
|
|
|
| 20 |
},
|
| 21 |
"sampling_rate": 16000,
|
| 22 |
"segment_size": 32000,
|
|
@@ -33,4 +34,4 @@
|
|
| 33 |
"dist_url": "tcp://localhost:54321",
|
| 34 |
"world_size": 1
|
| 35 |
}
|
| 36 |
-
}
|
|
|
|
| 15 |
"nblocks": 4
|
| 16 |
},
|
| 17 |
"gru": {
|
| 18 |
+
"kind": "triton_monarch",
|
| 19 |
+
"nblocks": 4,
|
| 20 |
+
"struct_input": true
|
| 21 |
},
|
| 22 |
"sampling_rate": 16000,
|
| 23 |
"segment_size": 32000,
|
|
|
|
| 34 |
"dist_url": "tcp://localhost:54321",
|
| 35 |
"world_size": 1
|
| 36 |
}
|
| 37 |
+
}
|
wide_monarch/g_best
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7cd2e11239d38449de74f26abb802772a467de331939ed2dfa8a3248edcef490
|
| 3 |
+
size 14602065
|
wide_monarch/g_best.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:86d3c6cd8df5c77ed14eee425d6d25c716728450e8ea6a5c1e2b16cca6c9014c
|
| 3 |
+
size 3776607
|
wide_monarch/g_best_fp32.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:656b4c78c4c032e4913fb04604cb56492cf15cb934bd5a92e5182349f4854937
|
| 3 |
+
size 14573504
|