MojiDiff

← experiments

r2s-v10-b128-e526a4e-f66c07e7-47646604

completed —

Hypothesis

With batch 32 -> 128 with learning rate 5e-4 -> 1e-3 (square-root rule), 60k steps, so four times the samples, and everything else as in v9, the render-to-program model transcribes the 339 validation renders with lower mean 72 px pixel error than v9 trained on the same machine and seed. Pass requires the paired 95% bootstrap interval on the per-icon reduction against that v9 rerun to exclude zero. Its greedy latency on the RTX 4080 is recorded; a pass that is too slow for the browser demo is a teacher for distillation, not the demo model.

Visual output

samples
samples.png

Written result

Hypothesis. With batch 32 -> 128 with learning rate 5e-4 -> 1e-3 (square-root rule), 60k steps, so four times the samples, and everything else as in v9, the render-to-program model transcribes the 339 validation renders with lower mean 72 px pixel error than v9 trained on the same machine and seed. Pass requires the paired 95% bootstrap interval on the per-icon reduction against that v9 rerun to exclude zero. Its greedy latency on the RTX 4080 is recorded; a pass that is too slow for the browser demo is a teacher for distillation, not the demo model.

Result

measurevalue
icons evaluated339 (primary/validation)
model pixel error, mean [95% CI]0.0751 [0.0695, 0.0806]
model pixel error, median0.0707
exact program rate0.047
rendered rate1.000
blank canvas pixel error0.1720
nearest training icon pixel error0.0897 [0.0848, 0.0947]
error reduction vs nearest icon0.0147 [0.0103, 0.0189]
icons where model beats nearest icon226
CLIP top-1, model greedy (32 Gate N icons)0.625
CLIP top-1, nearest training icon0.344
CLIP top-1, OmniSVG 4B zero-shot (Gate N)0.609

Resources

measurevalue
deviceNVIDIA H100
parameters9,025,826
train seconds11444
peak VRAM GiB16.676997661590576
latency ms/icon, batch 1, median3887.4
latency ms/icon, batch 1, p953927.9
throughput ms/icon, batch 6486.3
model calls per icon (decoding)1005.0
torch / CUDA2.14.1+cu130 / 13.0

Latency covers encoding and decoding to a validated token program; it excludes rasterising the SVG. Samples: samples.png, rows are reference, model, nearest training icon.

State transitions

  1. running2026-10-13T18:55:33Z
  2. completed2026-10-13T22:10:11Z

Run record

Verbatim from runs/r2s-v10-b128-e526a4e-f66c07e7-47646604/run.yaml, the record committed before launch.

schema_version
2
run_id
r2s-v10-b128-e526a4e-f66c07e7-47646604
state
completed
planned_at
2026-10-13T18:55:33Z
hypothesis
With batch 32 -> 128 with learning rate 5e-4 -> 1e-3 (square-root rule), 60k steps, so four times the samples, and everything else as in v9, the render-to-program model transcribes the 339 validation renders with lower mean 72 px pixel error than v9 trained on the same machine and seed. Pass requires the paired 95% bootstrap interval on the per-icon reduction against that v9 rerun to exclude zero. Its greedy latency on the RTX 4080 is recorded; a pass that is too slow for the browser demo is a teacher for distillation, not the demo model.
parent_run
r2s-full-v9-colour
git_commit
e526a4e9b96430b3f6847607f3c4e7a29b0124b2
dirty_patch_sha256
790c5b9f7728cfde…
config
configs/render2svg/v10-b128.yaml
config_sha256
f66c07e76a348eaf…
config_resolved
model
image_size
144
d_model
256
heads
8
encoder_layers
2
decoder_layers
6
feedforward
1024
dropout
0.1
metric
true
fourier
10
order
path
training
steps
60000
batch_size
128
learning_rate
0.001
weight_decay
0.01
warmup_steps
1000
seed
7001
eval_every
2000
eval_icons
64
train_icons
None
evaluate_on_train
false
augment_variants
0
augment_seed
9001
augment_mirror
0.5
augment_max_shift
48
augment_colour
0.1
augment_online
true
compose_probability
0.5
compose_parts
4
augment_original
0.1
loader_workers
16
extra_training
bf16
true
final_eval_icons
339
clip_icons
32
dataset
pilot_config
configs/learning/openmoji-g1-geometric-gate-v16.yaml
cache_sha256
476466042da98d72…
train_icons
2681
augmented_variants
0
extra_training
None
augmented_sha256
None
evaluated_on
primary/validation
seed
7001
determinism
seeded; cuDNN and SDPA kernels not forced deterministic
model_parameters
9025826
command
.venv/bin/python -m mojidiff.learning.render2svg --config configs/render2svg/v10-b128.yaml
outputs
run_dir
runs/r2s-v10-b128-e526a4e-f66c07e7-47646604
checkpoints
/data/fs201459/cp98556/predictable/cache/runs/r2s-v10-b128-e526a4e-f66c07e7-47646604
notes
completed_at
2026-10-13T22:10:11Z
resource
device
NVIDIA H100
torch_version
2.14.1+cu130
cuda_version
13.0
python_version
3.12.14
peak_vram_gib
16.676997661590576
train_seconds
11444.280388768995
inference_ms_per_icon
3887.411717500072
inference_p95_ms_per_icon
3927.8901440557092
icons_per_second
0.25724056844770815
batched_ms_per_icon
86.26041515526595
batched_icons_per_call
64
excludes
rendering the output SVG to pixels
baselines
blank_canvas_pixel_error
0.1720480552069557
nearest_training_icon_pixel_error
0.08973124639576185
gate_n_omnisvg_zero_shot_top1
0.609375
nearest_training_icon_clip_top1
0.34375
result
icons
339
model_pixel_error
0.0750755188741294, 0.06947826792555853, 0.08056035110059066
model_pixel_error_median
0.07072944939136505
exact_program_rate
0.0471976401179941
rendered_rate
1.0
blank_pixel_error
0.1720480552069557
selected_step
24000
nearest_training_icon_pixel_error
0.08973124639576185, 0.0848205749792233, 0.09466393787711656
model_minus_baseline_error_reduction
0.014655727521632455, 0.010307807521637017, 0.01887749354406978
icons_model_beats_baseline
226
clip_retrieval
model_greedy
top1_rate
0.625
top5_rate
0.9375
mean_rank
2.6875
clip_to_reference_mean
0.9177020955830812
chance_top1
0.03125
icons
32
nearest_training_icon
top1_rate
0.34375
top5_rate
0.59375
mean_rank
7.4375
clip_to_reference_mean
0.8629764690995216
chance_top1
0.03125
icons
32
gate_n_omnisvg_zero_shot_top1
0.609375
gate_n_omnisvg_best_of_12_top1
0.828125
model_calls_per_icon
1005
predeclared_outcome
criterion
paired 95% bootstrap interval on the per-icon reduction against the v9 rerun excludes zero in favour
against
r2s-full-v9-colour-989aea8-b26ad95e-47646604
paired
icons
339
candidate_pixel_error
0.0750755188741294, 0.06962921064069126, 0.08057785661268933
parent_pixel_error
0.07241242935923602, 0.06769235660214266, 0.07717277473913198
parent_minus_candidate
-0.0026630895148933888, -0.0065623402931394535, 0.0010847041957177577
candidate_better_icons
156
parent_better_icons
167
interval_excludes_zero_in_favour
false
passed
false
rtx4080_latency
not measured (no arm passed)