anhtld commited on
Commit
f55ce77
·
verified ·
1 Parent(s): 6682df5

auto-sync 2026-07-04T06:53:39Z workspace

Browse files
workspace/README.md CHANGED
@@ -199,6 +199,9 @@ Configuration files for experiments.
199
 
200
  - `configs/ctt/residual_smoke.yaml`: small residual CTT smoke config.
201
  - `configs/ctt/residual_full.yaml`: full residual CTT config.
 
 
 
202
  - `configs/ctt/gated_residual_smoke.yaml`: small gated CTT smoke config.
203
  - `configs/ctt/gated_residual_full.yaml`: full gated CTT config.
204
  - `configs/baselines/*.yaml`: baseline configs for expert-only BC,
@@ -267,9 +270,9 @@ Data/chart export and audits:
267
  CTT training/proxy/rollout:
268
 
269
  - `scripts/train_ctt.py`: trains residual or gated residual CTT. It logs
270
- configured loss weights plus per-epoch component losses for positive
271
- alignment, negative boundary, ranking, cycle, and diversity terms. Use
272
- `--no-markdown-report` for README-only runs.
273
  - `scripts/eval_ctt_proxy.py`: proxy support evaluation with PPTC,
274
  NegativeNear, PosCloserThanNeg, distance, diversity, and collapse metrics.
275
  Use `--no-markdown-report` for README-only runs.
@@ -439,11 +442,13 @@ High-value run directories:
439
  - `runs/chart_object_embeddings_rgb_refs`: object-layout embedding export.
440
  - `runs/chart_feature_audit*`: feature-source audits.
441
  - `runs/ctt_residual_full_seed{0,1,2}`: full residual CTT training.
 
 
442
  - `runs/ctt_gated_residual_full_seed{0,1,2}`: full gated residual CTT training.
443
  - `runs/ctt_residual_component_smoke`: real-data CTT training smoke with
444
  `--no-markdown-report`; logs configured loss weights and per-component loss
445
- means for positive alignment, negative boundary, ranking, cycle, and
446
- diversity terms.
447
  - `runs/ctt_base_context_obs_test_envclip_k16_rollout_comparison`: current
448
  strongest measured support artifact.
449
  - `runs/ctt_val_proxy_comparison`: CTT-vs-local-atlas proxy support gate.
@@ -565,6 +570,43 @@ The gated residual variant fails the safety gate.
565
  Interpretation: CTT improves support distance geometry, but the story is still
566
  diagnostic until measured rollout and selection close the outcome gap.
567
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
568
  ### Best current K=16 train-clean learned selector
569
 
570
  Run:
 
199
 
200
  - `configs/ctt/residual_smoke.yaml`: small residual CTT smoke config.
201
  - `configs/ctt/residual_full.yaml`: full residual CTT config.
202
+ - `configs/ctt/residual_ot_smoke.yaml`: residual CTT smoke config with
203
+ entropic OT alignment enabled.
204
+ - `configs/ctt/residual_ot_full.yaml`: full residual CTT + OT config.
205
  - `configs/ctt/gated_residual_smoke.yaml`: small gated CTT smoke config.
206
  - `configs/ctt/gated_residual_full.yaml`: full gated CTT config.
207
  - `configs/baselines/*.yaml`: baseline configs for expert-only BC,
 
270
  CTT training/proxy/rollout:
271
 
272
  - `scripts/train_ctt.py`: trains residual or gated residual CTT. It logs
273
+ configured loss weights plus per-epoch component losses for Chamfer positive
274
+ alignment, optional entropic OT alignment, negative boundary, ranking, cycle,
275
+ and diversity terms. Use `--no-markdown-report` for README-only runs.
276
  - `scripts/eval_ctt_proxy.py`: proxy support evaluation with PPTC,
277
  NegativeNear, PosCloserThanNeg, distance, diversity, and collapse metrics.
278
  Use `--no-markdown-report` for README-only runs.
 
442
  - `runs/chart_object_embeddings_rgb_refs`: object-layout embedding export.
443
  - `runs/chart_feature_audit*`: feature-source audits.
444
  - `runs/ctt_residual_full_seed{0,1,2}`: full residual CTT training.
445
+ - `runs/ctt_residual_ot_full_seed{0,1,2}`: planned full residual CTT + OT
446
+ training family; only promote after the proxy artifacts exist and pass gates.
447
  - `runs/ctt_gated_residual_full_seed{0,1,2}`: full gated residual CTT training.
448
  - `runs/ctt_residual_component_smoke`: real-data CTT training smoke with
449
  `--no-markdown-report`; logs configured loss weights and per-component loss
450
+ means for Chamfer/OT positive alignment, negative boundary, ranking, cycle,
451
+ and diversity terms.
452
  - `runs/ctt_base_context_obs_test_envclip_k16_rollout_comparison`: current
453
  strongest measured support artifact.
454
  - `runs/ctt_val_proxy_comparison`: CTT-vs-local-atlas proxy support gate.
 
570
  Interpretation: CTT improves support distance geometry, but the story is still
571
  diagnostic until measured rollout and selection close the outcome gap.
572
 
573
+ ### CTT + OT alignment smoke
574
+
575
+ Runs:
576
+
577
+ ```text
578
+ runs/ctt_residual_ot_component_smoke
579
+ runs/ctt_residual_ot_component_smoke_val_proxy
580
+ ```
581
+
582
+ Purpose: verify the implemented optional entropic OT alignment path for
583
+ `train_ctt.py` before promoting it to a full proxy comparison. This is a
584
+ code-path smoke, not a method result.
585
+
586
+ | Item | Value |
587
+ | --- | ---: |
588
+ | Train charts | 16 |
589
+ | Neighbor pairs | 28 |
590
+ | OT alignment weight | 0.25 |
591
+ | Final OT component | 31.3781 |
592
+ | Val proxy rows | 32 |
593
+ | PPTC@0.20 | 0.3438 |
594
+ | PPTC@0.40 | 0.7188 |
595
+ | NegativeNear@0.20 | 0.0423 |
596
+ | Pos<Neg | 0.5974 |
597
+ | Mean positive distance | 0.6672 |
598
+
599
+ Full 3-seed validation proxy job submitted on 2026-07-04:
600
+
601
+ ```text
602
+ 15203117 scripts/slurm/train_ctt_ot_proxy.sbatch array=0-2
603
+ status at submission check: PENDING (Priority)
604
+ ```
605
+
606
+ Interpretation: the OT path is implemented and smoke-tested. It should only be
607
+ compared against local-atlas and residual CTT after job `15203117` completes
608
+ and `runs/ctt_val_proxy_comparison` is regenerated from artifacts.
609
+
610
  ### Best current K=16 train-clean learned selector
611
 
612
  Run:
workspace/cil/models/ctt.py CHANGED
@@ -1,5 +1,6 @@
1
  from __future__ import annotations
2
 
 
3
  from dataclasses import asdict, dataclass
4
 
5
  try:
@@ -72,6 +73,38 @@ def chamfer_to_target_set(predicted: "torch.Tensor", target_set: "torch.Tensor")
72
  return distances.min(dim=1).values.pow(2).mean()
73
 
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  def negative_boundary_loss(
76
  predicted: "torch.Tensor",
77
  negative_set: "torch.Tensor",
 
1
  from __future__ import annotations
2
 
3
+ import math
4
  from dataclasses import asdict, dataclass
5
 
6
  try:
 
73
  return distances.min(dim=1).values.pow(2).mean()
74
 
75
 
76
+ def entropic_ot_alignment_loss(
77
+ predicted: "torch.Tensor",
78
+ target_set: "torch.Tensor",
79
+ *,
80
+ epsilon: float = 0.05,
81
+ iterations: int = 30,
82
+ ) -> "torch.Tensor":
83
+ """Uniform entropic OT alignment between transported and target positives."""
84
+
85
+ if target_set.numel() == 0:
86
+ return predicted.new_tensor(0.0)
87
+ if predicted.numel() == 0:
88
+ return target_set.new_tensor(0.0)
89
+ if epsilon <= 0.0:
90
+ raise ValueError("epsilon must be positive")
91
+ if iterations <= 0:
92
+ raise ValueError("iterations must be positive")
93
+
94
+ cost = torch.cdist(predicted, target_set).pow(2)
95
+ n_pred, n_target = cost.shape
96
+ log_kernel = -cost / float(epsilon)
97
+ log_mu = predicted.new_full((n_pred,), -math.log(float(n_pred)))
98
+ log_nu = predicted.new_full((n_target,), -math.log(float(n_target)))
99
+ u = predicted.new_zeros(n_pred)
100
+ v = predicted.new_zeros(n_target)
101
+ for _ in range(int(iterations)):
102
+ u = log_mu - torch.logsumexp(log_kernel + v.unsqueeze(0), dim=1)
103
+ v = log_nu - torch.logsumexp(log_kernel + u.unsqueeze(1), dim=0)
104
+ plan = torch.exp(log_kernel + u.unsqueeze(1) + v.unsqueeze(0))
105
+ return (plan * cost).sum()
106
+
107
+
108
  def negative_boundary_loss(
109
  predicted: "torch.Tensor",
110
  negative_set: "torch.Tensor",
workspace/configs/ctt/gated_residual_full.yaml CHANGED
@@ -7,11 +7,14 @@ neighbors: 8
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
 
10
  negative_boundary: 0.25
11
  pairwise_rank: 1.0
12
  listwise_rank: 0.5
13
  cycle: 0.1
14
  diversity: 0.05
15
  negative_margin: 0.2
 
 
16
  transport_samples_per_pair: 4
17
  diversity_temperature: 1.0
 
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
10
+ ot_alignment: 0.0
11
  negative_boundary: 0.25
12
  pairwise_rank: 1.0
13
  listwise_rank: 0.5
14
  cycle: 0.1
15
  diversity: 0.05
16
  negative_margin: 0.2
17
+ ot_epsilon: 0.05
18
+ ot_iterations: 30
19
  transport_samples_per_pair: 4
20
  diversity_temperature: 1.0
workspace/configs/ctt/gated_residual_smoke.yaml CHANGED
@@ -7,11 +7,14 @@ neighbors: 2
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
 
10
  negative_boundary: 0.25
11
  pairwise_rank: 1.0
12
  listwise_rank: 0.5
13
  cycle: 0.1
14
  diversity: 0.05
15
  negative_margin: 0.2
 
 
16
  transport_samples_per_pair: 4
17
  diversity_temperature: 1.0
 
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
10
+ ot_alignment: 0.0
11
  negative_boundary: 0.25
12
  pairwise_rank: 1.0
13
  listwise_rank: 0.5
14
  cycle: 0.1
15
  diversity: 0.05
16
  negative_margin: 0.2
17
+ ot_epsilon: 0.05
18
+ ot_iterations: 30
19
  transport_samples_per_pair: 4
20
  diversity_temperature: 1.0
workspace/configs/ctt/residual_full.yaml CHANGED
@@ -7,11 +7,14 @@ neighbors: 8
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
 
10
  negative_boundary: 0.25
11
  pairwise_rank: 1.0
12
  listwise_rank: 0.5
13
  cycle: 0.1
14
  diversity: 0.05
15
  negative_margin: 0.2
 
 
16
  transport_samples_per_pair: 4
17
  diversity_temperature: 1.0
 
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
10
+ ot_alignment: 0.0
11
  negative_boundary: 0.25
12
  pairwise_rank: 1.0
13
  listwise_rank: 0.5
14
  cycle: 0.1
15
  diversity: 0.05
16
  negative_margin: 0.2
17
+ ot_epsilon: 0.05
18
+ ot_iterations: 30
19
  transport_samples_per_pair: 4
20
  diversity_temperature: 1.0
workspace/configs/ctt/residual_ot_full.yaml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ dataset: data/cil_charts/train/index.json
2
+ out_dir: runs/ctt_residual_ot_full_seed0
3
+ variant: residual
4
+ epochs: 5
5
+ max_charts: 100000
6
+ neighbors: 8
7
+ lr: 0.001
8
+ seed: 0
9
+ pos_alignment: 1.0
10
+ ot_alignment: 0.25
11
+ negative_boundary: 0.25
12
+ pairwise_rank: 1.0
13
+ listwise_rank: 0.5
14
+ cycle: 0.1
15
+ diversity: 0.05
16
+ negative_margin: 0.2
17
+ ot_epsilon: 0.05
18
+ ot_iterations: 30
19
+ transport_samples_per_pair: 4
20
+ diversity_temperature: 1.0
workspace/configs/ctt/residual_ot_smoke.yaml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ dataset: data/cil_charts/train/index.json
2
+ out_dir: runs/ctt_residual_ot_smoke
3
+ variant: residual
4
+ epochs: 1
5
+ max_charts: 16
6
+ neighbors: 2
7
+ lr: 0.001
8
+ seed: 0
9
+ pos_alignment: 1.0
10
+ ot_alignment: 0.25
11
+ negative_boundary: 0.25
12
+ pairwise_rank: 1.0
13
+ listwise_rank: 0.5
14
+ cycle: 0.1
15
+ diversity: 0.05
16
+ negative_margin: 0.2
17
+ ot_epsilon: 0.05
18
+ ot_iterations: 30
19
+ transport_samples_per_pair: 4
20
+ diversity_temperature: 1.0
workspace/configs/ctt/residual_smoke.yaml CHANGED
@@ -7,11 +7,14 @@ neighbors: 4
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
 
10
  negative_boundary: 0.25
11
  pairwise_rank: 1.0
12
  listwise_rank: 0.5
13
  cycle: 0.1
14
  diversity: 0.05
15
  negative_margin: 0.2
 
 
16
  transport_samples_per_pair: 4
17
  diversity_temperature: 1.0
 
7
  lr: 0.001
8
  seed: 0
9
  pos_alignment: 1.0
10
+ ot_alignment: 0.0
11
  negative_boundary: 0.25
12
  pairwise_rank: 1.0
13
  listwise_rank: 0.5
14
  cycle: 0.1
15
  diversity: 0.05
16
  negative_margin: 0.2
17
+ ot_epsilon: 0.05
18
+ ot_iterations: 30
19
  transport_samples_per_pair: 4
20
  diversity_temperature: 1.0
workspace/latex/main.fdb_latexmk CHANGED
@@ -1,13 +1,13 @@
1
  # Fdb version 4
2
- ["bibtex main"] 1783146230 "main.aux" "main.bbl" "main" 1783147054 0
3
  "./references.bib" 1783037215 3572 027cd2cf27b344368db784320d235a8c ""
4
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/bibtex/bst/base/plain.bst" 1292289607 20613 bd3fbfa9f64872b81ac57a0dd2ed855f ""
5
- "main.aux" 1783147054 31207 7749bf0a1fa1e576a6cee1f6b8424f13 "pdflatex"
6
  (generated)
7
  "main.bbl"
8
  "main.blg"
9
  (rewritten before read)
10
- ["pdflatex"] 1783147053 "main.tex" "main.pdf" "main" 1783147054 0
11
  "../paper/sections/theory.tex" 1783037322 4023 e8c0485606fdfea0020faae044bf1189 ""
12
  "../runs/action_bound_audit_rgb_refs/table.tex" 1783102548 379 5a7d42a0f3c58a06c4eeeaa280615fb3 ""
13
  "../runs/ctt_base_context_obj_val_rollout_comparison/table.tex" 1783103591 2172 16a82c2b9b79cbd8d2afdfca5503a296 ""
@@ -42,7 +42,7 @@
42
  "../runs/ctt_val_proxy_comparison/table.tex" 1783137797 1201 46b7a5babb84523c9075eeafcf5c151c ""
43
  "../runs/ctt_val_rollout_comparison/table.tex" 1783103576 1874 6e2344e80436f3a5295e8d9c128d776d ""
44
  "../runs/data_accounting/table.tex" 1783034968 472 a35c3885ec2fd2c61f296ca898e5ee0e ""
45
- "../runs/paper_ctt_audit/table.tex" 1783147011 371 43c089a90098dff713a3d615efeac80b ""
46
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc" 1136849721 2900 1537cc8184ad1792082cd229ecc269f4 ""
47
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
48
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/tfm/jknappen/ec/tcrm1000.tfm" 1136768653 1536 e07581a4bb3136ece9eeb4c3ffab8233 ""
@@ -162,10 +162,10 @@
162
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/web2c/texmf.cnf" 1692823885 39639 818dd8e5a0dce3a72597a7e6bad45d55 ""
163
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1692821535 5031293 07973d5e761f645996ac32ebf7b8d1f3 ""
164
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1692821530 1386016 abd9ba6eb53c47bc5de8d672b6ac87d3 ""
165
- "main.aux" 1783147054 31207 7749bf0a1fa1e576a6cee1f6b8424f13 "pdflatex"
166
  "main.bbl" 1783146230 3120 92555a174bae4ac684748bbe3fae0b8c "bibtex main"
167
- "main.out" 1783147054 2647 6c337a545f287573528c7cb52648bc95 "pdflatex"
168
- "main.tex" 1783146199 69283 bde7655958289112b2a48c7c971b7bab ""
169
  "tables/car_decomposition.tex" 1783032219 662 bac24c0014c2ba573860ce199b776934 ""
170
  "tables/main_results.tex" 1783004655 1061 19bfdcc844614aadefc921dae15c700d ""
171
  "tables/selector_calibration.tex" 1783011198 788 1b54a8eb88519c50862f4acf718798ab ""
 
1
  # Fdb version 4
2
+ ["bibtex main"] 1783146230 "main.aux" "main.bbl" "main" 1783147992 0
3
  "./references.bib" 1783037215 3572 027cd2cf27b344368db784320d235a8c ""
4
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/bibtex/bst/base/plain.bst" 1292289607 20613 bd3fbfa9f64872b81ac57a0dd2ed855f ""
5
+ "main.aux" 1783147992 31207 7749bf0a1fa1e576a6cee1f6b8424f13 "pdflatex"
6
  (generated)
7
  "main.bbl"
8
  "main.blg"
9
  (rewritten before read)
10
+ ["pdflatex"] 1783147991 "main.tex" "main.pdf" "main" 1783147992 0
11
  "../paper/sections/theory.tex" 1783037322 4023 e8c0485606fdfea0020faae044bf1189 ""
12
  "../runs/action_bound_audit_rgb_refs/table.tex" 1783102548 379 5a7d42a0f3c58a06c4eeeaa280615fb3 ""
13
  "../runs/ctt_base_context_obj_val_rollout_comparison/table.tex" 1783103591 2172 16a82c2b9b79cbd8d2afdfca5503a296 ""
 
42
  "../runs/ctt_val_proxy_comparison/table.tex" 1783137797 1201 46b7a5babb84523c9075eeafcf5c151c ""
43
  "../runs/ctt_val_rollout_comparison/table.tex" 1783103576 1874 6e2344e80436f3a5295e8d9c128d776d ""
44
  "../runs/data_accounting/table.tex" 1783034968 472 a35c3885ec2fd2c61f296ca898e5ee0e ""
45
+ "../runs/paper_ctt_audit/table.tex" 1783147088 371 8d2eac0cee2b96df6766147c3e9a121b ""
46
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc" 1136849721 2900 1537cc8184ad1792082cd229ecc269f4 ""
47
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
48
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/tfm/jknappen/ec/tcrm1000.tfm" 1136768653 1536 e07581a4bb3136ece9eeb4c3ffab8233 ""
 
162
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/web2c/texmf.cnf" 1692823885 39639 818dd8e5a0dce3a72597a7e6bad45d55 ""
163
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1692821535 5031293 07973d5e761f645996ac32ebf7b8d1f3 ""
164
  "/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1692821530 1386016 abd9ba6eb53c47bc5de8d672b6ac87d3 ""
165
+ "main.aux" 1783147992 31207 7749bf0a1fa1e576a6cee1f6b8424f13 "pdflatex"
166
  "main.bbl" 1783146230 3120 92555a174bae4ac684748bbe3fae0b8c "bibtex main"
167
+ "main.out" 1783147992 2647 6c337a545f287573528c7cb52648bc95 "pdflatex"
168
+ "main.tex" 1783147839 69462 abd9f238dd9ffb0469b667305123337c ""
169
  "tables/car_decomposition.tex" 1783032219 662 bac24c0014c2ba573860ce199b776934 ""
170
  "tables/main_results.tex" 1783004655 1061 19bfdcc844614aadefc921dae15c700d ""
171
  "tables/selector_calibration.tex" 1783011198 788 1b54a8eb88519c50862f4acf718798ab ""
workspace/latex/main.log CHANGED
@@ -1,4 +1,4 @@
1
- This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021 Gentoo Linux) (preloaded format=pdflatex 2023.8.23) 4 JUL 2026 02:37
2
  entering extended mode
3
  restricted \write18 enabled.
4
  %&-line parsing enabled.
@@ -536,14 +536,14 @@ sets vary Lipschitz-continuously
536
  (./tables/source_score_sweep.tex) (./tables/selector_calibration.tex) [6]
537
  (../runs/ctt_residual_smoke_proxy/table.tex)
538
  (../runs/ctt_val_proxy_comparison/table.tex) [7]
539
- Overfull \hbox (21.77454pt too wide) in paragraph at lines 468--475
540
  \OT1/cmr/m/n/10 base plus gen-er-ated can-di-dates in Man-iSkill, and writes me
541
  a-sured rows con-sum-able by \OT1/cmtt/m/n/10 scripts/eval[]metrics.py\OT1/cmr/
542
  m/n/10 .
543
  []
544
 
545
 
546
- Overfull \hbox (131.08893pt too wide) in paragraph at lines 476--482
547
  []\OT1/cmr/m/n/10 A one-chart smoke run at K=2 ver-i-fies the mea-sured path an
548
  d re-store ac-cu-racy (\OT1/cmtt/m/n/10 runs/ctt[]residual[]rollout[]direct[]sm
549
  oke[]seed0[]v3\OT1/cmr/m/n/10 ),
@@ -552,19 +552,19 @@ oke[]seed0[]v3\OT1/cmr/m/n/10 ),
552
  (../runs/action_bound_audit_rgb_refs/table.tex) [8]
553
  (../runs/ctt_base_context_obs_val_noclip_rollout_comparison/table.tex)
554
  (../runs/ctt_base_context_obs_test_noclip_rollout_comparison/table.tex)
555
- Underfull \hbox (badness 10000) in paragraph at lines 565--565
556
  []\OT1/cmr/m/n/10 Table 11: []Scaled raw-action val-i-da-tion re-fresh for \OT1
557
  /cmtt/m/n/10 base[]context[]obs\OT1/cmr/m/n/10 , K=8, with
558
  []
559
 
560
  (../runs/ctt_base_context_obs_val_scaled0215_rollout_comparison/table.tex)
561
- Underfull \hbox (badness 10000) in paragraph at lines 576--576
562
  []\OT1/cmr/m/n/10 Table 12: []Scaled raw-action held-out test re-fresh for \OT1
563
  /cmtt/m/n/10 base[]context[]obs\OT1/cmr/m/n/10 , K=8, with
564
  []
565
 
566
 
567
- Underfull \hbox (badness 1082) in paragraph at lines 576--576
568
  \OT1/cmtt/m/n/10 --execution-action-scale 0.215 \OT1/cmr/m/n/10 and clip-ping d
569
  is-abled. The global scale im-proves base action-
570
  []
@@ -593,7 +593,7 @@ est/table.tex)
593
  le.tex)
594
  (../runs/ctt_base_context_obs_learned_dominance_source_envclip_train_to_test/ta
595
  ble.tex) [11]
596
- Underfull \hbox (badness 3439) in paragraph at lines 972--972
597
  []\OT1/cmr/m/n/10 Table 31: []Held-out test \OT1/cmtt/m/n/10 env[]clip \OT1/cmr
598
  /m/n/10 mea-sured roll-out at K=16. The ta-ble is gen-er-ated by
599
  []
@@ -607,107 +607,107 @@ vclip_k16_train_to_test/table.tex)
607
  (../runs/ctt_base_context_obs_learned_dominance_train_to_test/table.tex)
608
  (../runs/ctt_base_context_obs_nonlinear_dominance_basic_positive_train_to_test/
609
  table.tex)
610
- Overfull \hbox (31.94885pt too wide) in paragraph at lines 1165--1169
611
  []\OT1/cmtt/m/n/10 scripts/export[]cil[]charts.py\OT1/cmr/m/n/10 , \OT1/cmtt/m/
612
  n/10 scripts/build[]data[]accounting.py\OT1/cmr/m/n/10 , and \OT1/cmtt/m/n/10 s
613
  cripts/audit[]cil[]charts.py
614
  []
615
 
616
 
617
- Overfull \hbox (127.11275pt too wide) in paragraph at lines 1171--1175
618
  []\OT1/cmtt/m/n/10 cil/chart[]features.py \OT1/cmr/m/n/10 cen-tral-izes deploym
619
  ent-visible chart fea-ture con-struc-tion, and \OT1/cmtt/m/n/10 scripts/audit[]
620
  chart[]feature[]sources.py
621
  []
622
 
623
 
624
- Overfull \hbox (104.78587pt too wide) in paragraph at lines 1175--1178
625
  []\OT1/cmtt/m/n/10 scripts/slurm/render[]six[]task[]chart[]observations.sbatch
626
  \OT1/cmr/m/n/10 and \OT1/cmtt/m/n/10 scripts/slurm/reexport[]rgb[]ref[]cil[]cha
627
  rts.sbatch
628
  []
629
 
630
 
631
- Overfull \hbox (23.72661pt too wide) in paragraph at lines 1178--1183
632
  []\OT1/cmtt/m/n/10 scripts/export[]chart[]observation[]embeddings.py \OT1/cmr/m
633
  /n/10 and \OT1/cmtt/m/n/10 scripts/export[]chart[]object[]embeddings.py
634
  []
635
 
636
 
637
- Overfull \hbox (129.91359pt too wide) in paragraph at lines 1178--1183
638
  \OT1/cmr/m/n/10 cre-ate de-ter-min-is-tic 32D RGB-stat and 64D RGB object-layou
639
  t em-bed-dings, and \OT1/cmtt/m/n/10 scripts/slurm/train[]ctt[]feature[]proxy.s
640
  batch
641
  []
642
 
643
 
644
- Overfull \hbox (7.97675pt too wide) in paragraph at lines 1183--1192
645
  []\OT1/cmtt/m/n/10 scripts/eval[]ctt[]generated[]rollout.py \OT1/cmr/m/n/10 and
646
  \OT1/cmtt/m/n/10 scripts/slurm/eval[]ctt[]generated[]rollout.sbatch
647
  []
648
 
649
 
650
- Overfull \hbox (20.61057pt too wide) in paragraph at lines 1183--1192
651
  \OT1/cmr/m/n/10 train-split cal-i-bra-tion and meta-data load-ing for deploymen
652
  t-visible chart fea-tures such as \OT1/cmtt/m/n/10 base[]context[]obs\OT1/cmr/m
653
  /n/10 .
654
  []
655
 
656
 
657
- Overfull \hbox (49.05014pt too wide) in paragraph at lines 1183--1192
658
  \OT1/cmr/m/n/10 They also record action-bound va-lid-ity la-bels and sup-port r
659
  aw-action re-play through \OT1/cmtt/m/n/10 --disable-action-clipping
660
  []
661
 
662
 
663
- Overfull \hbox (2.58342pt too wide) in paragraph at lines 1192--1196
664
  []\OT1/cmtt/m/n/10 scripts/eval[]nonlinear[]dominance[]selector.py \OT1/cmr/m/n
665
  /10 shares the chart-compatibility feature-loading path
666
  []
667
 
668
 
669
- Overfull \hbox (11.7557pt too wide) in paragraph at lines 1196--1199
670
  []\OT1/cmtt/m/n/10 scripts/audit[]action[]bounds.py \OT1/cmr/m/n/10 pro-duces \
671
  OT1/cmtt/m/n/10 runs/action[]bound[]audit[]rgb[]refs\OT1/cmr/m/n/10 , which au-
672
  dits whether
673
  []
674
 
675
  [13]
676
- Overfull \hbox (6.0625pt too wide) in paragraph at lines 1218--1221
677
  []\OT1/cmtt/m/n/10 scripts/eval[]chart[]positive[]memory[]proxy.py \OT1/cmr/m/n
678
  /10 and \OT1/cmtt/m/n/10 scripts/build[]ctt[]proxy[]comparison.py \OT1/cmr/m/n/
679
  10 gen-
680
  []
681
 
682
 
683
- Overfull \hbox (63.81772pt too wide) in paragraph at lines 1221--1226
684
  \OT1/cmr/m/n/10 min-is-tic sum-maries of \OT1/cmtt/m/n/10 delta[]action\OT1/cmr
685
  /m/n/10 ; \OT1/cmtt/m/n/10 runs/tangent[]reconstruction \OT1/cmr/m/n/10 and \OT
686
  1/cmtt/m/n/10 runs/tangent[]reconstruction[]rgb[]refs
687
  []
688
 
689
 
690
- Overfull \hbox (61.283pt too wide) in paragraph at lines 1226--1230
691
  []\OT1/cmtt/m/n/10 scripts/audit[]cil[]charts.py \OT1/cmr/m/n/10 writes the lea
692
  k-age re-ports \OT1/cmtt/m/n/10 runs/leakage[]audit \OT1/cmr/m/n/10 and \OT1/cm
693
  tt/m/n/10 runs/leakage[]audit[]rgb[]refs\OT1/cmr/m/n/10 ,
694
  []
695
 
696
 
697
- Overfull \hbox (20.3325pt too wide) in paragraph at lines 1230--1233
698
  []\OT1/cmtt/m/n/10 scripts/train[]utility[]energy.py \OT1/cmr/m/n/10 and \OT1/c
699
  mtt/m/n/10 scripts/calibrate[]dominance.py \OT1/cmr/m/n/10 im-ple-ment the util
700
  -ity/scoring
701
  []
702
 
703
 
704
- Overfull \hbox (3.63927pt too wide) in paragraph at lines 1239--1243
705
  []\OT1/cmtt/m/n/10 scripts/backfill[]paper[]run[]artifacts.py \OT1/cmr/m/n/10 t
706
  rans-par-ently back-fills non-Markdown run meta-data such
707
  []
708
 
709
 
710
- Underfull \hbox (badness 10000) in paragraph at lines 1251--1251
711
  []\OT1/cmr/m/n/10 Table 38: []Claim-to-artifact au-dit for this draft. The au-d
712
  it is gen-er-ated by
713
  []
@@ -724,7 +724,7 @@ Package rerunfilecheck Info: File `main.out' has not changed.
724
  Here is how much of TeX's memory you used:
725
  10295 strings out of 480884
726
  159358 string characters out of 5900692
727
- 729438 words of memory out of 5000000
728
  27161 multiletter control sequences out of 15000+600000
729
  414764 words of font info for 71 fonts, out of 8000000 for 9000
730
  36 hyphenation exceptions out of 8191
@@ -769,7 +769,7 @@ cm/cmtt9.pfb></cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texm
769
  f-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb></cvmfs/soft.computecanad
770
  a.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/type1/public/cm-super/sfr
771
  m1000.pfb>
772
- Output written on main.pdf (34 pages, 438502 bytes).
773
  PDF statistics:
774
  460 PDF objects out of 1000 (max. 8388607)
775
  393 compressed objects within 4 object streams
 
1
+ This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021 Gentoo Linux) (preloaded format=pdflatex 2023.8.23) 4 JUL 2026 02:53
2
  entering extended mode
3
  restricted \write18 enabled.
4
  %&-line parsing enabled.
 
536
  (./tables/source_score_sweep.tex) (./tables/selector_calibration.tex) [6]
537
  (../runs/ctt_residual_smoke_proxy/table.tex)
538
  (../runs/ctt_val_proxy_comparison/table.tex) [7]
539
+ Overfull \hbox (21.77454pt too wide) in paragraph at lines 471--478
540
  \OT1/cmr/m/n/10 base plus gen-er-ated can-di-dates in Man-iSkill, and writes me
541
  a-sured rows con-sum-able by \OT1/cmtt/m/n/10 scripts/eval[]metrics.py\OT1/cmr/
542
  m/n/10 .
543
  []
544
 
545
 
546
+ Overfull \hbox (131.08893pt too wide) in paragraph at lines 479--485
547
  []\OT1/cmr/m/n/10 A one-chart smoke run at K=2 ver-i-fies the mea-sured path an
548
  d re-store ac-cu-racy (\OT1/cmtt/m/n/10 runs/ctt[]residual[]rollout[]direct[]sm
549
  oke[]seed0[]v3\OT1/cmr/m/n/10 ),
 
552
  (../runs/action_bound_audit_rgb_refs/table.tex) [8]
553
  (../runs/ctt_base_context_obs_val_noclip_rollout_comparison/table.tex)
554
  (../runs/ctt_base_context_obs_test_noclip_rollout_comparison/table.tex)
555
+ Underfull \hbox (badness 10000) in paragraph at lines 568--568
556
  []\OT1/cmr/m/n/10 Table 11: []Scaled raw-action val-i-da-tion re-fresh for \OT1
557
  /cmtt/m/n/10 base[]context[]obs\OT1/cmr/m/n/10 , K=8, with
558
  []
559
 
560
  (../runs/ctt_base_context_obs_val_scaled0215_rollout_comparison/table.tex)
561
+ Underfull \hbox (badness 10000) in paragraph at lines 579--579
562
  []\OT1/cmr/m/n/10 Table 12: []Scaled raw-action held-out test re-fresh for \OT1
563
  /cmtt/m/n/10 base[]context[]obs\OT1/cmr/m/n/10 , K=8, with
564
  []
565
 
566
 
567
+ Underfull \hbox (badness 1082) in paragraph at lines 579--579
568
  \OT1/cmtt/m/n/10 --execution-action-scale 0.215 \OT1/cmr/m/n/10 and clip-ping d
569
  is-abled. The global scale im-proves base action-
570
  []
 
593
  le.tex)
594
  (../runs/ctt_base_context_obs_learned_dominance_source_envclip_train_to_test/ta
595
  ble.tex) [11]
596
+ Underfull \hbox (badness 3439) in paragraph at lines 975--975
597
  []\OT1/cmr/m/n/10 Table 31: []Held-out test \OT1/cmtt/m/n/10 env[]clip \OT1/cmr
598
  /m/n/10 mea-sured roll-out at K=16. The ta-ble is gen-er-ated by
599
  []
 
607
  (../runs/ctt_base_context_obs_learned_dominance_train_to_test/table.tex)
608
  (../runs/ctt_base_context_obs_nonlinear_dominance_basic_positive_train_to_test/
609
  table.tex)
610
+ Overfull \hbox (31.94885pt too wide) in paragraph at lines 1168--1172
611
  []\OT1/cmtt/m/n/10 scripts/export[]cil[]charts.py\OT1/cmr/m/n/10 , \OT1/cmtt/m/
612
  n/10 scripts/build[]data[]accounting.py\OT1/cmr/m/n/10 , and \OT1/cmtt/m/n/10 s
613
  cripts/audit[]cil[]charts.py
614
  []
615
 
616
 
617
+ Overfull \hbox (127.11275pt too wide) in paragraph at lines 1174--1178
618
  []\OT1/cmtt/m/n/10 cil/chart[]features.py \OT1/cmr/m/n/10 cen-tral-izes deploym
619
  ent-visible chart fea-ture con-struc-tion, and \OT1/cmtt/m/n/10 scripts/audit[]
620
  chart[]feature[]sources.py
621
  []
622
 
623
 
624
+ Overfull \hbox (104.78587pt too wide) in paragraph at lines 1178--1181
625
  []\OT1/cmtt/m/n/10 scripts/slurm/render[]six[]task[]chart[]observations.sbatch
626
  \OT1/cmr/m/n/10 and \OT1/cmtt/m/n/10 scripts/slurm/reexport[]rgb[]ref[]cil[]cha
627
  rts.sbatch
628
  []
629
 
630
 
631
+ Overfull \hbox (23.72661pt too wide) in paragraph at lines 1181--1186
632
  []\OT1/cmtt/m/n/10 scripts/export[]chart[]observation[]embeddings.py \OT1/cmr/m
633
  /n/10 and \OT1/cmtt/m/n/10 scripts/export[]chart[]object[]embeddings.py
634
  []
635
 
636
 
637
+ Overfull \hbox (129.91359pt too wide) in paragraph at lines 1181--1186
638
  \OT1/cmr/m/n/10 cre-ate de-ter-min-is-tic 32D RGB-stat and 64D RGB object-layou
639
  t em-bed-dings, and \OT1/cmtt/m/n/10 scripts/slurm/train[]ctt[]feature[]proxy.s
640
  batch
641
  []
642
 
643
 
644
+ Overfull \hbox (7.97675pt too wide) in paragraph at lines 1186--1195
645
  []\OT1/cmtt/m/n/10 scripts/eval[]ctt[]generated[]rollout.py \OT1/cmr/m/n/10 and
646
  \OT1/cmtt/m/n/10 scripts/slurm/eval[]ctt[]generated[]rollout.sbatch
647
  []
648
 
649
 
650
+ Overfull \hbox (20.61057pt too wide) in paragraph at lines 1186--1195
651
  \OT1/cmr/m/n/10 train-split cal-i-bra-tion and meta-data load-ing for deploymen
652
  t-visible chart fea-tures such as \OT1/cmtt/m/n/10 base[]context[]obs\OT1/cmr/m
653
  /n/10 .
654
  []
655
 
656
 
657
+ Overfull \hbox (49.05014pt too wide) in paragraph at lines 1186--1195
658
  \OT1/cmr/m/n/10 They also record action-bound va-lid-ity la-bels and sup-port r
659
  aw-action re-play through \OT1/cmtt/m/n/10 --disable-action-clipping
660
  []
661
 
662
 
663
+ Overfull \hbox (2.58342pt too wide) in paragraph at lines 1195--1199
664
  []\OT1/cmtt/m/n/10 scripts/eval[]nonlinear[]dominance[]selector.py \OT1/cmr/m/n
665
  /10 shares the chart-compatibility feature-loading path
666
  []
667
 
668
 
669
+ Overfull \hbox (11.7557pt too wide) in paragraph at lines 1199--1202
670
  []\OT1/cmtt/m/n/10 scripts/audit[]action[]bounds.py \OT1/cmr/m/n/10 pro-duces \
671
  OT1/cmtt/m/n/10 runs/action[]bound[]audit[]rgb[]refs\OT1/cmr/m/n/10 , which au-
672
  dits whether
673
  []
674
 
675
  [13]
676
+ Overfull \hbox (6.0625pt too wide) in paragraph at lines 1221--1224
677
  []\OT1/cmtt/m/n/10 scripts/eval[]chart[]positive[]memory[]proxy.py \OT1/cmr/m/n
678
  /10 and \OT1/cmtt/m/n/10 scripts/build[]ctt[]proxy[]comparison.py \OT1/cmr/m/n/
679
  10 gen-
680
  []
681
 
682
 
683
+ Overfull \hbox (63.81772pt too wide) in paragraph at lines 1224--1229
684
  \OT1/cmr/m/n/10 min-is-tic sum-maries of \OT1/cmtt/m/n/10 delta[]action\OT1/cmr
685
  /m/n/10 ; \OT1/cmtt/m/n/10 runs/tangent[]reconstruction \OT1/cmr/m/n/10 and \OT
686
  1/cmtt/m/n/10 runs/tangent[]reconstruction[]rgb[]refs
687
  []
688
 
689
 
690
+ Overfull \hbox (61.283pt too wide) in paragraph at lines 1229--1233
691
  []\OT1/cmtt/m/n/10 scripts/audit[]cil[]charts.py \OT1/cmr/m/n/10 writes the lea
692
  k-age re-ports \OT1/cmtt/m/n/10 runs/leakage[]audit \OT1/cmr/m/n/10 and \OT1/cm
693
  tt/m/n/10 runs/leakage[]audit[]rgb[]refs\OT1/cmr/m/n/10 ,
694
  []
695
 
696
 
697
+ Overfull \hbox (20.3325pt too wide) in paragraph at lines 1233--1236
698
  []\OT1/cmtt/m/n/10 scripts/train[]utility[]energy.py \OT1/cmr/m/n/10 and \OT1/c
699
  mtt/m/n/10 scripts/calibrate[]dominance.py \OT1/cmr/m/n/10 im-ple-ment the util
700
  -ity/scoring
701
  []
702
 
703
 
704
+ Overfull \hbox (3.63927pt too wide) in paragraph at lines 1242--1246
705
  []\OT1/cmtt/m/n/10 scripts/backfill[]paper[]run[]artifacts.py \OT1/cmr/m/n/10 t
706
  rans-par-ently back-fills non-Markdown run meta-data such
707
  []
708
 
709
 
710
+ Underfull \hbox (badness 10000) in paragraph at lines 1254--1254
711
  []\OT1/cmr/m/n/10 Table 38: []Claim-to-artifact au-dit for this draft. The au-d
712
  it is gen-er-ated by
713
  []
 
724
  Here is how much of TeX's memory you used:
725
  10295 strings out of 480884
726
  159358 string characters out of 5900692
727
+ 730438 words of memory out of 5000000
728
  27161 multiletter control sequences out of 15000+600000
729
  414764 words of font info for 71 fonts, out of 8000000 for 9000
730
  36 hyphenation exceptions out of 8191
 
769
  f-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb></cvmfs/soft.computecanad
770
  a.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/type1/public/cm-super/sfr
771
  m1000.pfb>
772
+ Output written on main.pdf (34 pages, 438831 bytes).
773
  PDF statistics:
774
  460 PDF objects out of 1000 (max. 8388607)
775
  393 compressed objects within 4 object streams
workspace/latex/main.pdf CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:520b45992f0a16920bdbea42ec9474360859ac4b92c90231889ba5396717c12d
3
- size 438502
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b6152063086c136ea4702af072739f86bfc6cb256d08a4f1cf482e3f64d5cd3e
3
+ size 438831
workspace/latex/main.tex CHANGED
@@ -338,10 +338,13 @@ The implemented residual and gated residual \ctt{} variants are
338
  \paragraph{Training loss.}
339
  The current implementation trains on outcome-visible train charts. For each
340
  nearby same-task source-target pair, it minimizes one-sided positive alignment,
341
- a negative boundary penalty, and a cycle consistency term:
 
 
342
  \[
343
  \mathcal L =
344
  \lambda_+\min_{\xi_t^+\in\Xi_t^+}\|\hat\xi_t-\xi_t^+\|_2^2
 
345
  + \lambda_-\max(0,m-d(\hat\xi_t,\Xi_t^-))
346
  + \lambda_c\|T_{\phi}(z_t,z_s,\hat\xi_t)-\xi_s^+\|_2^2.
347
  \]
 
338
  \paragraph{Training loss.}
339
  The current implementation trains on outcome-visible train charts. For each
340
  nearby same-task source-target pair, it minimizes one-sided positive alignment,
341
+ a negative boundary penalty, and a cycle consistency term; the code path also
342
+ supports an optional entropic OT alignment term for the \ctt{}+OT diagnostic
343
+ variant:
344
  \[
345
  \mathcal L =
346
  \lambda_+\min_{\xi_t^+\in\Xi_t^+}\|\hat\xi_t-\xi_t^+\|_2^2
347
+ + \lambda_{\mathrm{OT}}\mathrm{OT}_{\varepsilon}(\{\hat\xi_t\},\Xi_t^+)
348
  + \lambda_-\max(0,m-d(\hat\xi_t,\Xi_t^-))
349
  + \lambda_c\|T_{\phi}(z_t,z_s,\hat\xi_t)-\xi_s^+\|_2^2.
350
  \]