rogermt commited on
Commit
e98401b
Β·
verified Β·
1 Parent(s): 9ae4d7b

Update TODO.md: deprioritize 023, focus on 133/158/018 for 14pts bronze gap

Browse files
Files changed (1) hide show
  1. medal-solvers/TODO.md +24 -59
medal-solvers/TODO.md CHANGED
@@ -1,98 +1,63 @@
1
  # medal-solvers β€” TODO (ORDERED)
2
 
3
- ## Current: 6139.43 (V119) | Target: 6500 (silver)
4
 
5
  ---
6
 
7
- ## ⭐⭐⭐ #1 PRIORITY: TASK 023 β€” REDUCED ONNX IMPLEMENTATION ⭐⭐⭐
8
-
9
- ### Current: score=11.06 (370 nodes, 1.33M memory) | Second dataset: 11.62
10
- ### Target: 13-15+ if reduced algorithm works
11
-
12
- ### ALGORITHM IS KNOWN (reverse-engineered from 370-node model):
13
- The algorithm uses **iterative endpoint propagation** β€” 12 iterations of:
14
- 1. Compute MinPool(2Γ—2), H-triplet(1Γ—3), V-triplet(3Γ—1)
15
- 2. Convolve with shifted kernels, find cells with exactly 1 evidence
16
- 3. Intersect with previous features β†’ refined markers
17
- 4. After all iterations: body = remaining MinPool, edge = remaining triplets
18
-
19
- ### Current bottleneck: 370 nodes create ~369 intermediates of [1,1,30,30] = 1.33M memory.
20
-
21
- ### Path to higher score:
22
- 1. **FIX Python reimplementation** (currently 76.74% β€” threshold bugs at iteration step)
23
- - The model uses threshold 3.5/2.5 for initial extraction, 0.5 for subsequent intersections
24
- - Need to trace exact values at each step to match
25
- 2. **Reduce iterations** using LARGER kernels:
26
- - 5Γ—5 kernel reaches 2 cells per iteration β†’ 6 iterations instead of 12
27
- - 7Γ—7 kernel reaches 3 cells β†’ 4 iterations
28
- - Each iteration has ~30 nodes. Reducing from 12β†’6 saves ~180 nodes = ~180 intermediates
29
- - Memory drops from 1.33M to ~650K β†’ score ~11.6 β†’ to ~320K β†’ score ~12.3
30
- 3. **Build reduced ONNX** and validate on all 266 + random generated examples
31
- 4. **Profile on Kaggle** (static scoring is UNRELIABLE)
32
-
33
- ### DO NOT:
34
- - ❌ Don't try gradient-trained approach (Kaggle rejected it β€” doesn't generalize)
35
- - ❌ Don't use static scoring to estimate gains
36
- - ❌ Don't declare the problem impossible β€” the algorithm IS known and works
37
-
38
- ### Training script (backup plan):
39
- `medal-solvers/build_tasks/train_task023.py` β€” run on Kaggle GPU with N_GEN=5000+.
40
- Uses oracle (370-node model) to label random shapes. If hand-crafted approach stalls,
41
- this is the fallback but MUST verify on 5000+ random shapes before submitting.
42
-
43
- ---
44
-
45
- ## βœ… DONE: TASK 258 β€” Score 18.187 β†’ 19.925 (+1.738, V118)
46
- Single Conv[10,10,1,3] with bias threshold AND trick. See `convolution_series_part_2.py`.
47
-
48
- ## βœ… DONE: TASK 285 β€” Score 8.836 β†’ 10.696 (+1.86 pts, V114)
49
-
50
- ---
51
-
52
- ## ⭐⭐ #2: TASK 133 β€” PER-CHANNEL CONVERSION ⭐⭐
53
 
54
  ### Current: score=8.97, memory=9,115,804
55
  ### Target: score=11-12 (gain +2-3 pts)
56
 
57
  Unroll per-color: process at [1,1,30,30] instead of [1,9,30,30].
 
58
 
59
  ---
60
 
61
- ## ⭐⭐ #3: TASK 158 β€” PROPAGATION REBUILD ⭐⭐
62
 
63
  ### Current: score=9.30, memory=6,563,608
64
  ### Target: score=11-12 (gain +1.5-2.5 pts)
65
 
66
- MaxPool propagation framework (same as task 285 V4).
 
67
 
68
  ---
69
 
70
- ## ⭐ #4: TASK 018 β€” NODE REDUCTION ⭐
71
 
72
  ### Current: score=11.32, memory=868,894
73
  ### Target: score=12.5-13.5 (gain +1.2-2.2 pts)
74
 
75
  ---
76
 
77
- ## ⭐ #5: TASK 255 β€” ELIMINATE [30,30] MATRICES ⭐
78
 
79
  ### Current: score=11.62, memory=643,378
80
  ### Target: score=12.5-13 (gain +0.9-1.4 pts)
81
 
82
  ---
83
 
84
- ## BLOCKED:
85
- - ❌ Task 219 β€” fails hidden tests
86
- - ❌ Task 366 β€” filesize >1.44MB
87
- - ❌ Tasks needing CC detection (44, 76, 77, 101, 157, 182, 233)
 
 
 
 
 
 
88
 
89
  ---
90
 
91
  ## RULES:
92
- - ❌ Don't use static scoring β€” off by 50%+. Profile on Kaggle only.
93
  - ❌ Don't submit with <100% accuracy on known + generated examples
94
- - ❌ Don't train Conv weights expecting them to generalize without 5000+ examples
95
  - βœ… Hand-craft weights using bias threshold trick where rule is understood
96
- - βœ… Use iterative small-kernel approach (like task 023's proven algorithm)
97
- - βœ… Verify on ALL examples + 5000+ random inputs
 
98
  - βœ… Profile on Kaggle before submitting
 
 
1
  # medal-solvers β€” TODO (ORDERED)
2
 
3
+ ## Current: ~6139 (V119) | Target: 6153+ (bronze) | Gap: 14 pts
4
 
5
  ---
6
 
7
+ ## ⭐⭐⭐ #1 PRIORITY: TASK 133 β€” PER-CHANNEL CONVERSION ⭐⭐⭐
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  ### Current: score=8.97, memory=9,115,804
10
  ### Target: score=11-12 (gain +2-3 pts)
11
 
12
  Unroll per-color: process at [1,1,30,30] instead of [1,9,30,30].
13
+ Same technique as task 025. See `build_task025_onnx.py`.
14
 
15
  ---
16
 
17
+ ## ⭐⭐⭐ #2: TASK 158 β€” PROPAGATION REBUILD ⭐⭐⭐
18
 
19
  ### Current: score=9.30, memory=6,563,608
20
  ### Target: score=11-12 (gain +1.5-2.5 pts)
21
 
22
+ MaxPool propagation framework (same as task 285 V4 which gave +1.86).
23
+ See `build_task285_v4_propagation.py`.
24
 
25
  ---
26
 
27
+ ## ⭐⭐ #3: TASK 018 β€” NODE REDUCTION ⭐⭐
28
 
29
  ### Current: score=11.32, memory=868,894
30
  ### Target: score=12.5-13.5 (gain +1.2-2.2 pts)
31
 
32
  ---
33
 
34
+ ## ⭐⭐ #4: TASK 255 β€” ELIMINATE [30,30] MATRICES ⭐⭐
35
 
36
  ### Current: score=11.62, memory=643,378
37
  ### Target: score=12.5-13 (gain +0.9-1.4 pts)
38
 
39
  ---
40
 
41
+ ## ⭐ #5: TASK 023 β€” CONV7x7 TRAINING (needs Kaggle GPU)
42
+
43
+ ### Current: score=11.06 | Target: 12.5-13.2 (gain +1.4-2.1)
44
+ ### Status: Script ready, needs run with --hidden 128 --n-train 50000
45
+ ### Script: `medal-solvers/build_tasks/train_task023_final.py`
46
+ ### DO NOT attempt fp16 surgery or reduced iterations (both proven to fail)
47
+
48
+ ---
49
+
50
+ ## TOTAL POTENTIAL: +6.6 to +11.1 pts (tasks 1-4 alone = +5.6 to +9.1)
51
 
52
  ---
53
 
54
  ## RULES:
55
+ - ❌ NEVER use static scoring β€” profile on Kaggle ONLY
56
  - ❌ Don't submit with <100% accuracy on known + generated examples
57
+ - ❌ Don't work on task 219
58
  - βœ… Hand-craft weights using bias threshold trick where rule is understood
59
+ - βœ… Use per-channel [1,1,H,W] to minimize memory
60
+ - βœ… Use MaxPool propagation for iterative algorithms
61
+ - βœ… Use delta approach for output (input + delta)
62
  - βœ… Profile on Kaggle before submitting
63
+ - βœ… Verify on ALL examples + 5000+ random inputs