Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -21,12 +21,30 @@ undoable transaction.
|
|
| 21 |
|
| 22 |
Fine-tuned from `microsoft/deberta-v3-base`. English only.
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
## What it actually does
|
| 25 |
|
| 26 |
**It never writes the command.** It does perception only, in a single forward
|
| 27 |
pass, and emits two things:
|
| 28 |
|
| 29 |
-
1. which of
|
| 30 |
2. a BIO tag per word saying what role that word plays
|
| 31 |
|
| 32 |
```
|
|
@@ -50,11 +68,11 @@ Scored as exact-match on the fully rendered command, not on tags.
|
|
| 50 |
| | in-distribution | **held-out phrasing** |
|
| 51 |
|---|---|---|
|
| 52 |
| previous model (51k-param conv net, from scratch) | 98.2% | **46.5%** |
|
| 53 |
-
| **this model** | 100% | **
|
| 54 |
|
| 55 |
The two columns matter more than the numbers. The in-distribution set is
|
| 56 |
authored from the same case list the training templates come from, so a high
|
| 57 |
-
score there means the model recalls its templates. The held-out set is
|
| 58 |
hand-written from the command list alone, in the register people actually type:
|
| 59 |
lowercase, filler, contractions, typos. That is the number that predicts
|
| 60 |
behaviour on input nobody has seen.
|
|
@@ -64,9 +82,9 @@ English, it named tracks after whichever word sat in the name position during
|
|
| 64 |
training:
|
| 65 |
|
| 66 |
```
|
| 67 |
-
"can you
|
| 68 |
-
"push Keys up to 2 dB"
|
| 69 |
-
"the bass needs @pro_q_3"
|
| 70 |
```
|
| 71 |
|
| 72 |
Politeness wrappers scored 10%. With a pretrained encoder they score 100%.
|
|
@@ -80,8 +98,8 @@ Politeness wrappers scored 10%. With a pretrained encoder they score 100%.
|
|
| 80 |
| `maps.json` | 1 KB | intent and BIO tag id maps |
|
| 81 |
|
| 82 |
Inputs are `input_ids` and `attention_mask`, both `int64 [batch, seq]` with
|
| 83 |
-
dynamic sequence length. Outputs are `intent_logits [batch,
|
| 84 |
-
`slot_logits [batch, seq,
|
| 85 |
|
| 86 |
## Quantization warning
|
| 87 |
|
|
@@ -133,8 +151,8 @@ and `unigram_tokenizer.cpp` in the MAGDA repo.
|
|
| 133 |
|
| 134 |
## Training
|
| 135 |
|
| 136 |
-
24,000 template-generated English examples
|
| 137 |
-
epochs, lr 3e-5 for the encoder and 1e-3 for the two heads. Checkpoints are
|
| 138 |
selected on a hand-authored held-out set, never on the reported one — the
|
| 139 |
val split is drawn from the same templates as training and saturates at 100%
|
| 140 |
after one epoch, which makes it useless for ranking checkpoints.
|
|
@@ -147,8 +165,10 @@ after one epoch, which makes it useless for ranking checkpoints.
|
|
| 147 |
- **Plugin references need the `@` sigil.** `track with @serum` works;
|
| 148 |
`track with serum` does not, and degrades into an unrelated command rather
|
| 149 |
than failing cleanly.
|
| 150 |
-
- **Closed command set.** 38 commands
|
| 151 |
-
|
|
|
|
|
|
|
| 152 |
- Sentences where the verb trails its object ("i don't need the perc track
|
| 153 |
anymore, delete it") are a known weak spot.
|
| 154 |
|
|
|
|
| 21 |
|
| 22 |
Fine-tuned from `microsoft/deberta-v3-base`. English only.
|
| 23 |
|
| 24 |
+
## Scope: edits, not gestures
|
| 25 |
+
|
| 26 |
+
The command set covers **editing operations** — creating and naming tracks,
|
| 27 |
+
adding devices, building racks, clip and note operations, grouping, selection
|
| 28 |
+
by predicate. Deliberately excluded are real-time transport and mixer states
|
| 29 |
+
(play/stop, track mute, solo): those have keyboard shortcuts, and a model with
|
| 30 |
+
latency is strictly worse than the button. Queries ("what's the tempo") are
|
| 31 |
+
excluded too — they are answers, not edits.
|
| 32 |
+
|
| 33 |
+
Those requests are not merely unsupported; they are trained as an explicit
|
| 34 |
+
**abstain** class, so the model returns nothing rather than executing whichever
|
| 35 |
+
command happened to be nearest. A closed label set cannot decline unless
|
| 36 |
+
declining is itself a label.
|
| 37 |
+
|
| 38 |
+
Note that clip enable/disable *is* covered: it is a persistent property of the
|
| 39 |
+
project, unlike a mixer mute, and picking one clip out by name is exactly the
|
| 40 |
+
kind of thing typing beats clicking at.
|
| 41 |
+
|
| 42 |
## What it actually does
|
| 43 |
|
| 44 |
**It never writes the command.** It does perception only, in a single forward
|
| 45 |
pass, and emits two things:
|
| 46 |
|
| 47 |
+
1. which of 39 commands this is (one of which is "none of these")
|
| 48 |
2. a BIO tag per word saying what role that word plays
|
| 49 |
|
| 50 |
```
|
|
|
|
| 68 |
| | in-distribution | **held-out phrasing** |
|
| 69 |
|---|---|---|
|
| 70 |
| previous model (51k-param conv net, from scratch) | 98.2% | **46.5%** |
|
| 71 |
+
| **this model** | 100% | **~90%** |
|
| 72 |
|
| 73 |
The two columns matter more than the numbers. The in-distribution set is
|
| 74 |
authored from the same case list the training templates come from, so a high
|
| 75 |
+
score there means the model recalls its templates. The held-out set is 68 cases
|
| 76 |
hand-written from the command list alone, in the register people actually type:
|
| 77 |
lowercase, filler, contractions, typos. That is the number that predicts
|
| 78 |
behaviour on input nobody has seen.
|
|
|
|
| 82 |
training:
|
| 83 |
|
| 84 |
```
|
| 85 |
+
"can you drop @1176 onto the vocals" -> track(name="Can You Drop @1176")...
|
| 86 |
+
"push Keys up to 2 dB" -> track(name="Push").track.set(volume_db=2)
|
| 87 |
+
"the bass needs @pro_q_3" -> track(name="Bass Needs").track.set(colour="None")
|
| 88 |
```
|
| 89 |
|
| 90 |
Politeness wrappers scored 10%. With a pretrained encoder they score 100%.
|
|
|
|
| 98 |
| `maps.json` | 1 KB | intent and BIO tag id maps |
|
| 99 |
|
| 100 |
Inputs are `input_ids` and `attention_mask`, both `int64 [batch, seq]` with
|
| 101 |
+
dynamic sequence length. Outputs are `intent_logits [batch, 39]` and
|
| 102 |
+
`slot_logits [batch, seq, 20]`.
|
| 103 |
|
| 104 |
## Quantization warning
|
| 105 |
|
|
|
|
| 151 |
|
| 152 |
## Training
|
| 153 |
|
| 154 |
+
24,000 template-generated English examples (no LLM paraphrasing in this
|
| 155 |
+
build), 4 epochs, lr 3e-5 for the encoder and 1e-3 for the two heads. Checkpoints are
|
| 156 |
selected on a hand-authored held-out set, never on the reported one — the
|
| 157 |
val split is drawn from the same templates as training and saturates at 100%
|
| 158 |
after one epoch, which makes it useless for ranking checkpoints.
|
|
|
|
| 165 |
- **Plugin references need the `@` sigil.** `track with @serum` works;
|
| 166 |
`track with serum` does not, and degrades into an unrelated command rather
|
| 167 |
than failing cleanly.
|
| 168 |
+
- **Closed command set.** 38 commands plus an explicit abstain class. Anything
|
| 169 |
+
outside them returns nothing rather than being mapped onto the nearest
|
| 170 |
+
command — but abstain recall is not perfect, so an unusual out-of-scope
|
| 171 |
+
request can still land on a command.
|
| 172 |
- Sentences where the verb trails its object ("i don't need the perc track
|
| 173 |
anymore, delete it") are a known weak spot.
|
| 174 |
|