ConceptualMachines commited on
Commit
070765e
·
verified ·
1 Parent(s): 4286116

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +32 -12
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 38 commands this is
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% | **91.5%** |
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 71 cases
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 mute the guitar" -> track(name="Can You").track.set(mute=true)
68
- "push Keys up to 2 dB" -> track(name="Push").track.set(volume_db=2)
69
- "the bass needs @pro_q_3" -> track(name="Bass Needs").track.set(colour="None")
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, 38]` and
84
- `slot_logits [batch, seq, 18]`.
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 with LLM-paraphrased inputs, 4
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. It cannot express anything outside them
151
- and will map an unsupported request onto the nearest one it has.
 
 
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