diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000000000000000000000000000000000000..9a2367233389654a8e216549240421e7647439e4 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,26 @@ +cff-version: 1.2.0 +message: "If you use this code or the released weights, please cite the paper." +title: "JIT-MPE: Just-in-Time Multi-Pitch Estimation under Output Deadlines" +type: software +authors: + - family-names: Kobayashi + given-names: Yoshiyuki + affiliation: Frieve +repository-code: "https://github.com/Frieve-A/jit-mpe" +license: MIT +keywords: + - multi-pitch estimation + - real-time + - causal model + - music information retrieval +preferred-citation: + type: article + title: "JIT-MPE: Just-in-Time Multi-Pitch Estimation under Output Deadlines" + authors: + - family-names: Kobayashi + given-names: Yoshiyuki + affiliation: Frieve + year: 2026 + date-published: "2026-10-23" + doi: "10.48550/arXiv.2610.33113" + url: "https://arxiv.org/abs/2610.33113" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..75a0bdb9253eafe0e39cbc1e602c5d20eed58489 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Yoshiyuki Kobayashi (Frieve-A) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5b8dca76a2a93d983745392331a3e7c476bc83da --- /dev/null +++ b/README.md @@ -0,0 +1,195 @@ +--- +license: mit +library_name: pytorch +tags: + - audio + - music + - multi-pitch-estimation + - music-information-retrieval + - causal + - arxiv:2610.33113 +--- + +# JIT-MPE and CRNN comparison checkpoints + +Trained weights for the paper [JIT-MPE: Just-in-Time Multi-Pitch Estimation under Output Deadlines](https://arxiv.org/abs/2610.33113) +(Yoshiyuki Kobayashi, Frieve, 2026). +[Source code](https://github.com/Frieve-A/jit-mpe/tree/08bbd5acbb223962895f847a86c2d47a36179896) · +[Paper page](https://huggingface.co/papers/2610.33113) · [License](LICENSE) · [Data and software credits](THIRD_PARTY.md) + +JIT-MPE is a small causal model (about 86k parameters) that estimates which of the 88 piano pitches are sounding in +mixed-ensemble audio. It processes the audio in 20 ms frames and can revise a frame until its output deadline +(for example, 50 ms). On one CPU thread it takes about 2.4 ms per frame. + +This repository contains the same weights as the GitHub release, unchanged (no conversion or retraining). It also +includes the comparison CRNN models that the author trained for the paper. The external systems compared in the +paper are not included; get them from their own authors. + +## Models + +| System ID | Model | Parameters | Type | +|---|---|---:|---| +| `S` | JIT-MPE | 86,425 | Causal, five delay heads | +| `A0` | Harmonic CRNN | 85,813 | Causal, one head | +| `A1d` | Dilated CRNN | 95,767 | Causal, one head | +| `B1` | Plain CRNN | 95,767 | Causal, one head | +| `A0-bi` | Harmonic BiCRNN | 83,729 | Bidirectional, full-length input only | +| `A1d-bi` | Dilated BiCRNN | 93,936 | Bidirectional, full-length input only | +| `B1-bi` | Plain BiCRNN | 93,936 | Bidirectional, full-length input only | + +Each system was trained with seeds **1, 3 and 5**. These are three separate runs, not an ensemble; the paper reports +their mean. Parameter counts exclude the auxiliary onset head, which is used only in training (it is still stored +in the checkpoints). + +## Files + +```text +weights/-s.safetensors # model weights (21 files) +weights/-s.calibration.json # decision thresholds for each model (21 files) +weights/head-selection-s.json # which delay head to use for each deadline (one per seed) +configs/.json # training settings (not Transformers configs) +requirements-paper.txt # Python environment used for the paper +release-manifest.json # size and SHA-256 of every file, source revision, paper metadata +LICENSE +THIRD_PARTY.md +CITATION.cff +``` + +To run one model you need three files: its `.safetensors`, its `.calibration.json` and the `head-selection` file for +the same seed. Keep them in the same folder. The model code is in the GitHub package, so `AutoModel` and the +Transformers `pipeline` cannot load these weights. + +## Usage + +Requirements: Python 3.10 or later and PyTorch for your platform. Install the source code at the matching revision +and the Hugging Face Hub client: + +```bash +git clone https://github.com/Frieve-A/jit-mpe.git +cd jit-mpe +git checkout 08bbd5acbb223962895f847a86c2d47a36179896 +python -m pip install -e . +python -m pip install huggingface_hub==0.34.3 +``` + +Python example (downloads only the three files for `S`, seed 1): + +```python +from pathlib import Path +import torch +from huggingface_hub import snapshot_download +from jit_mpe import load +from jit_mpe.infer import estimate, read_audio, write + +name, seed = "S", 1 +snapshot = snapshot_download( + repo_id="Frieve-A/jit-mpe", + revision="main", # replace with a full Hub commit hash to pin a published snapshot + allow_patterns=[ + f"weights/{name}-s{seed}.safetensors", + f"weights/{name}-s{seed}.calibration.json", + f"weights/head-selection-s{seed}.json", + ], +) +system = load(name, seed, weights_dir=Path(snapshot) / "weights", device="cpu") +torch.set_num_threads(1) +with torch.inference_mode(): + times, frequencies = estimate( + read_audio("song.wav"), system, + clock="scheduled_stale_hold", deadline_ms=50, + ) +write("song.csv", times, frequencies) +``` + +Command-line example (replace `HUB_COMMIT` with a commit hash of this repository, or use `main`): + +```bash +hf download Frieve-A/jit-mpe weights/S-s1.safetensors weights/S-s1.calibration.json weights/head-selection-s1.json --revision HUB_COMMIT --local-dir hub-model +python -m jit_mpe.infer song.wav --weights hub-model/weights --system S --seed 1 --clock scheduled_stale_hold --deadline 50 --out song.csv +``` + +### Input and output + +- **Input:** any audio file. `read_audio` mixes it down to mono and resamples it to 44.1 kHz. +- **Output:** one row every 10 ms. A CSV row has the time in seconds, followed by the frequencies (Hz) of the pitches + that are sounding. An NPZ file has `times [Q]` and `frequencies [Q, 88]`; absent pitches are 0. +- **Pitch range:** MIDI 21–108 (A0–C8), with a fine frequency estimate for each active pitch. + +### Deadlines + +A deadline D means that the answer for time q must be ready by q + D. With `scheduled_stale_hold`, the output for q +is the most recent frame that is ready by then, so there is always an answer, but it may be slightly old. + +`S` has five delay heads that look 0, 20, 40, 80 and 160 ms ahead. For each deadline, the head-selection file says +which head to use; for 50 ms it is the 40 ms head. To process a whole file without a deadline, omit `clock` and +`deadline_ms` (Python) or `--clock` and `--deadline` (CLI). The `-bi` models only work this way, because they use +future audio. + +`estimate` reads a complete file and reproduces what a real-time system would have output by each deadline. It is +not a live audio callback; for frame-by-frame streaming with `model.step`, see `bench/cpu.py` in the source code. + +## Training + +The models were trained on GuitarSet, Slakh2100-redux, MusicNet, Schubert Winterreise, Cantoria, Dagstuhl ChoirSet, +vocadito and Groove MIDI. Versions, links and licenses are listed in [THIRD_PARTY.md](THIRD_PARTY.md). This repository +does not include any training audio, annotations, prepared features or external models. + +Training has two stages: 10,400 steps at learning rate 0.002, then 3,000 steps at 0.0005 with an added onset loss +(batch size 16, 192-frame clips, 16 warm-up frames). Afterwards, the decision thresholds are fitted on a calibration +split and the delay heads are selected on a development set. The GitHub README gives the full commands for data +preparation, training and evaluation. `requirements-paper.txt` records the environment used for the paper +(Python 3.12, PyTorch 2.5.1); a CUDA build is not needed for CPU inference. + +## Results + +The numbers below are copied from Table 4 of the paper ([arXiv v1](https://arxiv.org/html/2610.33113v1)); they were +not re-measured for this upload. They are F1 scores (%) for JIT-MPE with `scheduled_stale_hold` at a 50 ms deadline, +averaged per recording and over the three seeds, with pitches rounded to semitones. + +| Held-out set | F1 (%) | +|---|---:| +| AAM | 82.6 | +| ChoraleBricks | 78.9 | +| BSED-real | 64.5 | +| BSED-synthetic | 77.0 | + +Notes: + +- The paper also reports 50-cent (continuous f0) scores and full-length scores. These use different settings and + should not be compared directly with the table above. +- ChoraleBricks is annotated with continuous f0; the semitone score above is given only so that all sets use the + same metric. +- The BSED recordings were not used in training, but some of the pieces also appear in the MusicNet training data. + +See the paper for development-set results, comparisons with other systems, confidence intervals and scoring details. + +## Intended use and limitations + +Intended for research on frame-level pitch estimation, pitch-display prototypes and experiments with output +deadlines. The models do not identify instruments and do not produce note events (onsets/offsets). + +- The paper does not evaluate note-level transcription, singing voice or real popular-music recordings. +- Performance on other instruments or recording conditions has not been tested. +- The reported CPU timings depend on the hardware and do not include audio I/O, scheduling or display latency. +- Retraining with the released code will not give bit-identical weights, because these weights were trained before + deterministic training was added. The public vocadito split also differs from the one used in the paper (see the + determinism section of the GitHub README). To reproduce the paper's inference results, use these checkpoints. + +## License and citation + +The code and these weights are released by the author under the [MIT license](LICENSE). This does not cover the +training datasets or external models, which keep their own licenses. In particular, the Schubert Winterreise +recordings have their own conditions, described in the original dataset release. + +```bibtex +@misc{kobayashi2026jitmpe, + title = {{JIT-MPE}: Just-in-Time Multi-Pitch Estimation under Output Deadlines}, + author = {Kobayashi, Yoshiyuki}, + year = {2026}, + eprint = {2610.33113}, + archivePrefix = {arXiv}, + primaryClass = {cs.SD}, + doi = {10.48550/arXiv.2610.33113}, + url = {https://arxiv.org/abs/2610.33113} +} +``` diff --git a/THIRD_PARTY.md b/THIRD_PARTY.md new file mode 100644 index 0000000000000000000000000000000000000000..4ee13cbd70dc8a6eea2718be7da29da9236f405c --- /dev/null +++ b/THIRD_PARTY.md @@ -0,0 +1,59 @@ +# Third-party data and software + +This repository contains no third-party audio, annotations or model code. The datasets and external systems below are +obtained from their distributors by the user; the scripts here only read them from paths given on the command line. +Each dataset and system is subject to its own licence and terms. The code and the trained weights in this repository are +released under the MIT licence (see `LICENSE`). + +## Training data + +All seven model families are trained on clips from the following datasets. Clip extraction and the train/validation +fold assignment are seeded rules in `jit_mpe/data/packs.py`; no list of files is distributed. + +| Dataset | Source | Licence (as stated by the distributor) | +|---|---|---| +| GuitarSet v1.1.0 | https://zenodo.org/records/3371780 | CC BY 4.0 | +| Slakh2100-redux | https://zenodo.org/records/4599666 | CC BY 4.0 (rendered from Lakh MIDI v0.1, CC BY 4.0) | +| MusicNet | https://zenodo.org/records/5120004 | CC BY 4.0 | +| Schubert Winterreise Dataset v2.1 | https://zenodo.org/records/10839767 | CC BY 3.0; individual recordings carry further terms (see its README) | +| Cantoria v1.0.0 | https://zenodo.org/records/5878677 | CC BY 4.0 | +| Dagstuhl ChoirSet v1.2.3 | https://zenodo.org/records/4618287 | CC BY 4.0 | +| vocadito v3 | https://zenodo.org/records/5578807 | CC BY 4.0 | +| Groove MIDI Dataset v1.0.0 | https://magenta.tensorflow.org/datasets/groove | CC BY 4.0 | + +## Evaluation data (evaluation only) + +| Dataset | Source | Licence (as stated by the distributor) | +|---|---|---| +| URMP, 16 kHz release prepared for YourMT3 (`urmp_yourmt3_16k.tar.gz`, MD5 `4f539c71678a77ba34f6dfca41072102`) | https://zenodo.org/records/10009959 (original dataset: https://labsites.rochester.edu/air/projects/URMP.html) | CC BY 4.0 (record); the original URMP states no licence | +| Bach10-mf0-synth v1.0.0 | https://zenodo.org/records/1481156 | CC BY-NC 4.0 | +| MusicNet (development recordings) | https://zenodo.org/records/5120004 | CC BY 4.0 | +| TRIOS | https://zenodo.org/records/6797837 | CC BY-NC-SA 2.0 UK | +| PHENICX-Anechoic | https://zenodo.org/records/840025 | annotations CC BY-NC-SA 3.0, non-commercial use, no redistribution | +| AAM v1.1.0 | https://zenodo.org/records/5794629 | CC BY 4.0 | +| ChoraleBricks v1.1.0 | https://zenodo.org/records/20849469 | CC BY 4.0 | +| BSED v1.0.0 | https://zenodo.org/records/20344500 | CC BY-NC-SA 4.0 | + +## External systems (compared in the paper) + +The scripts in `external/` fetch each system from its upstream source at the pinned revision and run it with the small +runtime adaptations listed in `external/README.md`; the upstream files are not edited and nothing is vendored. Their +extra Python requirements are listed in `requirements-external.txt`. + +| System | Upstream | Revision | Licence of the code | +|---|---|---|---| +| SS-MPE v0.1.0, v0.2.0 | https://github.com/cwitkowitz/ss-mpe | releases v0.1.0, v0.2.0 | MIT | +| Timbre-Trap | https://github.com/sony/timbre-trap (weights: `models/tt-orig.pt` of the Hugging Face Space `cwitkowitz/timbre-trap`) | code `7afe7e9b327929c099baeccd4b21973aedb94d9b`, Space `84fbd38582435c863a2d65197a75edd794888f19` | MIT (code); weights: see upstream | +| Basic Pitch | https://github.com/spotify/basic-pitch | `fa5997af0a8210982619003269994a1be25eddf3` | Apache 2.0 | +| WP-DRCNN, WP-PUnet XL | https://github.com/christofw/multipitch_architectures | `7e9c1bcb83e311c370cdfffe599d645d1ebae640` | CC0 1.0 | +| YourMT3+ | Hugging Face Space `mimbres/YourMT3` (code and checkpoint; project repository https://github.com/mimbres/YourMT3) | Space `5e66c1ea173a8186e0d20432b841d3180cc015b5` | see upstream | +| MuScriptor | https://github.com/muscriptor/muscriptor (weights: Hugging Face `MuScriptor/muscriptor-large`, gated; requires CUDA) | code `7f213afecf23bd6a1b8672aa223690ee9807cefb`, weights `8809fdfbed2affa7ade94a7059e746e3880720e7` | MIT (code); weights: see upstream | + +The checkpoints of the external systems are distributed by their authors under their own terms. + +## Python dependencies + +PyTorch (BSD-3-Clause), NumPy (BSD-3-Clause), SciPy (BSD-3-Clause), safetensors (Apache 2.0), soundfile (BSD-3-Clause), +soxr (LGPL-2.1), numba (BSD-2-Clause), mido (MIT), pretty_midi (MIT), PyYAML (MIT), matplotlib (PSF-based); +for `external/`, the packages in `requirements-external.txt` under their own licences. They are installed from PyPI +and are not included in this repository. diff --git a/configs/A0-bi.json b/configs/A0-bi.json new file mode 100644 index 0000000000000000000000000000000000000000..7d7920f4d4b940964418fb1fca42775fba5914fa --- /dev/null +++ b/configs/A0-bi.json @@ -0,0 +1,10 @@ +{ + "system": "A0-bi", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/configs/A0.json b/configs/A0.json new file mode 100644 index 0000000000000000000000000000000000000000..57365853731922fd0b4d59746aac373843c9ebf6 --- /dev/null +++ b/configs/A0.json @@ -0,0 +1,10 @@ +{ + "system": "A0", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/configs/A1d-bi.json b/configs/A1d-bi.json new file mode 100644 index 0000000000000000000000000000000000000000..d1b4a87b2660f6d3635d8774e1638384da4f0924 --- /dev/null +++ b/configs/A1d-bi.json @@ -0,0 +1,10 @@ +{ + "system": "A1d-bi", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/configs/A1d.json b/configs/A1d.json new file mode 100644 index 0000000000000000000000000000000000000000..c2912e68059dc720ff9f2480434fec48488d86ec --- /dev/null +++ b/configs/A1d.json @@ -0,0 +1,10 @@ +{ + "system": "A1d", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/configs/B1-bi.json b/configs/B1-bi.json new file mode 100644 index 0000000000000000000000000000000000000000..c1fa742e0095a763db3a654d2f3eb1252a7f1aee --- /dev/null +++ b/configs/B1-bi.json @@ -0,0 +1,10 @@ +{ + "system": "B1-bi", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/configs/B1.json b/configs/B1.json new file mode 100644 index 0000000000000000000000000000000000000000..62b85fe0a18bb6fa527965ad75413ec157533695 --- /dev/null +++ b/configs/B1.json @@ -0,0 +1,10 @@ +{ + "system": "B1", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/configs/S.json b/configs/S.json new file mode 100644 index 0000000000000000000000000000000000000000..994c8e9dd2aea117955afeefb41b1fd449612002 --- /dev/null +++ b/configs/S.json @@ -0,0 +1,10 @@ +{ + "system": "S", + "packs": ["train", "vocal"], + "weights": {"groove": 0.3}, + "B": 16, + "T": 192, + "burn": 16, + "stage1": {"steps": 10400, "lr": 0.002}, + "stage2": {"steps": 3000, "lr": 0.0005, "onset_weight": 0.18, "onset_pos_weight": 10.0, "onset_J": 2.0} +} diff --git a/release-manifest.json b/release-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..8dc8eefa7080573b1a83420cc77da0fae5dd35c9 --- /dev/null +++ b/release-manifest.json @@ -0,0 +1,265 @@ +{ + "files": { + "CITATION.cff": { + "sha256": "ae958c86ed5a5c21d1b34b63922797343fac5d6fdc6b4c54ccaca249ffc7631f", + "size": 779 + }, + "LICENSE": { + "sha256": "f286d8a2d9ddde223d3aba5c6a689e662d65616d52aa619a81ea86c8f0f52753", + "size": 1087 + }, + "README.md": { + "sha256": "7739fd3adba5a0bbfa4567b03ef8849db841605b3fe1594a7c808642ed464410", + "size": 9159 + }, + "THIRD_PARTY.md": { + "sha256": "bb0b57a698d572aad6483dede2665646da8d6aa98759af10f97517ea7b02a87a", + "size": 4428 + }, + "configs/A0-bi.json": { + "sha256": "21d55933d03798feca6b8e06908c447043d631960c9ae0e8d51a9f547492f316", + "size": 272 + }, + "configs/A0.json": { + "sha256": "9c5e64f378c7253a787b8f3fe92e6e9d5ba1738c2b1a50efd53186d6b938f9f9", + "size": 269 + }, + "configs/A1d-bi.json": { + "sha256": "392ad2669f35c3d5223a8185bb7a57e8082639da55198439d4e80378e0f447cf", + "size": 273 + }, + "configs/A1d.json": { + "sha256": "de37630394c9e55c53af31e1a956a9655e758463ac56a3efc4cded322ca576b2", + "size": 270 + }, + "configs/B1-bi.json": { + "sha256": "e802cb7e3efd3021bf3b94fe8c649a785003c56b2ae074d9b225618cd39629a3", + "size": 272 + }, + "configs/B1.json": { + "sha256": "2c023f0a6f4e399d4517586cae643f1be2baf3d83c5f64a6c248a31984aaca0f", + "size": 269 + }, + "configs/S.json": { + "sha256": "d81bcc68b98c41343a0c74cf6e78853d7578aa06e2d59338fadef7a40a790134", + "size": 268 + }, + "requirements-paper.txt": { + "sha256": "9682df96feb43bdd8edf22acbcf4c524a6016117678fcc1f8104cdc13ac9e3bb", + "size": 283 + }, + "weights/A0-bi-s1.calibration.json": { + "sha256": "82136273e46cb4e90b8a2f58d1b1d736fafb061c0991c251ebe098cc5eb9b72a", + "size": 174 + }, + "weights/A0-bi-s1.safetensors": { + "sha256": "789ddc5ebdbcced0347362358947d7d82fb380260795077935ca362b71350a4a", + "size": 423916 + }, + "weights/A0-bi-s3.calibration.json": { + "sha256": "b64b59dc593a691a8471928985e506fef48f83e93d7ce9d31689b5a63e115746", + "size": 176 + }, + "weights/A0-bi-s3.safetensors": { + "sha256": "3ec02530f3b619e113381ae5e15345905c3781854c46a9d81af5c39f696d561b", + "size": 423916 + }, + "weights/A0-bi-s5.calibration.json": { + "sha256": "e1f345a5886bd7bbf17d2a259c2c95e4fe9c070e59a2a2abef4c90e584e5f64e", + "size": 172 + }, + "weights/A0-bi-s5.safetensors": { + "sha256": "a0e64cb05b82a44616be6b2145904992e980bda4f47fe279c6e22cb08abeb52c", + "size": 423916 + }, + "weights/A0-s1.calibration.json": { + "sha256": "bf6c962288b6611f981f244fa5ce0f20c1b2fb4785633ae8313b728b4e528eb2", + "size": 172 + }, + "weights/A0-s1.safetensors": { + "sha256": "9e961901424bdae2547c8233c45dacc6815d186b3996752cc6a81ee25523cf9c", + "size": 421332 + }, + "weights/A0-s3.calibration.json": { + "sha256": "6f673230122cbf569c58b5d00cb42f78c39bdf44654bcee534e21eca4a5d97d9", + "size": 172 + }, + "weights/A0-s3.safetensors": { + "sha256": "721cfe88b75c165019eaad7b8e32fe4ecf519288ee5414f928fef0b9580a2264", + "size": 421332 + }, + "weights/A0-s5.calibration.json": { + "sha256": "23639b759a495e99aae6d9586fb991f63fdf0a04c39aeebbdfde41b67c426b49", + "size": 175 + }, + "weights/A0-s5.safetensors": { + "sha256": "3a43537ca8d892962d652686a345f044d250943b145cc3a6a9c94215d4370c4f", + "size": 421332 + }, + "weights/A1d-bi-s1.calibration.json": { + "sha256": "3a6e1d9a6c9dec3200ee89dfb307b6cf24b526a08c62e657d128281bcf2fa3f6", + "size": 174 + }, + "weights/A1d-bi-s1.safetensors": { + "sha256": "2e75301f5bcde4b56f6ec5cac1bd24a8b3be14766ec2db208a87b4e4d039618b", + "size": 438416 + }, + "weights/A1d-bi-s3.calibration.json": { + "sha256": "893cdf343885137640909e6fae3298048ecc8898e3a25906521ec24ed5198e59", + "size": 175 + }, + "weights/A1d-bi-s3.safetensors": { + "sha256": "b11ade2a2e2a353679cd151b2877fc3d4d5e606bfaf4b495a90c5936db42f331", + "size": 438416 + }, + "weights/A1d-bi-s5.calibration.json": { + "sha256": "aea27416f57b07da4a87673ab0c81490143a9d200f56e8d846e5b5e4f32f4c08", + "size": 174 + }, + "weights/A1d-bi-s5.safetensors": { + "sha256": "3116157db00241c643eaabf3dbb8b1a1577164e36c473fe4d6b201903827eab3", + "size": 438416 + }, + "weights/A1d-s1.calibration.json": { + "sha256": "189e07bdc5cdcfe8fbc10cf365694dcb2b9666e474462746c5e97cbcc2f34112", + "size": 173 + }, + "weights/A1d-s1.safetensors": { + "sha256": "26e33c5cdafe3da406ecbceb8d8b4524111ea01e285a2a641237e01e205b6c58", + "size": 440116 + }, + "weights/A1d-s3.calibration.json": { + "sha256": "97e5be31cf1463b0b595eabc11e6dbe35deee2ea5fa0fbc7ac8321f75880b8e0", + "size": 176 + }, + "weights/A1d-s3.safetensors": { + "sha256": "92bd775de51254d50a2fcfa000a552209a98f853a56031e02db0c0275fb7d095", + "size": 440116 + }, + "weights/A1d-s5.calibration.json": { + "sha256": "fb326a9e74fa605c24af20027798f9233a4fa73cc7f2c8ab220f201522f53780", + "size": 174 + }, + "weights/A1d-s5.safetensors": { + "sha256": "0b611800820c0285bdbe10c4707cf9c7983882c4d993cdef8dbe9ae43d71248c", + "size": 440116 + }, + "weights/B1-bi-s1.calibration.json": { + "sha256": "ce1ba35cd60e68d22a68d8c2a1b0ee63e6772a5f44eaa8d31f5d5c3db0dae3e8", + "size": 174 + }, + "weights/B1-bi-s1.safetensors": { + "sha256": "4bb19091a42e768472ffad775f49c36b49d709b7429fae645fbf297792be7ffb", + "size": 438416 + }, + "weights/B1-bi-s3.calibration.json": { + "sha256": "89b2912de82c44b285ba29be6e35dfc9126d487e52d4ac4d20cb352736bb7f4b", + "size": 175 + }, + "weights/B1-bi-s3.safetensors": { + "sha256": "7842a11b23c186b1b46ffb7cb1a2b0d550203dc302c055e41dfc25a1276e77a0", + "size": 438416 + }, + "weights/B1-bi-s5.calibration.json": { + "sha256": "a1c70164734821a414de6dbf74bfce8e44fa5f86a3f4817577fafc41a1c4810f", + "size": 176 + }, + "weights/B1-bi-s5.safetensors": { + "sha256": "bbf4b8e9868ab45085372c86e0fa8632a5934b4c0a5b5e00074201bf6134c0ff", + "size": 438416 + }, + "weights/B1-s1.calibration.json": { + "sha256": "b394627c3cb8eb0b794bea241d7a6cd99e6a79c7e864b5aee7af89a1015dd51b", + "size": 176 + }, + "weights/B1-s1.safetensors": { + "sha256": "15aeff68451495100137de148a282b25d6ba6b7f84da0148ed2fab3b3d04217d", + "size": 440116 + }, + "weights/B1-s3.calibration.json": { + "sha256": "ac0330f4aace73e8ea8668ba8647be4838b85a0b486048b1a6461bbf6710837e", + "size": 175 + }, + "weights/B1-s3.safetensors": { + "sha256": "797dcf0da012e1d3eba2fb976a98defa38398738d211c2621a6d83528ba768c5", + "size": 440116 + }, + "weights/B1-s5.calibration.json": { + "sha256": "584aba136a0d5e4d8a82a6d7bc0816aa02fa36286c22079ea4c32f2a1aa2030f", + "size": 174 + }, + "weights/B1-s5.safetensors": { + "sha256": "375c7edad20162d8e9c58be822263cdb1532b94dad1c4ba880e4af32397acf1b", + "size": 440116 + }, + "weights/S-s1.calibration.json": { + "sha256": "13375e7be57c5e7fe26e22fb6829daa101fdc013645a9bc1fdade95bd069b749", + "size": 379 + }, + "weights/S-s1.safetensors": { + "sha256": "54c053610496ccc757551f718de97f70438b7c81044e71bba6e3e1be52cf4ae8", + "size": 423780 + }, + "weights/S-s3.calibration.json": { + "sha256": "6d27ff8160b6feba7770881304ab5c567e169b39ac7593528299be6282341311", + "size": 379 + }, + "weights/S-s3.safetensors": { + "sha256": "5cda819af6ce132d866ad8ad8671af857fe1ea2b322f3a7f810e86495fbbfbea", + "size": 423780 + }, + "weights/S-s5.calibration.json": { + "sha256": "3ea4bd8bbf4b7a2308ce10446f66fdc6a8bbfd01809b9ac4b813befe8bc03b30", + "size": 374 + }, + "weights/S-s5.safetensors": { + "sha256": "6b5cebf336ea9f5ed7d8f0184c3ecdba0869f65a35fa91d26edd84bec11f9e77", + "size": 423780 + }, + "weights/head-selection-s1.json": { + "sha256": "ddaf44d54ec17c502ba10a12e1ab16e691741f504c3d628a4e139e6add67cee9", + "size": 2238 + }, + "weights/head-selection-s3.json": { + "sha256": "62eb6c8ade5594aecc5d1c5885f62907234ebaef26fe8d91d5fb17416ff4618b", + "size": 2238 + }, + "weights/head-selection-s5.json": { + "sha256": "698cecb09e94c40176477f3380557b77f67eaae2457b2d9ea6c2ac599de01bc3", + "size": 2238 + } + }, + "license": "mit", + "paper": { + "affiliation": "Frieve", + "arxiv_id": "2610.33113", + "arxiv_version": "v1", + "authors": [ + "Yoshiyuki Kobayashi" + ], + "doi": "10.48550/arXiv.2610.33113", + "published": "2026-10-23", + "title": "JIT-MPE: Just-in-Time Multi-Pitch Estimation under Output Deadlines", + "url": "https://arxiv.org/abs/2610.33113" + }, + "repo_id": "Frieve-A/jit-mpe", + "schema_version": 1, + "seeds": [ + 1, + 3, + 5 + ], + "source": { + "repository": "https://github.com/Frieve-A/jit-mpe", + "revision": "08bbd5acbb223962895f847a86c2d47a36179896" + }, + "systems": [ + "S", + "A0", + "A1d", + "B1", + "A0-bi", + "A1d-bi", + "B1-bi" + ] +} diff --git a/requirements-paper.txt b/requirements-paper.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9fc602005f5e9a2598db5b94a5facb636357c3c --- /dev/null +++ b/requirements-paper.txt @@ -0,0 +1,13 @@ +# Versions used to produce the results in the paper (Python 3.12, CUDA 12.4 build of torch). +torch==2.5.1 +numpy==2.2.4 +scipy==1.15.2 +safetensors==0.5.3 +soundfile==0.13.1 +soxr==0.5.0.post1 +numba==0.61.2 +mido==1.3.3 +pretty_midi==0.2.11.post0 +pyyaml==6.0.2 +matplotlib==3.10.1 +pytest>=8 diff --git a/weights/A0-bi-s1.calibration.json b/weights/A0-bi-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..bc798f3f88f523fa0e1e4e0e4b49f9c4bd888a5e --- /dev/null +++ b/weights/A0-bi-s1.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.35 + ], + "registers": { + "21-47": [ + 0.45 + ], + "48-71": [ + 0.3 + ], + "72-91": [ + 0.5 + ] + } +} diff --git a/weights/A0-bi-s1.safetensors b/weights/A0-bi-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..2175b8e197dabefae3cfc38cc35065169882e110 --- /dev/null +++ b/weights/A0-bi-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789ddc5ebdbcced0347362358947d7d82fb380260795077935ca362b71350a4a +size 423916 diff --git a/weights/A0-bi-s3.calibration.json b/weights/A0-bi-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..ac6a430fd758d5e5d853cdbe4810868885fd96ac --- /dev/null +++ b/weights/A0-bi-s3.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.35 + ], + "registers": { + "21-47": [ + 0.65 + ], + "48-71": [ + 0.35 + ], + "72-91": [ + 0.85 + ] + } +} diff --git a/weights/A0-bi-s3.safetensors b/weights/A0-bi-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..cc01aea50aa2a9abb36f9648493423cb5134f518 --- /dev/null +++ b/weights/A0-bi-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ec02530f3b619e113381ae5e15345905c3781854c46a9d81af5c39f696d561b +size 423916 diff --git a/weights/A0-bi-s5.calibration.json b/weights/A0-bi-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..b6a7f4a79387ed2201e0cf2f3b904cef9d70e8ed --- /dev/null +++ b/weights/A0-bi-s5.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.4 + ], + "registers": { + "21-47": [ + 0.4 + ], + "48-71": [ + 0.4 + ], + "72-91": [ + 0.9 + ] + } +} diff --git a/weights/A0-bi-s5.safetensors b/weights/A0-bi-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..12232c9dad46b956994b70d7042e104c331d891b --- /dev/null +++ b/weights/A0-bi-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0e64cb05b82a44616be6b2145904992e980bda4f47fe279c6e22cb08abeb52c +size 423916 diff --git a/weights/A0-s1.calibration.json b/weights/A0-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..b60e09590f661c2dd2e56caf35352e37c1cc35f5 --- /dev/null +++ b/weights/A0-s1.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.3 + ], + "registers": { + "21-47": [ + 0.3 + ], + "48-71": [ + 0.3 + ], + "72-91": [ + 0.5 + ] + } +} diff --git a/weights/A0-s1.safetensors b/weights/A0-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..cdc49279440a40eb302f776ae402324566c6a8fb --- /dev/null +++ b/weights/A0-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e961901424bdae2547c8233c45dacc6815d186b3996752cc6a81ee25523cf9c +size 421332 diff --git a/weights/A0-s3.calibration.json b/weights/A0-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..329c578a0446b1d4afaa23211a975354c390f3a3 --- /dev/null +++ b/weights/A0-s3.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.4 + ], + "registers": { + "21-47": [ + 0.5 + ], + "48-71": [ + 0.4 + ], + "72-91": [ + 0.6 + ] + } +} diff --git a/weights/A0-s3.safetensors b/weights/A0-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..3e8b9a462051e56ef0a8c22d231a59fbbbc02770 --- /dev/null +++ b/weights/A0-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:721cfe88b75c165019eaad7b8e32fe4ecf519288ee5414f928fef0b9580a2264 +size 421332 diff --git a/weights/A0-s5.calibration.json b/weights/A0-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..df69e7d303ac79f1ab870ebb2bd44bddb164d90b --- /dev/null +++ b/weights/A0-s5.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.45 + ], + "registers": { + "21-47": [ + 0.6 + ], + "48-71": [ + 0.45 + ], + "72-91": [ + 0.55 + ] + } +} diff --git a/weights/A0-s5.safetensors b/weights/A0-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..4a7c7a53b77a5d14c5044d97a6dc179858041498 --- /dev/null +++ b/weights/A0-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a43537ca8d892962d652686a345f044d250943b145cc3a6a9c94215d4370c4f +size 421332 diff --git a/weights/A1d-bi-s1.calibration.json b/weights/A1d-bi-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..e4fb406d347d5d4728e1ed0671a48652fba9ddfa --- /dev/null +++ b/weights/A1d-bi-s1.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.4 + ], + "registers": { + "21-47": [ + 0.45 + ], + "48-71": [ + 0.3 + ], + "72-91": [ + 0.75 + ] + } +} diff --git a/weights/A1d-bi-s1.safetensors b/weights/A1d-bi-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..891aab51ec9f7e0a39065feb3fd643c8a26c0e8e --- /dev/null +++ b/weights/A1d-bi-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e75301f5bcde4b56f6ec5cac1bd24a8b3be14766ec2db208a87b4e4d039618b +size 438416 diff --git a/weights/A1d-bi-s3.calibration.json b/weights/A1d-bi-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..0f45d17ea82dfbf58afd5a45ab5462ae22a85a3a --- /dev/null +++ b/weights/A1d-bi-s3.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.55 + ], + "registers": { + "21-47": [ + 0.65 + ], + "48-71": [ + 0.55 + ], + "72-91": [ + 0.7 + ] + } +} diff --git a/weights/A1d-bi-s3.safetensors b/weights/A1d-bi-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ef52e772fa683eac9c0b898e8cfc030e1d831ede --- /dev/null +++ b/weights/A1d-bi-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b11ade2a2e2a353679cd151b2877fc3d4d5e606bfaf4b495a90c5936db42f331 +size 438416 diff --git a/weights/A1d-bi-s5.calibration.json b/weights/A1d-bi-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..c0e0c098318efb6963b4998c62914ff2f083a6da --- /dev/null +++ b/weights/A1d-bi-s5.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.3 + ], + "registers": { + "21-47": [ + 0.25 + ], + "48-71": [ + 0.3 + ], + "72-91": [ + 0.75 + ] + } +} diff --git a/weights/A1d-bi-s5.safetensors b/weights/A1d-bi-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..2596a7db0ddb799578083436fa257a82802f7049 --- /dev/null +++ b/weights/A1d-bi-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3116157db00241c643eaabf3dbb8b1a1577164e36c473fe4d6b201903827eab3 +size 438416 diff --git a/weights/A1d-s1.calibration.json b/weights/A1d-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..62cad2e6c16b07ba4fee7cf5603185f97f5ff5c2 --- /dev/null +++ b/weights/A1d-s1.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.3 + ], + "registers": { + "21-47": [ + 0.35 + ], + "48-71": [ + 0.3 + ], + "72-91": [ + 0.6 + ] + } +} diff --git a/weights/A1d-s1.safetensors b/weights/A1d-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..feb0e75986117e443262dcf9983552c8f4158cc2 --- /dev/null +++ b/weights/A1d-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26e33c5cdafe3da406ecbceb8d8b4524111ea01e285a2a641237e01e205b6c58 +size 440116 diff --git a/weights/A1d-s3.calibration.json b/weights/A1d-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..ff9ca6bcc96230c40dec6bfecc36e489b51df73c --- /dev/null +++ b/weights/A1d-s3.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.55 + ], + "registers": { + "21-47": [ + 0.55 + ], + "48-71": [ + 0.55 + ], + "72-91": [ + 0.65 + ] + } +} diff --git a/weights/A1d-s3.safetensors b/weights/A1d-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..4266eedcf095a8c9627e4e591fc7f35e6c4e4ef5 --- /dev/null +++ b/weights/A1d-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92bd775de51254d50a2fcfa000a552209a98f853a56031e02db0c0275fb7d095 +size 440116 diff --git a/weights/A1d-s5.calibration.json b/weights/A1d-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..3d7d60a7eea31edb42646cc0b52b75d88eb9bb47 --- /dev/null +++ b/weights/A1d-s5.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.45 + ], + "registers": { + "21-47": [ + 0.5 + ], + "48-71": [ + 0.45 + ], + "72-91": [ + 0.6 + ] + } +} diff --git a/weights/A1d-s5.safetensors b/weights/A1d-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..5335099194156888404a27d3dd514b62eeb1b6c3 --- /dev/null +++ b/weights/A1d-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b611800820c0285bdbe10c4707cf9c7983882c4d993cdef8dbe9ae43d71248c +size 440116 diff --git a/weights/B1-bi-s1.calibration.json b/weights/B1-bi-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..f14f128740755ebe37f1677e94b1023ae26d3d85 --- /dev/null +++ b/weights/B1-bi-s1.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.55 + ], + "registers": { + "21-47": [ + 1.2 + ], + "48-71": [ + 0.4 + ], + "72-91": [ + 0.65 + ] + } +} diff --git a/weights/B1-bi-s1.safetensors b/weights/B1-bi-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..9680d00493d3c4c654d6f5537c40c55781430dce --- /dev/null +++ b/weights/B1-bi-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bb19091a42e768472ffad775f49c36b49d709b7429fae645fbf297792be7ffb +size 438416 diff --git a/weights/B1-bi-s3.calibration.json b/weights/B1-bi-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..6e2f58d0e8aa2c4835cd4de1ac8601080ecd240d --- /dev/null +++ b/weights/B1-bi-s3.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + -0.2 + ], + "registers": { + "21-47": [ + 0.6 + ], + "48-71": [ + -0.2 + ], + "72-91": [ + 0.15 + ] + } +} diff --git a/weights/B1-bi-s3.safetensors b/weights/B1-bi-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..2973767d49b35884e52eb5f62eae16a44907321b --- /dev/null +++ b/weights/B1-bi-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7842a11b23c186b1b46ffb7cb1a2b0d550203dc302c055e41dfc25a1276e77a0 +size 438416 diff --git a/weights/B1-bi-s5.calibration.json b/weights/B1-bi-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..b952c46703a4dffb5a4998ddd2fca45c23175ef8 --- /dev/null +++ b/weights/B1-bi-s5.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.75 + ], + "registers": { + "21-47": [ + 1.45 + ], + "48-71": [ + 0.65 + ], + "72-91": [ + 1.15 + ] + } +} diff --git a/weights/B1-bi-s5.safetensors b/weights/B1-bi-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..905b22af7a8388f56dcf60e93d8b21311919af6f --- /dev/null +++ b/weights/B1-bi-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbf4b8e9868ab45085372c86e0fa8632a5934b4c0a5b5e00074201bf6134c0ff +size 438416 diff --git a/weights/B1-s1.calibration.json b/weights/B1-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..48b4ebe1dc398f177fef1c73a6d486915b19687a --- /dev/null +++ b/weights/B1-s1.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.55 + ], + "registers": { + "21-47": [ + 1.15 + ], + "48-71": [ + 0.55 + ], + "72-91": [ + 0.65 + ] + } +} diff --git a/weights/B1-s1.safetensors b/weights/B1-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..dffbdd94d79c1aa643f78c13d01c39a5e5a7aef9 --- /dev/null +++ b/weights/B1-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15aeff68451495100137de148a282b25d6ba6b7f84da0148ed2fab3b3d04217d +size 440116 diff --git a/weights/B1-s3.calibration.json b/weights/B1-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..6600003ae34d260c94c1c6c534f75105f054ba8d --- /dev/null +++ b/weights/B1-s3.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.65 + ], + "registers": { + "21-47": [ + 1.15 + ], + "48-71": [ + 0.65 + ], + "72-91": [ + 0.7 + ] + } +} diff --git a/weights/B1-s3.safetensors b/weights/B1-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..9645b45e51703e123efe509cf218221cdce4c38a --- /dev/null +++ b/weights/B1-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:797dcf0da012e1d3eba2fb976a98defa38398738d211c2621a6d83528ba768c5 +size 440116 diff --git a/weights/B1-s5.calibration.json b/weights/B1-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..d8ba4235e2e24e454da9c2a5221548ba262f0ea8 --- /dev/null +++ b/weights/B1-s5.calibration.json @@ -0,0 +1,19 @@ +{ + "delays": [ + 0 + ], + "global": [ + 0.65 + ], + "registers": { + "21-47": [ + 1.1 + ], + "48-71": [ + 0.65 + ], + "72-91": [ + 0.6 + ] + } +} diff --git a/weights/B1-s5.safetensors b/weights/B1-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..1d9367046afb825aa669b5ae20052647edcc5151 --- /dev/null +++ b/weights/B1-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:375c7edad20162d8e9c58be822263cdb1532b94dad1c4ba880e4af32397acf1b +size 440116 diff --git a/weights/S-s1.calibration.json b/weights/S-s1.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..3805d9e525f777ab24f43bcd959219f6c8547d08 --- /dev/null +++ b/weights/S-s1.calibration.json @@ -0,0 +1,39 @@ +{ + "delays": [ + 0, + 1, + 2, + 4, + 8 + ], + "global": [ + 0.15, + 0.25, + 0.25, + 0.2, + 0.25 + ], + "registers": { + "21-47": [ + 0.6, + 0.4, + 0.25, + 0.35, + 0.3 + ], + "48-71": [ + 0.15, + 0.25, + 0.2, + 0.2, + 0.25 + ], + "72-91": [ + 0.35, + 0.3, + 0.35, + 0.2, + 0.3 + ] + } +} diff --git a/weights/S-s1.safetensors b/weights/S-s1.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..be20b4ecdd776814f269286e6b87fa19b0c976bc --- /dev/null +++ b/weights/S-s1.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54c053610496ccc757551f718de97f70438b7c81044e71bba6e3e1be52cf4ae8 +size 423780 diff --git a/weights/S-s3.calibration.json b/weights/S-s3.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..f7fa1b1a0dcfe095f7ced407363be6627dfef3c5 --- /dev/null +++ b/weights/S-s3.calibration.json @@ -0,0 +1,39 @@ +{ + "delays": [ + 0, + 1, + 2, + 4, + 8 + ], + "global": [ + 0.35, + 0.25, + 0.2, + 0.1, + 0.15 + ], + "registers": { + "21-47": [ + 0.4, + 0.25, + 0.25, + 0.2, + 0.05 + ], + "48-71": [ + 0.35, + 0.3, + 0.2, + 0.1, + 0.15 + ], + "72-91": [ + 0.3, + 0.3, + 0.45, + 0.25, + 0.35 + ] + } +} diff --git a/weights/S-s3.safetensors b/weights/S-s3.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..d02fbedb686bdf15ab68f86d7a50c94349e74159 --- /dev/null +++ b/weights/S-s3.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cda819af6ce132d866ad8ad8671af857fe1ea2b322f3a7f810e86495fbbfbea +size 423780 diff --git a/weights/S-s5.calibration.json b/weights/S-s5.calibration.json new file mode 100644 index 0000000000000000000000000000000000000000..cb989a746f5ce2625fcbedbe246eb235212705fe --- /dev/null +++ b/weights/S-s5.calibration.json @@ -0,0 +1,39 @@ +{ + "delays": [ + 0, + 1, + 2, + 4, + 8 + ], + "global": [ + 0.3, + 0.2, + 0.3, + 0.3, + 0.2 + ], + "registers": { + "21-47": [ + 0.45, + 0.4, + 0.35, + 0.3, + 0.3 + ], + "48-71": [ + 0.3, + 0.25, + 0.3, + 0.3, + 0.2 + ], + "72-91": [ + 0.25, + 0.2, + 0.15, + 0.3, + 0.35 + ] + } +} diff --git a/weights/S-s5.safetensors b/weights/S-s5.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..a7b1fecc107e564b1d0319b43ff405a8aae18074 --- /dev/null +++ b/weights/S-s5.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b5cebf336ea9f5ed7d8f0184c3ecdba0869f65a35fa91d26edd84bec11f9e77 +size 423780 diff --git a/weights/head-selection-s1.json b/weights/head-selection-s1.json new file mode 100644 index 0000000000000000000000000000000000000000..52dec2d2d06cb3b18fd64d59caa841ae0208562b --- /dev/null +++ b/weights/head-selection-s1.json @@ -0,0 +1,138 @@ +{ + "seed": 1, + "systems": { + "B1": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "A1d": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "A0": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "S": { + "full": 8, + "scheduled": { + "0": 0, + "20": 1, + "40": 2, + "50": 2, + "60": 2, + "80": 4, + "100": 4, + "120": 4, + "140": 4, + "160": 8, + "180": 8, + "200": 8 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 1, + "40": 2, + "50": 2, + "60": 2, + "80": 4, + "100": 4, + "120": 4, + "140": 4, + "160": 8, + "180": 8, + "200": 8 + } + }, + "B1-bi": { + "full": 0 + }, + "A1d-bi": { + "full": 0 + }, + "A0-bi": { + "full": 0 + } + } +} diff --git a/weights/head-selection-s3.json b/weights/head-selection-s3.json new file mode 100644 index 0000000000000000000000000000000000000000..cfc79aebc9156edff961dc5643ac510874d53b5c --- /dev/null +++ b/weights/head-selection-s3.json @@ -0,0 +1,138 @@ +{ + "seed": 3, + "systems": { + "B1": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "A1d": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "A0": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "S": { + "full": 8, + "scheduled": { + "0": 0, + "20": 1, + "40": 2, + "50": 2, + "60": 2, + "80": 4, + "100": 4, + "120": 4, + "140": 4, + "160": 8, + "180": 8, + "200": 8 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 1, + "40": 2, + "50": 2, + "60": 2, + "80": 4, + "100": 4, + "120": 4, + "140": 4, + "160": 8, + "180": 8, + "200": 8 + } + }, + "B1-bi": { + "full": 0 + }, + "A1d-bi": { + "full": 0 + }, + "A0-bi": { + "full": 0 + } + } +} diff --git a/weights/head-selection-s5.json b/weights/head-selection-s5.json new file mode 100644 index 0000000000000000000000000000000000000000..ff2d78ad2d7142a1eb41aa389e235057d1c5980a --- /dev/null +++ b/weights/head-selection-s5.json @@ -0,0 +1,138 @@ +{ + "seed": 5, + "systems": { + "B1": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "A1d": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "A0": { + "full": 0, + "scheduled": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 0, + "40": 0, + "50": 0, + "60": 0, + "80": 0, + "100": 0, + "120": 0, + "140": 0, + "160": 0, + "180": 0, + "200": 0 + } + }, + "S": { + "full": 8, + "scheduled": { + "0": 0, + "20": 1, + "40": 2, + "50": 2, + "60": 2, + "80": 4, + "100": 4, + "120": 4, + "140": 4, + "160": 8, + "180": 8, + "200": 8 + }, + "scheduled_stale_hold": { + "0": 0, + "20": 1, + "40": 2, + "50": 2, + "60": 2, + "80": 4, + "100": 4, + "120": 4, + "140": 4, + "160": 8, + "180": 8, + "200": 8 + } + }, + "B1-bi": { + "full": 0 + }, + "A1d-bi": { + "full": 0 + }, + "A0-bi": { + "full": 0 + } + } +}