Skip to content

Commit 6ecb0dc

Browse files
52Hertz52Hertz
authored andcommitted
fix: prune inactive Top-1 recurrent paths
1 parent 6fe7b80 commit 6ecb0dc

1 file changed

Lines changed: 13 additions & 24 deletions

File tree

src/DslCatalogPage.tsx

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ const DSL_RECORDS: DslRecord[] = [
135135
label: "lower vs LSTM",
136136
detail: "LSTM: 0.00461830 NMSE; Top-1: 0.00002438 NMSE",
137137
},
138-
architecture: "Add → Gate 0 → Gate 2 → Gate 1 with two recurrent outputs",
139-
architectureNote: "Only effective paths are shown; the unused previous-cell input and repeated unrolling stay out of the view.",
138+
architecture: "Add → Gate 0 → Gate 2 with a direct hₜ₋₁ residual",
139+
architectureNote: "Only the effective hₜ path is shown; the fixed cₜ interface is unused by this candidate.",
140140
facts: [
141141
{ label: "Search space", value: "1M screened" },
142142
{ label: "Output", value: "Mean addition target" },
@@ -247,21 +247,19 @@ function MiniArchitecture({ id }: { id: DslId }) {
247247
);
248248
}
249249
return (
250-
<svg className="dsl-mini-graph dsl-mini-graph-sequence" viewBox="0 0 360 154" role="img" aria-label="Top recurrent cell preview: Add, Gate 0, Gate 2, Gate 1, then recurrent outputs">
250+
<svg className="dsl-mini-graph dsl-mini-graph-sequence" viewBox="0 0 360 154" role="img" aria-label="Top recurrent cell preview: Add, Gate 0, Gate 2, then hidden output">
251251
<DiagramDefs id={id} />
252252
<g className="dsl-diagram-edges">
253253
<DiagramEdge markerId={`dsl-arrow-${id}`} d="M54 77 H76" />
254254
<DiagramEdge markerId={`dsl-arrow-${id}`} d="M116 77 H135" />
255255
<DiagramEdge markerId={`dsl-arrow-${id}`} d="M185 77 H204" />
256-
<DiagramEdge markerId={`dsl-arrow-${id}`} d="M254 77 H273" />
257-
<DiagramEdge markerId={`dsl-arrow-${id}`} d="M323 77 H330" />
256+
<DiagramEdge markerId={`dsl-arrow-${id}`} d="M254 77 H300" />
258257
</g>
259258
<DiagramNode x={6} y={60} width={48} height={34} label="x, h, g" kind="is-input" />
260259
<DiagramNode x={76} y={60} width={40} height={34} label="Add" kind="is-memory" />
261260
<DiagramNode x={135} y={60} width={50} height={34} label="Gate 0" kind="is-gate" />
262261
<DiagramNode x={204} y={60} width={50} height={34} label="Gate 2" kind="is-gate" />
263-
<DiagramNode x={273} y={60} width={50} height={34} label="Gate 1" kind="is-gate" />
264-
<DiagramNode x={330} y={60} width={26} height={34} label="h,c" kind="is-output" />
262+
<DiagramNode x={300} y={60} width={50} height={34} label="hₜ" kind="is-output" />
265263
<text className="dsl-diagram-feedback-label" x="180" y="120" textAnchor="middle">effective Top-1 path</text>
266264
</svg>
267265
);
@@ -456,7 +454,7 @@ function SequenceTop1Graph() {
456454
const markerId = "dsl-arrow-sequence-top1";
457455
return (
458456
<div className="dsl-sequence-graph-frame" role="region" aria-label="Top-1 recurrent cell expanded as a connected Unit graph" tabIndex={0}>
459-
<svg className="dsl-sequence-top1-graph" viewBox="0 0 1000 410" role="img" aria-label="Active Top-1 architecture with x t, h previous, and g t feeding Add, Gate 0, Gate 2, Gate 1, h t, and c t">
457+
<svg className="dsl-sequence-top1-graph" viewBox="0 0 1000 410" role="img" aria-label="Active Top-1 architecture with x t, h previous, and g t feeding Add, Gate 0, Gate 2, and h t">
460458
<defs>
461459
<marker id={markerId} markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto" markerUnits="userSpaceOnUse">
462460
<path className="dsl-diagram-marker" d="M0,0 L8,4 L0,8 Z" />
@@ -468,27 +466,18 @@ function SequenceTop1Graph() {
468466
<DiagramEdge markerId={markerId} d="M500 70 C535 70 520 210 550 210" />
469467
<DiagramEdge markerId={markerId} d="M680 210 C715 210 700 70 730 70" />
470468
<DiagramEdge markerId={markerId} d="M680 210 H880" />
471-
<DiagramEdge markerId={markerId} d="M860 70 C900 70 835 300 880 300" />
472-
<DiagramEdge markerId={markerId} d="M680 210 C748 238 790 312 880 312" />
473-
<DiagramEdge markerId={markerId} d="M500 70 C610 110 700 324 880 324" />
474-
<DiagramEdge markerId={markerId} d="M135 300 C365 372 650 350 880 336" />
475-
<DiagramEdge markerId={markerId} d="M135 70 C270 392 645 382 880 348" />
476469
<DiagramEdge markerId={markerId} d="M135 185 C245 185 275 90 370 82" />
477470
<DiagramEdge markerId={markerId} d="M135 185 C310 185 405 210 550 210" />
478471
<DiagramEdge markerId={markerId} d="M135 300 C315 300 410 222 550 216" />
479-
<DiagramEdge markerId={markerId} d="M135 300 C430 360 605 105 730 82" />
480-
<DiagramEdge markerId={markerId} d="M135 70 C360 18 600 18 730 58" />
481472
</g>
482473
<DiagramNode x={20} y={45} width={115} height={50} label="xₜ" kind="is-input" detail="current input" />
483474
<DiagramNode x={20} y={160} width={115} height={50} label="hₜ₋₁" kind="is-input" detail="previous hidden" />
484475
<DiagramNode x={20} y={275} width={115} height={50} label="gₜ" kind="is-input" detail="candidate content" />
485476
<DiagramNode x={190} y={45} width={120} height={50} label="Add" kind="is-memory" detail="input: xₜ" />
486477
<DiagramNode x={370} y={45} width={130} height={50} label="Gate 0" kind="is-gate" detail="ctx hₜ₋₁,xₜ · value Add" />
487478
<DiagramNode x={550} y={185} width={130} height={50} label="Gate 2" kind="is-gate" detail="ctx gₜ,hₜ₋₁ · value G0" />
488-
<DiagramNode x={730} y={45} width={130} height={50} label="Gate 1" kind="is-gate" detail="ctx G2,xₜ · value tanh(gₜ)" />
489479
<DiagramNode x={880} y={185} width={90} height={50} label="hₜ" kind="is-output" detail="hₜ₋₁ + G2" />
490-
<DiagramNode x={880} y={285} width={90} height={70} label="cₜ" kind="is-output" detail="Σ xₜ,gₜ,G0,G1,G2" />
491-
<text className="dsl-sequence-active-note" x="20" y="382">ACTIVE DEPENDENCIES ONLY · cₜ₋₁ IS UNUSED</text>
480+
<text className="dsl-sequence-active-note" x="20" y="382">ACTIVE DEPENDENCIES ONLY · cₜ IS OMITTED: UNUSED BY THIS CANDIDATE</text>
492481
</svg>
493482
</div>
494483
);
@@ -621,7 +610,7 @@ function RecurrentCellReport({ record }: { record: DslRecord }) {
621610
<table className="dsl-report-table dsl-jena-leaderboard dsl-sequence-leaderboard">
622611
<thead><tr><th>Architecture</th><th>Effective cell parameters</th><th>Test NMSE</th></tr></thead>
623612
<tbody>
624-
<tr className="is-best"><td>Screened Top-1</td><td>33,024</td><td>0.00002438</td></tr>
613+
<tr className="is-best"><td>Screened Top-1</td><td>24,768</td><td>0.00002438</td></tr>
625614
<tr className="is-reference"><td>LSTM</td><td>33,024</td><td>0.00461830</td></tr>
626615
<tr><td>tanh RNN</td><td>8,256</td><td>0.11781284</td></tr>
627616
</tbody>
@@ -651,14 +640,14 @@ function RecurrentCellReport({ record }: { record: DslRecord }) {
651640
<div className="dsl-report-section-rail"><span>05</span><p><Network size={15} strokeWidth={1.7} /> Top-1 cell</p></div>
652641
<div className="dsl-report-section-body">
653642
<div className="dsl-report-title-row">
654-
<div><p className="dsl-section-label">Highest-performing retrained candidate</p><h2>Add → Gate 0 → Gate 2 → Gate 1</h2></div>
655-
<span className="dsl-report-tag">28d74e76b41dfc7ca39d1bea</span>
656-
</div>
657-
<p className="dsl-report-lead">Only effective paths are shown below. Although <code>cₜ₋₁</code> is part of the fixed DSL interface, this candidate does not use it. Gate context controls each sigmoid mask, while Gate value names the complete tensor carried through that Unit.</p>
643+
<div><p className="dsl-section-label">Highest-performing retrained candidate</p><h2>Add → Gate 0 → Gate 2</h2></div>
644+
<span className="dsl-report-tag">28d74e76b41dfc7ca39d1bea</span>
645+
</div>
646+
<p className="dsl-report-lead">Only effective paths are shown below. Although <code>cₜ₋₁</code> and <code>cₜ</code> remain part of the fixed DSL interface, this candidate does not use either cell-state path. Gate context controls each sigmoid mask, while Gate value names the complete tensor carried through that Unit.</p>
658647
<SequenceTop1Graph />
659648
<div className="dsl-report-interpretation">
660649
<strong>Structural pattern</strong>
661-
<p>The winning candidate replaces LSTM's explicit previous-cell carry with a short <code>xₜ → Gate 0 → Gate 2</code> route and gives <code>hₜ</code> a direct residual from <code>hₜ₋₁</code>. A third Gate contributes only to <code>cₜ</code>. This is a structural description, not a causal claim.</p>
650+
<p>The winning candidate replaces LSTM's explicit previous-cell carry with a short <code>xₜ → Gate 0 → Gate 2</code> route and gives <code>hₜ</code> a direct residual from <code>hₜ₋₁</code>. The formerly instantiated third Gate and <code>cₜ</code> branch are omitted because they do not affect the next recurrent computation. This is a structural description, not a causal claim.</p>
662651
</div>
663652
</div>
664653
</section>

0 commit comments

Comments
 (0)